• E
    net: move early demux fields close to sk_refcnt · 43f51df4
    Eric Dumazet 提交于
    sk_rx_dst/sk_rx_dst_ifindex/sk_rx_dst_cookie are read in early demux,
    and currently spans two cache lines.
    
    Moving them close to sk_refcnt makes more sense, as only one cache
    line is needed.
    
    New layout for this hot cache line is :
    
    struct sock {
    	struct sock_common         __sk_common;          /*     0  0x88 */
    	/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
    	struct dst_entry *         sk_rx_dst;            /*  0x88   0x8 */
    	int                        sk_rx_dst_ifindex;    /*  0x90   0x4 */
    	u32                        sk_rx_dst_cookie;     /*  0x94   0x4 */
    	socket_lock_t              sk_lock;              /*  0x98  0x20 */
    	atomic_t                   sk_drops;             /*  0xb8   0x4 */
    	int                        sk_rcvlowat;          /*  0xbc   0x4 */
    	/* --- cacheline 3 boundary (192 bytes) --- */
    Signed-off-by: NEric Dumazet <edumazet@google.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    43f51df4
sock.h 80.4 KB