[dpdk-dev] [PATCH v4 2/2] event/sw: support device stop flush callback
Van Haaren, Harry
harry.van.haaren at intel.com
Fri Mar 23 18:05:46 CET 2018
> From: Eads, Gage
> Sent: Tuesday, March 20, 2018 2:13 PM
> To: dev at dpdk.org
> Cc: jerin.jacob at caviumnetworks.com; Van Haaren, Harry
> <harry.van.haaren at intel.com>; hemant.agrawal at nxp.com; Richardson, Bruce
> <bruce.richardson at intel.com>; santosh.shukla at caviumnetworks.com;
> nipun.gupta at nxp.com
> Subject: [PATCH v4 2/2] event/sw: support device stop flush callback
>
> This commit also adds a flush callback test to the sw eventdev's selftest
> suite.
>
> Signed-off-by: Gage Eads <gage.eads at intel.com>
> ---
> drivers/event/sw/sw_evdev.c | 25 ++++++++++-
> drivers/event/sw/sw_evdev_selftest.c | 80
> +++++++++++++++++++++++++++++++++++-
> 2 files changed, 102 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c
> index 0e89f11..11f394f 100644
> --- a/drivers/event/sw/sw_evdev.c
> +++ b/drivers/event/sw/sw_evdev.c
> @@ -362,8 +362,25 @@ sw_init_qid_iqs(struct sw_evdev *sw)
> }
>
> static void
> -sw_clean_qid_iqs(struct sw_evdev *sw)
> +sw_flush_iq(struct rte_eventdev *dev, struct sw_iq *iq)
> {
> + struct sw_evdev *sw = sw_pmd_priv(dev);
> +
> + while (iq_count(iq) > 0) {
> + struct rte_event event;
> +
> + iq_dequeue_burst(sw, iq, &event, 1);
> +
> + dev->dev_ops->dev_stop_flush(dev->data->dev_id,
> + event,
> + dev->data->dev_stop_flush_arg);
Adding check that dev_stop_flush() is non-NULL?
[Update: Ah I see you do this below already. Still, better check twice
I think, the data path isn't running here anyway in case future me
decides to call sw_flush_iq() without performing the check]
if(dev->dev_ops->dev_stop_flush)
dev->dev_ops->dev_stop_flush(...);
> @@ -702,7 +723,7 @@ static void
> sw_stop(struct rte_eventdev *dev)
> {
> struct sw_evdev *sw = sw_pmd_priv(dev);
> - sw_clean_qid_iqs(sw);
> + sw_clean_qid_iqs(dev);
Based on the port buffers comment on 1/2, we probably need a
sw_clean_port_buffers(sw); here to return any events in the port
owned SW buffers?
Rest looks good to me!
More information about the dev
mailing list