Skip to content

: memory accounting and limitation (take 11)

Hideo AOKI netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest4 patches 9 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4: fix send buffer checknet/ipv4/ip_output.c+5 -02 replies
2/4: datagram: basic memory accounting functionsinclude/net/sock.h net/core/datagram.c+166 -05 replies
3/4: add udp_mem, udp_rmem_min and udp_wmem_minDocumentation/networking/ip-sysctl.txt include/net/udp.h net/ipv4/af_inet.c +3 more+90 -10 replies
4/4: memory accounting in IPv4net/ipv4/ip_output.c net/ipv4/udp.c+119 -52 replies

Reviews trailers per patch

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

Read the v1 thread

Cover letter [PATCH 0/4] [UDP]: memory accounting and limitation (take 11)

Hello,

I updated patch set of UDP memory accounting and limitation.

The spin lock that I used in previous take was removed from datagram memory accounting functions. As David commented, I used socket lock and backlog processing to keep consistency of memory accounting like TCP. I added socket lock to places where skbuff is freed, since the locking is needed to change sk_forward_alloc only.

Moreover, I revised memory accounting functions. As Herbert commented, I stopped using large inline function and tried to reduce amount of inline functions.

The patch set was tested on net-2.6 tree.

Changelog take 10 -> take 11:
* stopped using spin lock in memory accounting function
* socket lock and backlog processing were used to avoid conflict between receive system call processing and BH
* revised memory accounting functions
* stooped changing sock_queue_rcv_skb() and skb_set_owner_r()
* added __udp_queue_rcv_skb to set proper destructor
* removed udp_set_owner_r()
* removed reclaim in inet_sock_destruct()

Changelog take 9 -> take 10:
* supported using sk_forward_alloc
* introduced several memory accounting functions with spin lock
* changed detagram receive functions to be able to customize destructor
* fixed accounting bugs in previous takes

Changelog take 8 -> take 9:
* introduced mem_schdeule functions for datargram protocols
* removed protocol check function, from patch set
* restructured patch set

Changelog take 7 -> take 8:

* sk_datagram_pages(): avoided using divide instruction
* udp_recvmsg(): fixed referring released truesize in accounting

Best regards,
Hideo Aoki

--
Hitachi Computer Products (America) Inc.