Hi Eric, On Fri, 1 Mar 2024 10:54:19 +0100 Eric Dumazet wrote: > > OK, I think the issue is caused by a hole at the start of > tcp_sock_write_rx group > > I will send this patch for review, thanks ! > > diff --git a/include/linux/tcp.h b/include/linux/tcp.h > index 988a30ef6bfe956fa573f1f18c8284aa382dc1cc..55399ee2a57e736b55ed067fc06ea620bbe62fd3 > 100644 > --- a/include/linux/tcp.h > +++ b/include/linux/tcp.h > @@ -304,7 +304,7 @@ struct tcp_sock { > __cacheline_group_end(tcp_sock_write_txrx); > > /* RX read-write hotpath cache lines */ > - __cacheline_group_begin(tcp_sock_write_rx); > + __cacheline_group_begin(tcp_sock_write_rx) __aligned(8); > u64 bytes_received; > /* RFC4898 tcpEStatsAppHCThruOctetsReceived > * sum(delta(rcv_nxt)), or how many bytes > diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c > index c82dc42f57c65df112f79080ff407cd98d11ce68..7e1b848398d04f2da2a91c3af97b1e2e3895b8ee > 100644 > --- a/net/ipv4/tcp.c > +++ b/net/ipv4/tcp.c > @@ -4651,7 +4651,7 @@ static void __init tcp_struct_check(void) > CACHELINE_ASSERT_GROUP_MEMBER(struct tcp_sock, > tcp_sock_write_tx, tsorted_sent_queue); > CACHELINE_ASSERT_GROUP_MEMBER(struct tcp_sock, > tcp_sock_write_tx, highest_sack); > CACHELINE_ASSERT_GROUP_MEMBER(struct tcp_sock, > tcp_sock_write_tx, ecn_flags); > - CACHELINE_ASSERT_GROUP_SIZE(struct tcp_sock, tcp_sock_write_tx, 113); > + CACHELINE_ASSERT_GROUP_SIZE(struct tcp_sock, tcp_sock_write_tx, 105); > > /* TXRX read-write hotpath cache lines */ > CACHELINE_ASSERT_GROUP_MEMBER(struct tcp_sock, > tcp_sock_write_txrx, pred_flags); I will apply this patch to them merge of the net-next tree until it is applied there. -- Cheers, Stephen Rothwell