From: Yuval Mintz <[email protected]>
Date: Thu, 8 Jun 2017 19:13:16 +0300
> @@ -67,6 +79,21 @@ struct qed_ll2_stats {
> u64 sent_bcast_pkts;
> };
>
> +struct qed_ll2_tx_pkt_info {
> + u8 num_of_bds;
> + u16 vlan;
> + u8 bd_flags;
> + u16 l4_hdr_offset_w; /* from start of packet */
> + enum qed_ll2_tx_dest tx_dest;
> + enum qed_ll2_roce_flavor_type qed_roce_flavor;
> + dma_addr_t first_frag;
> + u16 first_frag_len;
> + bool enable_ip_cksum;
> + bool enable_l4_cksum;
> + bool calc_ip_len;
> + void *cookie;
> +};
> +
This layout is extremely inefficient, with lots of padding in between
struct members.
Group small u8 members and u16 members together so that they consume
full 32-bit areas so you can eliminate all of the padding.