From: Jakub Kicinski <jakub.kicin...@netronome.com>
Date: Tue, 27 Oct 2015 11:16:03 +0000

> 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.

My bad, I misread the types.
--
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

Reply via email to