diff options
author | Xin Long <lucien.xin@gmail.com> | 2016-09-28 20:37:26 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-09-30 08:07:05 +0200 |
commit | 73dca124cdbad2d67d47d6196c08325f18447d07 (patch) | |
tree | 3c25a84f0e3d4e9446f644d4a4e0311a6cf0aeb4 /include/net | |
parent | tg3: Avoid NULL pointer dereference in tg3_io_error_detected() (diff) | |
download | linux-73dca124cdbad2d67d47d6196c08325f18447d07.tar.xz linux-73dca124cdbad2d67d47d6196c08325f18447d07.zip |
sctp: move sent_count to the memory hole in sctp_chunk
Now pahole sctp_chunk, it has 2 memory holes:
struct sctp_chunk {
struct list_head list;
atomic_t refcnt;
/* XXX 4 bytes hole, try to pack */
...
long unsigned int prsctp_param;
int sent_count;
/* XXX 4 bytes hole, try to pack */
This patch is to move up sent_count to fill the 1st one and eliminate
the 2nd one.
It's not just another struct compaction, it also fixes the "netperf-
Throughput_Mbps -37.2% regression" issue when overloading the CPU.
Fixes: a6c2f792873a ("sctp: implement prsctp TTL policy")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/sctp/structs.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index ce93c4b10d26..4f097f538fff 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h @@ -554,6 +554,9 @@ struct sctp_chunk { atomic_t refcnt; + /* How many times this chunk have been sent, for prsctp RTX policy */ + int sent_count; + /* This is our link to the per-transport transmitted list. */ struct list_head transmitted_list; @@ -610,9 +613,6 @@ struct sctp_chunk { */ unsigned long prsctp_param; - /* How many times this chunk have been sent, for prsctp RTX policy */ - int sent_count; - /* Which association does this belong to? */ struct sctp_association *asoc; |