[dpdk-dev] [PATCH v1 1/2] lib/ring: add enqueue-dequeue callabck
Varghese, Vipin
vipin.varghese at intel.com
Mon Jun 10 07:07:45 CEST 2019
Hi Stephen,
snipped
> NAK
> What is the use case for this?
Use cases:
- allow user to investigate the contents pre-enqueue.
- allow user to investigate the contents post-dequeue.
- modify pre-enqueue and post-dequeue stage content.
- investigate PMD meta data.
Rings are one of the most used elements of DPDK
> and anything like this will have performance impact.
Based on the current testing with 10G, the impact with callback handlers enabled with no or one has less than 0.1% with SP-SC. I will test for more cases like SP-MC, MP-SC, and MP-MC.
>
> And as DPDK goes to more of distribution model, all features have to be enabled.
>
>
> Also, this looks like a problem:
> +struct rte_ring_callback {
> + TAILQ_ENTRY(rte_ring_callback) next; /* Callbacks list */
> + rte_ring_cb_fn cb_fn; /* Callback address */
> + void *cb_arg; /* Parameter for callback */
> + uint32_t active; /* Callback is executing */
>
> The active element is likely updated in one thread and queried in another it needs
> to be volatile, or better yet an atomic to ensure memory ordering.
Yes, thanks you for pointing this out, Let me correct the same.
More information about the dev
mailing list