On Mon, 26 Oct 2015 18:23:07 -0700 (PDT), David Miller wrote: > From: Jakub Kicinski <jakub.kicin...@netronome.com> > Date: Fri, 23 Oct 2015 19:58:11 +0100 > > > +struct nfp_net_tx_buf { > > + struct sk_buff *skb; > > + dma_addr_t dma_addr; > > + short int fidx; > > + u16 pkt_cnt; > > + u32 real_len; > > +}; > > This packs very poorly, and has a lot of padding holes. Better ordering > would be: > > struct nfp_net_tx_buf { > struct sk_buff *skb; > dma_addr_t dma_addr; > u32 real_len; > short int fidx; > u16 pkt_cnt; > };
Seems to pack fine on x86: struct nfp_net_tx_buf { struct sk_buff * skb; /* 0 8 */ dma_addr_t dma_addr; /* 8 8 */ short int fidx; /* 16 2 */ u16 pkt_cnt; /* 18 2 */ u32 real_len; /* 20 4 */ /* size: 24, cachelines: 1, members: 5 */ /* last cacheline: 24 bytes */ }; Are my packing skills deceiving me? Maybe I'll try to build the driver for more esoteric architectures. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html