[PATCH v5 05/10] app/test: define unit tests suites based on test macros

Olivier Matz olivier.matz at 6wind.com
Wed Aug 16 15:16:56 CEST 2023


Hi,

On Wed, Aug 16, 2023 at 01:33:46PM +0100, Bruce Richardson wrote:
> On Wed, Aug 16, 2023 at 01:40:41PM +0200, David Marchand wrote:
> > On Wed, Aug 16, 2023 at 1:15 PM David Marchand
> > <david.marchand at redhat.com> wrote:
> > >
> > > On Wed, Aug 16, 2023 at 1:02 PM Bruce Richardson
> > > <bruce.richardson at intel.com> wrote:
> > > > These lines here seem to be exposing a bug in the mempool unit tests for
> > > > shared builds, which is why we have a CI failure.
> > > >
> > > > The mempool unit tests use the mempool "create_empty" API, and then call
> > > > the populate APIs to finish setting up the mempool. However, the
> > > > create_empty API does not explicitly configure a particular set of mempool
> > > > ops for the new mempool, leaving the ops field at 0. This means that unless
> > > > the app explicitly sets other ops, the mempool will use the ops from
> > > > whatever driver registers itself first. This occurs even when the driver is
> > > > unsuitable, e.g. on my Intel system, the dpaa2 is first on the list,
> > > > leading to failures in setting up and using the mempool.
> > >
> > > Hum, it sounds like a bug to me.
> > > The dpaa2 driver should not be registered as the default (or here,
> > > default platform) mempool.
> > > Other mempool drivers ensure that required hw is available, I guess
> > > dpaa2 is missing some check.
> > 
> > Ok, re-reading your last comment, I agree it looks like an issue in
> > the unit test itself.
> > Copying Olivier.
> > 
> No, I think it's not a bug in the test, but rather in the mempool.
> Unfortunately, I think the concept of the "default" driver for mempools
> seems to exist only when using the mbuf library to create mempools. Even
> then, the default mempool is different from what the first entry in the
> list is. That's the fundamental issue here, we are using the zero-eth entry
> in the ops list, rather than a default one.

Yes, Bruce is right.

As discussed off-list with David, moving rte_mempool_set_ops_byname() from
rte_mempool_create() to rte_mempool_create_empty() would ensure that the ring
driver is the default (and taking flags into account).


More information about the dev mailing list