> -----Original Message-----
> From: Tom Rix <t...@redhat.com>
> Sent: Sunday, September 12, 2021 5:55 AM
> To: Chautru, Nicolas <nicolas.chau...@intel.com>; dev@dpdk.org;
> gak...@marvell.com
> Cc: tho...@monjalon.net; hemant.agra...@nxp.com; Zhang, Mingshan
> <mingshan.zh...@intel.com>; Joshi, Arun <arun.jo...@intel.com>
> Subject: Re: [PATCH v3 6/6] bbdev: reduce warning level for one scenario
> 
> 
> On 9/7/21 6:15 PM, Nicolas Chautru wrote:
> > Queue setup may genuinely fail when adding incremental queues for a
> > given priority level. In that case application would attempt to
> > configure a queue at a different priority level.
> > Not an actual error.
> >
> > Signed-off-by: Nicolas Chautru <nicolas.chau...@intel.com>
> > ---
> >   lib/bbdev/rte_bbdev.c | 7 ++++---
> >   1 file changed, 4 insertions(+), 3 deletions(-)
> >
> > diff --git a/lib/bbdev/rte_bbdev.c b/lib/bbdev/rte_bbdev.c index
> > fc37236..defddcf 100644
> > --- a/lib/bbdev/rte_bbdev.c
> > +++ b/lib/bbdev/rte_bbdev.c
> > @@ -528,9 +528,10 @@ struct rte_bbdev *
> >     ret = dev->dev_ops->queue_setup(dev, queue_id, (conf != NULL) ?
> >                     conf : &dev_info.default_queue_conf);
> >     if (ret < 0) {
> > -           rte_bbdev_log(ERR,
> > -                           "Device %u queue %u setup failed", dev_id,
> > -                           queue_id);
> > +           /* This may happen when trying different priority levels */
> > +           rte_bbdev_log(INFO,
> > +                           "Device %u queue %u setup failed",
> > +                           dev_id, queue_id);
> 
> This change is just changing the log level, which is fine.
> 
> I am looking at how the error handling is done for the function.
> 
> It seems like the bailing is done in the middle of change the queue state.
> 
> ex/ the block above this one
> 
> /* Release existing queue ... */
> 
> Does this leave the queue in a bad state ?

Hi Tom, 
That would not be related to that change indeed. 

The queue would end up in a not configured when rte_bbdev_queue_configure() 
fails but then can still  be configured again without limitation (worst thing 
than can happen is that queue_release is called, hence leaves the queue in a 
deterministic state, unconfigured but ready to be configured).
Note that queue_release() just removes the configuration of the queue, but the 
queue is still there and can be configured again (actual total number of queues 
unchanged, based on number previously set with rte_bbdev_setup_queues()).

Thanks
Nic

> 
> Tom
> 
> >             return ret;
> >     }
> >

Reply via email to