Skip to content

UDP memory accounting (take 4)

Satoshi OSHIMA netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest4 patches 6 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4UDP memory usage accounting (take 4): fix send buffer checknet/ipv4/ip_output.c+5 -00 replies
2/4UDP memory usage accounting (take 4): accounting unit and variableinclude/net/sock.h include/net/udp.h net/ipv4/proc.c +1 more+15 -12 replies
3/4UDP memory usage accounting (take 4): memory usage accountingnet/ipv4/af_inet.c net/ipv4/ip_output.c net/ipv4/udp.c+61 -40 replies
4/4UDP memory usage accounting (take 4): memory limitationinclude/linux/sysctl.h include/net/udp.h net/ipv4/ip_output.c +2 more+58 -04 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC/PATCH 0/4]UDP memory accounting (take 4)

Hi,

I post a patch set of UDP memory accounting and limitation.

This patch set is for kernel 2.6.23-rc9. The differences from take 3 are

* fixing double accounting bug of ip_send_page()
* adding UDP memory limitation.

How to use UDP memory limitation:

This patch set add

/proc/sys/net/ipv4/udp_mem

as a tuning parameter.

When you give the number that is greater than 4096, UDP memory limitation will work. The number of pages for socket buffer is limited up to udp_mem[pages].

Currently this function drops the packet when it is sent or received and the number of pages for socket buffer is beyond the limit. It won't collect the buffer that is already allocated.

On the other hand, udp_mem is specified as 4096 or smaller, UDP memory limitaion will not work. The deafult number is 0.

Comment, review and test are welcome.

By the way, David pointed out that we should have the better solution such as memory reclaiming by callback from vmm. I seriously consider it. But As Herbert pointed out, it is very difficult to apply it to TCP because some of the buffer is already acked. I couldn't find the good solution that is applicable for TCP, UDP, route cache and so on.

Let me know, if you find the good way to solve this problem.

Thanks,

Satoshi Oshima