>> 
>> In bug report https://bugs.dpdk.org/show_bug.cgi?id=60 we have been 
>> discussing
>> issues related to events ending up in wrong ports after calling
>> rte_event_port_unlink(). In addition of finding few bugs we have identified a
>> need for a new API call (or documentation extension) for an application to be
> 
> From HW perspective, documentation extension should be enough. adding 
> "there may be pre-scheduled events and the application is responsible to 
> process them"
> on unlink(). Since dequeue() has which queue it is dequeue-ed from, the
> application can allays make action based on that(i.e, Is the event
> post/pre to unlink)

At least in case of SW eventdev the problem is how the application can know that
it has processed all pre-scheduled events. E.g. dequeue may return nothing but 
since
the scheduler is running as a separate process events may still end up to the 
unlinked
port asynchronously.

> 
>> able to find out when an unlink() call has finished and no new events are
>> scheduled anymore to the particular event port. This is required e.g. when 
>> doing
>> clean-up after an application thread stops processing events.
> 
> If thread stopping then it better to call dev_stop(). At least in HW
> implementation,

For an application doing dynamic load balancing stopping the whole eventdev is 
not an
option.

> A given event port assigned to a new lcore other than
> it previous one then we need to do some clean up at port level.

 In my case I'm mapping an event port per thread statically (basically 
thread_id == port_id),
so this shouldn't be an issue.


Reply via email to