[dpdk-dev] [PATCH v2 05/22] event/dlb2: add inline functions

McDaniel, Timothy timothy.mcdaniel at intel.com
Tue Oct 20 16:08:50 CEST 2020



> -----Original Message-----
> From: Jerin Jacob <jerinjacobk at gmail.com>
> Sent: Sunday, October 18, 2020 4:00 AM
> To: McDaniel, Timothy <timothy.mcdaniel at intel.com>
> Cc: dpdk-dev <dev at dpdk.org>; Carrillo, Erik G <Erik.G.Carrillo at intel.com>;
> Eads, Gage <gage.eads at intel.com>; Van Haaren, Harry
> <harry.van.haaren at intel.com>; Jerin Jacob <jerinj at marvell.com>
> Subject: Re: [dpdk-dev] [PATCH v2 05/22] event/dlb2: add inline functions
> 
> On Sat, Oct 17, 2020 at 11:50 PM Timothy McDaniel
> <timothy.mcdaniel at intel.com> wrote:
> >
> > Add miscellaneous inline functions that may be called
> > from multiple files.  These functions include inline
> > assembly of new x86 instructions, such as movdir64b,
> > since they are not available as builtin functions in
> > the minimum supported GCC version.
> >
> > Signed-off-by: Timothy McDaniel <timothy.mcdaniel at intel.com>
> > Reviewed-by: Gage Eads <gage.eads at intel.com>
> > ---
> >  drivers/event/dlb2/dlb2_inline_fns.h | 81
> ++++++++++++++++++++++++++++++++++++
> >  1 file changed, 81 insertions(+)
> >  create mode 100644 drivers/event/dlb2/dlb2_inline_fns.h
> >
> > diff --git a/drivers/event/dlb2/dlb2_inline_fns.h
> b/drivers/event/dlb2/dlb2_inline_fns.h
> > new file mode 100644
> > index 0000000..9c3c36f
> > --- /dev/null
> > +++ b/drivers/event/dlb2/dlb2_inline_fns.h
> > @@ -0,0 +1,81 @@
> > +/* SPDX-License-Identifier: BSD-3-Clause
> > + * Copyright(c) 2016-2020 Intel Corporation
> > + */
> > +
> > +#ifndef _DLB2_INLINE_FNS_H_
> > +#define _DLB2_INLINE_FNS_H_
> > +
> > +/* Inline functions required in more than one source file. */
> > +
> > +static inline struct dlb2_eventdev *
> > +dlb2_pmd_priv(const struct rte_eventdev *eventdev)
> > +{
> > +       return eventdev->data->dev_private;
> > +}
> > +
> > +static inline void
> > +dlb2_umonitor(volatile void *addr)
> > +{
> > +       asm volatile(".byte 0xf3, 0x0f, 0xae, 0xf7\t\n"
> > +                       :
> > +                       : "D" (addr));
> > +}
> > +
> > +static inline void
> > +dlb2_umwait(int state, uint64_t timeout)
> > +{
> > +       uint32_t eax = timeout & UINT32_MAX;
> > +       uint32_t edx = timeout >> 32;
> > +
> > +       asm volatile(".byte 0xf2, 0x0f, 0xae, 0xf7\t\n"
> > +                       :
> > +                       : "D" (state),  "a" (eax), "d" (edx));
> > +}
> > +
> 
> Please change this instruction to use new rte public API once it gets merged.
> 

Yes, we will do that.


More information about the dev mailing list