DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] eventdev: rte_event_dev_start() all queues are linked requirement
@ 2018-07-30  7:38 Elo, Matias (Nokia - FI/Espoo)
  2018-07-30  8:05 ` Jerin Jacob
  0 siblings, 1 reply; 3+ messages in thread
From: Elo, Matias (Nokia - FI/Espoo) @ 2018-07-30  7:38 UTC (permalink / raw)
  To: dev; +Cc: jerin.jacob, Van Haaren, Harry

Hi,

rte_event_dev_start() requires that all queues have to be linked, which makes
writing applications which link/unlink queues at runtime cumbersome.
E.g. the application has to dummy link all queues before rte_event_dev_start()
and then unlink them after the function call. This alone wouldn't be a big issue
but rte_event_dev_start() may also be called inside
rte_event_eth_rx_adapter_create() implementation causing additional complexity.

To me this check seems more like eventdev implementation specific limitation,
which should be solved by the particular implementation and not enforced by the
API to all applications. From an application point of view enqueueing events to
an unlinked queue and expecting something meaningful to happen is an error
anyway. So, would it be conceivable to remove this particular requirement?

-Matias

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] eventdev: rte_event_dev_start() all queues are linked requirement
  2018-07-30  7:38 [dpdk-dev] eventdev: rte_event_dev_start() all queues are linked requirement Elo, Matias (Nokia - FI/Espoo)
@ 2018-07-30  8:05 ` Jerin Jacob
  2018-07-30  9:15   ` Van Haaren, Harry
  0 siblings, 1 reply; 3+ messages in thread
From: Jerin Jacob @ 2018-07-30  8:05 UTC (permalink / raw)
  To: Elo, Matias (Nokia - FI/Espoo); +Cc: dev, Van Haaren, Harry, mattias.ronnblom

-----Original Message-----
> Date: Mon, 30 Jul 2018 07:38:27 +0000
> From: "Elo, Matias (Nokia - FI/Espoo)" <matias.elo@nokia.com>
> To: "dev@dpdk.org" <dev@dpdk.org>
> CC: "jerin.jacob@caviumnetworks.com" <jerin.jacob@caviumnetworks.com>, "Van
>  Haaren, Harry" <harry.van.haaren@intel.com>
> Subject: eventdev: rte_event_dev_start() all queues are linked requirement
> x-mailer: Apple Mail (2.3445.9.1)
> 

+ mattias.ronnblom@ericsson.com as his SW driver is scheduled for next
release.

> 
> Hi,
> 
> rte_event_dev_start() requires that all queues have to be linked, which makes
> writing applications which link/unlink queues at runtime cumbersome.
> E.g. the application has to dummy link all queues before rte_event_dev_start()
> and then unlink them after the function call. This alone wouldn't be a big issue
> but rte_event_dev_start() may also be called inside
> rte_event_eth_rx_adapter_create() implementation causing additional complexity.
> 
> To me this check seems more like eventdev implementation specific limitation,
> which should be solved by the particular implementation and not enforced by the
> API to all applications. From an application point of view enqueueing events to
> an unlinked queue and expecting something meaningful to happen is an error
> anyway. So, would it be conceivable to remove this particular requirement?

For HW drivers, It is OK remove the particular requirement. But, If
there is an issue(performance/functionality) for enabling such feature
in SW driver. I would like keep that constraint to keep eventdev as
abstraction for both SW and HW driver. Harry and/or Mattias.ronnblom can
comment from SW driver perspective.

> 
> -Matias

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] eventdev: rte_event_dev_start() all queues are linked requirement
  2018-07-30  8:05 ` Jerin Jacob
@ 2018-07-30  9:15   ` Van Haaren, Harry
  0 siblings, 0 replies; 3+ messages in thread
From: Van Haaren, Harry @ 2018-07-30  9:15 UTC (permalink / raw)
  To: Jerin Jacob, Elo, Matias (Nokia - FI/Espoo); +Cc: dev, mattias.ronnblom

> From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com]
> Sent: Monday, July 30, 2018 9:05 AM
> To: Elo, Matias (Nokia - FI/Espoo) <matias.elo@nokia.com>
> Cc: dev@dpdk.org; Van Haaren, Harry <harry.van.haaren@intel.com>;
> mattias.ronnblom@ericsson.com
> Subject: Re: eventdev: rte_event_dev_start() all queues are linked requirement
> 
> -----Original Message-----
> > Date: Mon, 30 Jul 2018 07:38:27 +0000
> > From: "Elo, Matias (Nokia - FI/Espoo)" <matias.elo@nokia.com>
> > To: "dev@dpdk.org" <dev@dpdk.org>
> > CC: "jerin.jacob@caviumnetworks.com" <jerin.jacob@caviumnetworks.com>, "Van
> >  Haaren, Harry" <harry.van.haaren@intel.com>
> > Subject: eventdev: rte_event_dev_start() all queues are linked requirement
> > x-mailer: Apple Mail (2.3445.9.1)
> >
> 
> + mattias.ronnblom@ericsson.com as his SW driver is scheduled for next
> release.
> 
> >
> > Hi,
> >
> > rte_event_dev_start() requires that all queues have to be linked, which
> makes
> > writing applications which link/unlink queues at runtime cumbersome.
> > E.g. the application has to dummy link all queues before
> rte_event_dev_start()
> > and then unlink them after the function call. This alone wouldn't be a big
> issue
> > but rte_event_dev_start() may also be called inside
> > rte_event_eth_rx_adapter_create() implementation causing additional
> complexity.
> >
> > To me this check seems more like eventdev implementation specific
> limitation,
> > which should be solved by the particular implementation and not enforced by
> the
> > API to all applications. From an application point of view enqueueing events
> to
> > an unlinked queue and expecting something meaningful to happen is an error
> > anyway. So, would it be conceivable to remove this particular requirement?
> 
> For HW drivers, It is OK remove the particular requirement. But, If
> there is an issue(performance/functionality) for enabling such feature
> in SW driver. I would like keep that constraint to keep eventdev as
> abstraction for both SW and HW driver. Harry and/or Mattias.ronnblom can
> comment from SW driver perspective.


I don't have any objection to removing this restriction.

Initially it was added to the event/sw driver as it avoids a potential
deadlock situation if no ports are mapped to a queue, and the application
enqueues events to the queue. As a result the queue will backpressure until
the whole thing stops.

I'm aware that this is incorrect usage - if events are enqueued to a queue
the application is responsible for configuring the ports to pull those events
out again... we thought this would help the user - but it looks to do the opposite.

Currently this is NOT enforced by the lib/eventdev layer (as far as I can see)?
I don't think the header file suggests such behavior either...

In event/sw we have a check that fails - but we can relax that check.
I'll wait a day or two for some more input, and send a patch for event/sw then.


Thanks @Matias Elo for bringing attention to this! -Harry

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-07-30  9:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-30  7:38 [dpdk-dev] eventdev: rte_event_dev_start() all queues are linked requirement Elo, Matias (Nokia - FI/Espoo)
2018-07-30  8:05 ` Jerin Jacob
2018-07-30  9:15   ` Van Haaren, Harry

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).