test/mbuf: skip field registration at busy offset
Checks
Commit Message
There is a test for dynamic field registration at a specific offset.
Depending on which driver is probed, some dynamic fields may be
already registered at this offset.
This failure is skipped with a warning.
Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags")
Cc: stable@dpdk.org
Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
app/test/test_mbuf.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
Comments
On Sat, Oct 31, 2020 at 3:37 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> There is a test for dynamic field registration at a specific offset.
> Depending on which driver is probed, some dynamic fields may be
> already registered at this offset.
> This failure is skipped with a warning.
>
> Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags")
> Cc: stable@dpdk.org
>
> Reported-by: David Marchand <david.marchand@redhat.com>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> app/test/test_mbuf.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c
> index 80d1850da9..3a13cf4e1f 100644
> --- a/app/test/test_mbuf.c
> +++ b/app/test/test_mbuf.c
> @@ -2608,9 +2608,13 @@ test_mbuf_dyn(struct rte_mempool *pktmbuf_pool)
>
> offset3 = rte_mbuf_dynfield_register_offset(&dynfield3,
> offsetof(struct rte_mbuf, dynfield1[1]));
> - if (offset3 != offsetof(struct rte_mbuf, dynfield1[1]))
> - GOTO_FAIL("failed to register dynamic field 3, offset=%d: %s",
> - offset3, strerror(errno));
> + if (offset3 != offsetof(struct rte_mbuf, dynfield1[1])) {
> + if (rte_errno == EBUSY)
> + printf("mbuf test error skipped: dynfield is busy\n");
> + else
> + GOTO_FAIL("failed to register dynamic field 3, offset="
> + "%d: %s", offset3, strerror(errno));
> + }
>
> printf("dynfield: offset=%d, offset2=%d, offset3=%d\n",
> offset, offset2, offset3);
> --
> 2.28.0
>
Reviewed-by: David Marchand <david.marchand@redhat.com>
31/10/2020 15:57, David Marchand:
> On Sat, Oct 31, 2020 at 3:37 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > There is a test for dynamic field registration at a specific offset.
> > Depending on which driver is probed, some dynamic fields may be
> > already registered at this offset.
> > This failure is skipped with a warning.
> >
> > Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags")
> > Cc: stable@dpdk.org
> >
> > Reported-by: David Marchand <david.marchand@redhat.com>
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>
> Reviewed-by: David Marchand <david.marchand@redhat.com>
Applied, thanks
@@ -2608,9 +2608,13 @@ test_mbuf_dyn(struct rte_mempool *pktmbuf_pool)
offset3 = rte_mbuf_dynfield_register_offset(&dynfield3,
offsetof(struct rte_mbuf, dynfield1[1]));
- if (offset3 != offsetof(struct rte_mbuf, dynfield1[1]))
- GOTO_FAIL("failed to register dynamic field 3, offset=%d: %s",
- offset3, strerror(errno));
+ if (offset3 != offsetof(struct rte_mbuf, dynfield1[1])) {
+ if (rte_errno == EBUSY)
+ printf("mbuf test error skipped: dynfield is busy\n");
+ else
+ GOTO_FAIL("failed to register dynamic field 3, offset="
+ "%d: %s", offset3, strerror(errno));
+ }
printf("dynfield: offset=%d, offset2=%d, offset3=%d\n",
offset, offset2, offset3);