> -----Original Message-----
> From: Thomas Monjalon <tho...@monjalon.net>
> Sent: Sunday, July 17, 2022 4:17 PM
> To: Akhil Goyal <gak...@marvell.com>; Srujana Challa
> <scha...@marvell.com>
> Cc: roy.fan.zh...@intel.com; dev@dpdk.org; Jerin Jacob Kollanukkaran
> <jer...@marvell.com>; Nithin Kumar Dabilpuram
> <ndabilpu...@marvell.com>; Anoob Joseph <ano...@marvell.com>;
> david.march...@redhat.com; bruce.richard...@intel.com;
> konstantin.v.anan...@yandex.ru; ma...@nvidia.com;
> honnappa.nagaraha...@arm.com
> Subject: [EXT] Re: [RFC PATCH] cryptodev: add return parameter to callback
> process API
> 
> External Email
> 
> ----------------------------------------------------------------------
> 24/06/2022 14:12, Srujana Challa:
> > Adds a return parameter "uint16_t qp_id" to the functions
> > rte_cryptodev_pmd_callback_process and rte_cryptodev_cb_fn.
> > The new parameter is used to return queue pair ID to the application
> > when it gets error interrupt, so that application can disable and
> > enable the queue pair, to bring the queue back to normal state.
> 
> What about other events?
> 
> > + * @param  qp_id   Return parameter from driver to the application.
> Driver
> > + *                 returns queue pair ID when it gets HW error
> interrupt.
> > + *                 The application can release and setup the queue
> > + *                 again, to bring the HW queue back to normal state.
> 
> What will it mean if the event is not related to queues?
> 
> >   * @param  event   Crypto device event to register for notification of.
> >   * @param  cb_arg  User specified parameter to be passed as to passed
> to
> >   *                 users callback function.
> 
> Are you going to add a new callback parameter each time the application
> needs info about a new event?
> 
> In my opinion, it is a very bad idea.
> As done in ethdev, you should add a query function specific to the event.
> 
> Example: https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__git.dpdk.org_dpdk_commit_-3Fid-
> 3Dbc70e5594838&d=DwICAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=Fj4OoD5hcK
> FpANhTWdwQzjT1Jpf7veC5263T47JVpnc&m=SUn-
> UVCQXX4KwyuDDcIb_PvE4MwkLTimQ3ox7hHcKW7wCq6BzW2849tn1nq2dO
> S1&s=aSpFxjeE4xjxZadI9wxc5AqInIvinSvFfa0NEeRrxBA&e=
> Here, when a threshold is reached, an event
> RTE_ETH_EVENT_RX_AVAIL_THRESH is fired, and the application can get
> more info about what happened by calling the function
> rte_eth_rx_avail_thresh_query().
> Look at the parameters description:
> "
> @param[inout] queue_id
>  On input starting Rx queue index to search from.
>  If the queue_id is bigger than maximum queue ID of the port,  search is
> started from 0. So that application can keep calling  this function to handle 
> all
> pending events with a simple increment  of queue_id on the next call.
>  On output if return value is 1, Rx queue index with the event pending.
> @param[out] avail_thresh
>  Location for available descriptors threshold of the found Rx queue.
> "
>
Agree with your comment. Will work on to implement query API for events. But as 
of now we only have single error event.

Reply via email to