[dpdk-dev] 回复: [PATCH v1 2/2] test/ring: fix wrong param passed to the enqueue APIs

Feifei Wang Feifei.Wang2 at arm.com
Fri Jul 31 08:25:47 CEST 2020



> -----邮件原件-----
> 发件人: Feifei Wang
> 发送时间: 2020年7月30日 18:29
> 收件人: Honnappa Nagarahalli <Honnappa.Nagarahalli at arm.com>; David
> Marchand <david.marchand at redhat.com>
> 抄送: Konstantin Ananyev <konstantin.ananyev at intel.com>; Gavin Hu
> <Gavin.Hu at arm.com>; Olivier Matz <olivier.matz at 6wind.com>; dev
> <dev at dpdk.org>; nd <nd at arm.com>; dpdk stable <stable at dpdk.org>; nd
> <nd at arm.com>; nd <nd at arm.com>
> 主题: 回复: [dpdk-dev] [PATCH v1 2/2] test/ring: fix wrong param passed to
> the enqueue APIs
> 
> 
> 
> > -----邮件原件-----
> > 发件人: Honnappa Nagarahalli <Honnappa.Nagarahalli at arm.com>
> > 发送时间: 2020年7月30日 5:24
> > 收件人: Feifei Wang <Feifei.Wang2 at arm.com>; David Marchand
> > <david.marchand at redhat.com>
> > 抄送: Konstantin Ananyev <konstantin.ananyev at intel.com>; Gavin Hu
> > <Gavin.Hu at arm.com>; Olivier Matz <olivier.matz at 6wind.com>; dev
> > <dev at dpdk.org>; nd <nd at arm.com>; dpdk stable <stable at dpdk.org>;
> > Honnappa Nagarahalli <Honnappa.Nagarahalli at arm.com>; nd
> <nd at arm.com>
> > 主题: RE: [dpdk-dev] [PATCH v1 2/2] test/ring: fix wrong param passed to
> > the enqueue APIs
> >
> > <snip>
> >
> > > >
> > > > On Wed, Jul 29, 2020 at 4:16 PM Feifei Wang <Feifei.Wang2 at arm.com>
> > > > wrote:
> > > > > > Are we missing a check in the UT so that dequeued object is
> > > > > > what had been enqueued?
> > Yes, missing for single element enqueue/dequeue
> >
> > > > > >
> > > > > >
> > > > > Dequeue is not necessary to change because the param defined in
> > > > > rte_ring_dequeue is different from that in rte_ring_enqueue:
> > > > > rte_ring_enqueue(struct rte_ring *r, void *obj): obj is a
> > > > > pointer
> > > > > (object) to be added in the ring rte_ring_dequeue(struct
> > > > > rte_ring *r, void **obj_p): obj_p is a pointer to a void *
> > > > > pointer
> > > > > (object) that will be filled.
> > > >
> > > > That I get it.
> > > >
> > > > What I meant is that the test enqueues an object in a ring until
> > > > it is full [1], then dequeues all the ring [2].
> > > > 1: https://git.dpdk.org/dpdk/tree/app/test/test_ring.c#n814
> > > > 2: https://git.dpdk.org/dpdk/tree/app/test/test_ring.c#n825
> > > >
> > > > If the test had checked that dequeued objects are the right one,
> > > > we would have caught it.
> > > >
> > > > But on the other hand, maybe another part of the functionnal ring
> > > > tests already check this and we only need to fix this issue here.
> > >
> > > Sorry I just misunderstood you.
> > > 1. Actually, for the APIs of test_ring.h, we lack a test to check
> > > whether the value of object enqueued into the ring matches that
> > > dequeued
> > from the ring.
> > > But it is mainly used to measure the length of time from enqueue to
> > dequeue.
> > > So I'm not sure it is necessary.
> > > 2. For the APIs of rte_ring.h, some tests can be used to test
> > > whether the value of object enqueued into the ring matches that
> > > dequeued from the
> > ring.
> > > For example:
> > > $table_autotest
> > > $mbuf_autotest
> > The dequeued objects are checked against the enqueued objects for the
> > bulk and burst APIs. Look at tests test_ring_burst_bulk_tests1..4.
> > 'memcmp' is used to compare the enqueued objects against the dequeued
> ones.
> > Similar comparison can be added in test_ring_basic_ex,
> > test_ring_with_exact_size functions.
> Thank you for bringing that up.
Next, I will adding the test to check the value of dequeue against enqueue in
test_ring_basic_ex,  test_ring_with_exact_size functions. Furthermore, I will pack
it and the current patch together and upload the new version to the community. 
> >
> > > >
> > > >
> > > > --
> > > > David Marchand
> > >
> > > --
> > > Feifei
> > >



More information about the dev mailing list