[dpdk-dev] Could DPDK ring provide peek interface or any comments for this function?
stephen at networkplumber.org
Tue Aug 4 18:14:22 CEST 2015
On Tue, 04 Aug 2015 14:57:16 +0200
Olivier MATZ <olivier.matz at 6wind.com> wrote:
> On 08/04/2015 04:20 AM, Yan, Liming (Nokia - CN/Hangzhou) wrote:
> > Hi,
> > As we see, DPDK ring has mainly the enqueue/dequeue APIs for SINGLE/MULTI producer/consumer. I have a requirement in work to take a peek on the top object in the ring. I don't want to consume it, just check the reference of the object. How could this be supported? Or any alternative solution for my requirement? Thanks.
> > I wrote my own simple peek interface but it's not MC-safe. I think it's better if DPDK can support it officially.
> I think it's a good idea. I think we could avoid a test by using
> the same naming convention than other functions applying to single
> consumer rings.
> I'm not sure the function is safe on mc rings: the pointer returned
> via peek() should not be accessed while another core dequeues the
> object and modify/free it.
It is not possible for peek to be SMP safe. Another consumer could remove
item from ring and free at any time.
More information about the dev