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.