1. 15 Jun, 2022 13 commits
  2. 14 Jun, 2022 3 commits
  3. 13 Jun, 2022 20 commits
  4. 11 Jun, 2022 3 commits
  5. 10 Jun, 2022 1 commit
    • Jakub Kicinski's avatar
      Merge branch 'net-reduce-tcp_memory_allocated-inflation' · e10b02ee
      Jakub Kicinski authored
      Eric Dumazet says:
      
      ====================
      net: reduce tcp_memory_allocated inflation
      
      Hosts with a lot of sockets tend to hit so called TCP memory pressure,
      leading to very bad TCP performance and/or OOM.
      
      The problem is that some TCP sockets can hold up to 2MB of 'forward
      allocations' in their per-socket cache (sk->sk_forward_alloc),
      and there is no mechanism to make them relinquish their share
      under mem pressure.
      Only under some potentially rare events their share is reclaimed,
      one socket at a time.
      
      In this series, I implemented a per-cpu cache instead of a per-socket one.
      
      Each CPU has a +1/-1 MB (256 pages on x86) forward alloc cache, in order
      to not dirty tcp_memory_allocated shared cache line too often.
      
      We keep sk->sk_forward_alloc values as small as possible, to meet
      memcg page granularity constraint.
      
      Note that memcg already has a per-cpu cache, although MEMCG_CHARGE_BATCH
      is defined to 32 pages, which seems a bit small.
      
      Note that while this cover letter mentions TCP, this work is generic
      and supports TCP, UDP, DECNET, SCTP.
      ====================
      
      Link: https://lore.kernel.org/r/20220609063412.2205738-1-eric.dumazet@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      e10b02ee