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.

Reply via email to