On 11/28/2014 06:37 AM, Bill Fischofer wrote:
You cannot gracefully destroy a queue without some sort of quiesce
function that prohibits further enqueues to the queue while allowing
items on the queue to be dequeued until the queue is empty.  To position
for this, I'd include a check that rejects the destroy attempt if the
queue is not empty.  It's then up to the caller to ensure that the queue
is empty by its own means for v1.0.

There is an issue with quiesce functions. If queue is used by some HW
block like pktio or crypto in may not be possible to prevent enqueues.
At least on Keystone queue should be detached from HW first (i.e.
replaced by another one). This should be coordinated from application
side.

I've mentioned in the description that behavior is undefined if queue
is not empty or used by some HW block.


We have the same issue in buffer pools.  We have an
odp_buffer_pool_destroy() but unless the application can somehow ensure
that the pool is empty the call will fail.  We can talk about adding a
pool quiesce function to facilitate this post-v1.0.


_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to