RE: [PATCH 3/3 v3] net/macb: Try to optimize struct macb layout

From: David Laight
Date: Wed May 15 2013 - 05:40:09 EST


> Move TX-related fields to the top of the struct so that they end up on
> the same cache line. Move the NAPI struct below that since it is used
> from the interrupt handler. This field is also marked as
> ___cacheline_aligned_in_smp.
> RX-related fields go below those.
> Function pointers and capability mask are immediately after that as
> they are also used in the hot path.
>
> Move the spinlock before regs since they are usually used together.

Haven't you introduced some holes in the structure?
I suspect that spinloack_t might only be 32bits on
some 64bit systems.
There is certainly one where 'caps' used to be.

...>
> struct macb {
> + spinlock_t lock;
> void __iomem *regs;
...
> + struct macb_or_gem_ops macbgem_ops;
> +
> + u32 caps;
>
> - spinlock_t lock;
> struct platform_device *pdev;

David



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/