• Pavel Emelyanov's avatar
    [NET]: Do not allocate unneeded memory for dev->priv alignment. · d0498d9a
    Pavel Emelyanov authored
    The alloc_netdev_mq() tries to produce 32-bytes alignment for both
    the net_device itself and its private data. The second alignment is
    achieved by adding the NETDEV_ALIGN_CONST to the whole size of
    the memory to be allocated.
    
    However, for those devices that do not need the private area, this
    addition just makes the net_device weight 1024 + 32 = 1068 bytes,
    i.e. consume twice as much memory.
    
    Since loopback device is such (sizeof_priv == 0 for it), and each
    net namespace creates one, this can save a noticeable amount of
    memory for kernel with net namespaces turned on.
    
    After this set the lo device is actually allocated from a size-1024
    kmem cache on i386 box even with NETPOLL and WIRELESS_EXT turned on.
    Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d0498d9a
dev.c 111 KB