[v2,3/4] test/ring: fix the wrong number of enq/deq elements
Checks
Commit Message
The actual capacity of ring should be the (RING_SIZE - 1), thus only
(RING_SIZE - 1) elements can be enqueued into the ring.
Fixes: a9fe152363e2 ("test/ring: add custom element size functional tests")
Cc: honnappa.nagarahalli@arm.com
Cc: stable@dpdk.org
Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
app/test/test_ring.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Comments
<snip>
> Subject: [PATCH v2 3/4] test/ring: fix the wrong number of enq/deq elements
>
> The actual capacity of ring should be the (RING_SIZE - 1), thus only (RING_SIZE
> - 1) elements can be enqueued into the ring.
>
> Fixes: a9fe152363e2 ("test/ring: add custom element size functional tests")
This issue is not because of this commit. It is coming from af75078fece3.
> Cc: honnappa.nagarahalli@arm.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> ---
> app/test/test_ring.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/app/test/test_ring.c b/app/test/test_ring.c index
> c508a13a9..51bae0d48 100644
> --- a/app/test/test_ring.c
> +++ b/app/test/test_ring.c
> @@ -822,7 +822,7 @@ test_ring_basic_ex(void)
> printf("%u ring entries are now free\n",
> rte_ring_free_count(rp));
>
> - for (j = 0; j < RING_SIZE; j++) {
> + for (j = 0; j < RING_SIZE - 1; j++) {
> test_ring_enqueue(rp, obj, esize[i], 1,
> TEST_RING_THREAD_DEF |
> TEST_RING_ELEM_SINGLE);
Can you validate the return value of this function (which should have caught the error)?
> }
> @@ -833,7 +833,7 @@ test_ring_basic_ex(void)
> goto fail_test;
> }
>
> - for (j = 0; j < RING_SIZE; j++) {
> + for (j = 0; j < RING_SIZE - 1; j++) {
> test_ring_dequeue(rp, obj, esize[i], 1,
> TEST_RING_THREAD_DEF |
> TEST_RING_ELEM_SINGLE);
Same here.
> }
> --
> 2.17.1
> -----邮件原件-----
> 发件人: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
> 发送时间: 2020年8月27日 4:51
> 收件人: Feifei Wang <Feifei.Wang2@arm.com>; Konstantin Ananyev
> <konstantin.ananyev@intel.com>; Olivier Matz <olivier.matz@6wind.com>;
> Gavin Hu <Gavin.Hu@arm.com>
> 抄送: dev@dpdk.org; nd <nd@arm.com>; Feifei Wang
> <Feifei.Wang2@arm.com>; stable@dpdk.org; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; nd <nd@arm.com>
> 主题: RE: [PATCH v2 3/4] test/ring: fix the wrong number of enq/deq elements
>
> <snip>
>
> > Subject: [PATCH v2 3/4] test/ring: fix the wrong number of enq/deq elements
> >
> > The actual capacity of ring should be the (RING_SIZE - 1), thus only
> (RING_SIZE
> > - 1) elements can be enqueued into the ring.
> >
> > Fixes: a9fe152363e2 ("test/ring: add custom element size functional tests")
> This issue is not because of this commit. It is coming from af75078fece3.
Sorry for my mistake, I will correct it.
>
> > Cc: honnappa.nagarahalli@arm.com
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > ---
> > app/test/test_ring.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/app/test/test_ring.c b/app/test/test_ring.c index
> > c508a13a9..51bae0d48 100644
> > --- a/app/test/test_ring.c
> > +++ b/app/test/test_ring.c
> > @@ -822,7 +822,7 @@ test_ring_basic_ex(void)
> > printf("%u ring entries are now free\n",
> > rte_ring_free_count(rp));
> >
> > - for (j = 0; j < RING_SIZE; j++) {
> > + for (j = 0; j < RING_SIZE - 1; j++) {
> > test_ring_enqueue(rp, obj, esize[i], 1,
> > TEST_RING_THREAD_DEF |
> > TEST_RING_ELEM_SINGLE);
> Can you validate the return value of this function (which should have caught the
> error)?
Ok, only for these two loops, I will add test to validate the number of enqueue/dequeue elements.
>
> > }
> > @@ -833,7 +833,7 @@ test_ring_basic_ex(void)
> > goto fail_test;
> > }
> >
> > - for (j = 0; j < RING_SIZE; j++) {
> > + for (j = 0; j < RING_SIZE - 1; j++) {
> > test_ring_dequeue(rp, obj, esize[i], 1,
> > TEST_RING_THREAD_DEF |
> > TEST_RING_ELEM_SINGLE);
> Same here.
>
> > }
> > --
> > 2.17.1
@@ -822,7 +822,7 @@ test_ring_basic_ex(void)
printf("%u ring entries are now free\n",
rte_ring_free_count(rp));
- for (j = 0; j < RING_SIZE; j++) {
+ for (j = 0; j < RING_SIZE - 1; j++) {
test_ring_enqueue(rp, obj, esize[i], 1,
TEST_RING_THREAD_DEF | TEST_RING_ELEM_SINGLE);
}
@@ -833,7 +833,7 @@ test_ring_basic_ex(void)
goto fail_test;
}
- for (j = 0; j < RING_SIZE; j++) {
+ for (j = 0; j < RING_SIZE - 1; j++) {
test_ring_dequeue(rp, obj, esize[i], 1,
TEST_RING_THREAD_DEF | TEST_RING_ELEM_SINGLE);
}