• Eric Dumazet's avatar
    [NET]: Reorder some hot fields of struct net_device · 9356b8fc
    Eric Dumazet authored
    Place them on separate cache lines in SMP to lower memory bouncing
    between multiple CPU accessing the device.
         - One part is mostly used on receive path (including
           eth_type_trans()) (poll_list, poll, quota, weight, last_rx,
           dev_addr, broadcast)
         - One part is mostly used on queue transmit path (qdisc)
          (queue_lock, qdisc, qdisc_sleeping, qdisc_list, tx_queue_len)
         - One part is mostly used on xmit path (device)
          (xmit_lock, xmit_lock_owner, priv, hard_start_xmit, trans_start)
    'features' is placed outside of these hot points, in a location that
    may be shared by all cpus (because mostly read)
    name_hlist is moved close to name[IFNAMSIZ] to speedup __dev_get_by_name()
    Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
netdevice.h 28.3 KB