With Make build system, RTE_PMD_PACKET_PREFETCH was enabled by default. It got lost when transitioning to Meson build system. In order to avoid performance changes, this patch enables packet prefetching in rte_config.h. Reported-by: Marvin Liu <yong.liu@intel.com> Suggested-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> --- Hi Bruce, We were not sure whether adding below Fixes tag so that it is backported to LTSes. What do you think? Fixes: 9314afb68a53 ("drivers: add infrastructure for meson build") Cc: stable@dpdk.org config/rte_config.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/rte_config.h b/config/rte_config.h index 25219f04af..a0b5160ff2 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -103,6 +103,9 @@ /****** driver defines ********/ +/* Packet prefetching in PMDs */ +#define RTE_PMD_PACKET_PREFETCH 1 + /* QuickAssist device */ /* Max. number of QuickAssist devices which can be attached */ #define RTE_PMD_QAT_MAX_PCI_DEVICES 48 -- 2.26.2
On Fri, Nov 13, 2020 at 03:52:12PM +0100, Maxime Coquelin wrote:
> With Make build system, RTE_PMD_PACKET_PREFETCH was enabled
> by default. It got lost when transitioning to Meson build
> system.
>
> In order to avoid performance changes, this patch enables
> packet prefetching in rte_config.h.
>
> Reported-by: Marvin Liu <yong.liu@intel.com>
> Suggested-by: David Marchand <david.marchand@redhat.com>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
>
> Hi Bruce,
>
> We were not sure whether adding below Fixes tag so that it is
> backported to LTSes. What do you think?
>
> Fixes: 9314afb68a53 ("drivers: add infrastructure for meson build")
> Cc: stable@dpdk.org
>
> config/rte_config.h | 3 +++
> 1 file changed, 3 insertions(+)
>
I view it as a gap in the transition from make to meson, so +1 for
adding these. Stable maintainers can then decide themselves on whether to
accept the patch or not.
/Bruce
13/11/2020 16:05, Bruce Richardson:
> On Fri, Nov 13, 2020 at 03:52:12PM +0100, Maxime Coquelin wrote:
> > With Make build system, RTE_PMD_PACKET_PREFETCH was enabled
> > by default. It got lost when transitioning to Meson build
> > system.
> >
> > In order to avoid performance changes, this patch enables
> > packet prefetching in rte_config.h.
> >
> > Reported-by: Marvin Liu <yong.liu@intel.com>
> > Suggested-by: David Marchand <david.marchand@redhat.com>
> > Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> > ---
> >
> > Hi Bruce,
> >
> > We were not sure whether adding below Fixes tag so that it is
> > backported to LTSes. What do you think?
> >
> > Fixes: 9314afb68a53 ("drivers: add infrastructure for meson build")
> > Cc: stable@dpdk.org
> >
> > config/rte_config.h | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> I view it as a gap in the transition from make to meson, so +1 for
> adding these. Stable maintainers can then decide themselves on whether to
> accept the patch or not.
Applied with backport info, thanks.
14/11/2020 09:51, Thomas Monjalon: > 13/11/2020 16:05, Bruce Richardson: > > On Fri, Nov 13, 2020 at 03:52:12PM +0100, Maxime Coquelin wrote: > > > With Make build system, RTE_PMD_PACKET_PREFETCH was enabled > > > by default. It got lost when transitioning to Meson build > > > system. > > > > > > In order to avoid performance changes, this patch enables > > > packet prefetching in rte_config.h. > > > > > > Reported-by: Marvin Liu <yong.liu@intel.com> > > > Suggested-by: David Marchand <david.marchand@redhat.com> > > > Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> [...] > > Applied with backport info, thanks. Note that it is added back for "compatibility", but I am still in favour of dropping this config option, replaced by arch decision if any: http://inbox.dpdk.org/dev/3677226.MZCibFMyqQ@thomas/ The decision of such optimization should be done in DPDK project, not in the hand of the packager.
On Sat, Nov 14, 2020 at 10:00 AM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 14/11/2020 09:51, Thomas Monjalon:
> > 13/11/2020 16:05, Bruce Richardson:
> > > On Fri, Nov 13, 2020 at 03:52:12PM +0100, Maxime Coquelin wrote:
> > > > With Make build system, RTE_PMD_PACKET_PREFETCH was enabled
> > > > by default. It got lost when transitioning to Meson build
> > > > system.
> > > >
> > > > In order to avoid performance changes, this patch enables
> > > > packet prefetching in rte_config.h.
> > > >
> > > > Reported-by: Marvin Liu <yong.liu@intel.com>
> > > > Suggested-by: David Marchand <david.marchand@redhat.com>
> > > > Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> [...]
> >
> > Applied with backport info, thanks.
>
> Note that it is added back for "compatibility",
> but I am still in favour of dropping this config option,
> replaced by arch decision if any:
> http://inbox.dpdk.org/dev/3677226.MZCibFMyqQ@thomas/
>
> The decision of such optimization should be done in DPDK project,
> not in the hand of the packager.
I am for dropping this too.
And for cleaning more prefetch-related stuff, like:
#if 1
#define RTE_PMD_USE_PREFETCH
#endif
#ifdef RTE_PMD_USE_PREFETCH
#define rte_em_prefetch(p) rte_prefetch0(p)
#else
#define rte_em_prefetch(p) do {} while(0)
#endif
This has been copied into other drivers.
The igc driver forgot(?) to force #define this macro, so it just
copied unused code.
--
David Marchand