Skip to content
  • Eric Dumazet's avatar
    net: reorder fields of struct socket · 8bdd663a
    Eric Dumazet authored
    
    
    On x86_64, its rather unfortunate that "wait_queue_head_t wait"
    field of "struct socket" spans two cache lines (assuming a 64
    bytes cache line in current cpus)
    
    offsetof(struct socket, wait)=0x30
    sizeof(wait_queue_head_t)=0x18
    
    This might explain why Kenny Chang noticed that his multicast workload
    was performing bad with 64 bit kernels, since more cache lines ping pongs
    were involved.
    
    This litle patch moves "wait" field next "fasync_list" so that both
    fields share a single cache line, to speedup sock_def_readable()
    
    Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8bdd663a