[EXTERNAL] [PATCH v2 02/33] bus/vmbus: remove packed attribute from ring buffer

Wei Hu weh at microsoft.com
Mon Sep 21 10:37:27 CEST 2026



> -----Original Message-----
> From: Stephen Hemminger <stephen at networkplumber.org>
> Sent: Monday, September 21, 2026 2:10 AM
> To: dev at dpdk.org
> Cc: Stephen Hemminger <stephen at networkplumber.org>; Wei Hu
> <weh at microsoft.com>
> Subject: [EXTERNAL] [PATCH v2 02/33] bus/vmbus: remove packed attribute
> from ring buffer
> 
> The attribute came from the FreeBSD structure this was copied from, which
> ends in a flexible array member for the ring data and is asserted to be page
> sized. DPDK computes the data offset from the page size instead and never
> declared that member, so nothing is left that packing affects: all remaining
> members are naturally aligned and the layout is identical without it.
> 
> Byte alignment does prevent atomic access to the ring indexes, which clang
> rejects with -Watomic-alignment.
> 
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>

Reviewed-by: weh at microsoft.com

> ---
>  drivers/bus/vmbus/rte_vmbus_reg.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/bus/vmbus/rte_vmbus_reg.h
> b/drivers/bus/vmbus/rte_vmbus_reg.h
> index 6370a07f95..210328c877 100644
> --- a/drivers/bus/vmbus/rte_vmbus_reg.h
> +++ b/drivers/bus/vmbus/rte_vmbus_reg.h
> @@ -69,7 +69,7 @@ struct __rte_packed_begin vmbus_mon_page {
>   * Buffer ring
>   */
> 
> -struct __rte_packed_begin vmbus_bufring {
> +struct vmbus_bufring {
>  	volatile uint32_t windex;
>  	volatile uint32_t rindex;
> 
> @@ -111,7 +111,7 @@ struct __rte_packed_begin vmbus_bufring {
>  	 * page aligned and starts at rte_mem_page_size() from the beginning
>  	 * of this structure
>  	 */
> -} __rte_packed_end;
> +};
> 
>  /*
>   * Channel packets
> --
> 2.53.0



More information about the dev mailing list