On Mon, Feb 09, 2026 at 11:35:26PM +0100, Morten Brørup wrote:
> > From: Bruce Richardson [mailto:[email protected]]
> > Sent: Monday, 9 February 2026 17.45
> > 
> > Provide a common DPDK macro for the gcc/clang builtin
> > __rte_assume_aligned to mark pointers as pointing to something with
> > known minimum alignment.
> > 
> > Signed-off-by: Bruce Richardson <[email protected]>
> > ---
> >  lib/eal/include/rte_common.h | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/lib/eal/include/rte_common.h
> > b/lib/eal/include/rte_common.h
> > index 573bf4f2ce..51a2eaf8b4 100644
> > --- a/lib/eal/include/rte_common.h
> > +++ b/lib/eal/include/rte_common.h
> > @@ -121,6 +121,12 @@ extern "C" {
> >  #define __rte_aligned(a) __attribute__((__aligned__(a)))
> >  #endif
> > 
> > +#ifdef RTE_TOOLCHAIN_MSVC
> > +#define __rte_assume_aligned(ptr, align) (ptr)
> > +#else
> > +#define __rte_assume_aligned __builtin_assume_aligned
> > +#endif
> 
> The GCC/Clang macro supports the optional 3rd parameter (offset), but the 
> MSVC doesn't.
> Maybe it's better to pass (ptr, align) to the GCC/Clang variant, so the API 
> consistently only supports two parameters.
> 
> If the 3rd parameter ever becomes needed, it can be implemented as a new 
> macro.
> 
> Also, a short description of the macro would be nice.
> 
> 
> Did you look into using e.g. __rte_assume((ptr % 16) == 0) instead?
> It's relevant if it has the desired effect for MSVC, which the macro in this 
> patch doesn't.
>
Dropping this patch from the series, making the discussion moot, based on
your feedback on the next patch. Thanks. 

Reply via email to