Skip to content

Commit

Permalink
inet: frags: reorganize struct netns_frags
Browse files Browse the repository at this point in the history
commit c2615cf5a761b32bf74e85bddc223dfff3d9b9f0 upstream.

Put the read-mostly fields in a separate cache line
at the beginning of struct netns_frags, to reduce
false sharing noticed in inet_frag_kill()

Signed-off-by: Eric Dumazet <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
[bwh: Backported to 4.4: adjust context]
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
Eric Dumazet authored and gregkh committed Feb 8, 2019
1 parent 3399001 commit 29ff723
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions include/net/inet_frag.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@
#include <linux/rhashtable.h>

struct netns_frags {
struct rhashtable rhashtable ____cacheline_aligned_in_smp;

/* Keep atomic mem on separate cachelines in structs that include it */
atomic_long_t mem ____cacheline_aligned_in_smp;
/* sysctls */
long high_thresh;
long low_thresh;
int timeout;
struct inet_frags *f;

struct rhashtable rhashtable ____cacheline_aligned_in_smp;

/* Keep atomic mem on separate cachelines in structs that include it */
atomic_long_t mem ____cacheline_aligned_in_smp;
};

/**
Expand Down

0 comments on commit 29ff723

Please sign in to comment.