Bug 1386
Summary: | [dpdk-24.03] [ABI][meson test] driver-tests/link_bonding_autotest test failed: Segmentation fault when do ABI testing | ||
---|---|---|---|
Product: | DPDK | Reporter: | jiang,yu (yux.jiang) |
Component: | ethdev | Assignee: | Jerin (jerinjacobk) |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | david.marchand, ferruh.yigit, hailinx.xu, jerinjacobk |
Priority: | Normal | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | All |
Description
jiang,yu
2024-02-28 04:18:48 CET
Could you provide the backtrace of this crash? [root@ABI-80 dpdk]# dmesg [321775.556832] vfio-pci 0000:18:00.0: Masking broken INTx support [321775.556908] vfio-pci 0000:18:00.0: vfio_ecap_init: hiding ecap 0x19@0x1d0 [321775.844843] vfio-pci 0000:1a:00.0: Masking broken INTx support [321775.844947] vfio-pci 0000:1a:00.0: vfio_ecap_init: hiding ecap 0x19@0x1d0 [321781.820113] dpdk-test[2298656]: segfault at 50 ip 0000000000453d31 sp 00007ffdeefcda90 error 6 in dpdk-test[416000+1f6000] [321781.820124] Code: f7 41 89 45 58 49 8d 4d 10 49 8d 44 24 10 49 89 47 58 49 89 4c 24 30 48 89 44 24 10 ba 01 00 00 00 49 8b 47 40 48 89 4c 24 18 <66> 89 50 50 b9 01 00 00 00 31 d2 49 8b 47 40 be 06 00 00 00 66 89 Is there any progress on this issue? Looks like i40e specific issue, can you reproduce with anything vdev or HW PMD Looks like i40e specific issue, can you reproduce with anything vdev or HW PMD (In reply to Jerin from comment #5) > Looks like i40e specific issue, can you reproduce with anything vdev or HW > PMD Not i40e specific issue, ice nic also can reproduce. dmesg: [269453.056342] vfio-pci 0000:4b:00.0: vfio_ecap_init: hiding ecap 0x19@0x1d0 [269453.056347] vfio-pci 0000:4b:00.0: vfio_ecap_init: hiding ecap 0x25@0x200 [269453.056349] vfio-pci 0000:4b:00.0: vfio_ecap_init: hiding ecap 0x26@0x210 [269453.056351] vfio-pci 0000:4b:00.0: vfio_ecap_init: hiding ecap 0x27@0x250 [269453.277824] vfio-pci 0000:4b:11.0: enabling device (0000 -> 0002) [269453.600299] vfio-pci 0000:4b:11.0: enabling device (0000 -> 0002) [269458.470533] dpdk-test[2956468]: segfault at 50 ip 0000563f05359a25 sp 00007fff5230ead0 error 6 in dpdk-test[563f05313000+220000] [269458.470544] Code: f7 41 89 45 58 49 8d 4d 10 49 8d 44 24 10 49 89 46 58 49 89 4c 24 30 48 89 44 24 10 ba 01 00 00 00 49 8b 46 40 48 89 4c 24 18 <66> 89 50 50 b9 01 00 00 00 31 d2 49 8b 46 40 be 06 00 00 00 66 89 OS:Ubuntu22.04.3 LTS/5.15.0-91-generic/gcc version 11.4.0 The issue is due to the following change[1] app/test/virtual_pmd.c is using internal struct rte_eth_dev struct via virtual_ethdev_create() and it's used by app/test/test_link_bonding.c. So this test case is not valid for testing the ABI as it is using internal structure. [1] diff --git a/lib/ethdev/ethdev_driver.h b/lib/ethdev/ethdev_driver.h index b482cd12bb..f05f68a67c 100644 --- a/lib/ethdev/ethdev_driver.h +++ b/lib/ethdev/ethdev_driver.h @@ -58,6 +58,8 @@ struct rte_eth_dev { eth_rx_queue_count_t rx_queue_count; /** Check the status of a Rx descriptor */ eth_rx_descriptor_status_t rx_descriptor_status; + /** Get the number of used Tx descriptors */ + eth_tx_queue_count_t tx_queue_count; /** Check the status of a Tx descriptor */ eth_tx_descriptor_status_t tx_descriptor_status; /** Pointer to PMD transmit mbufs reuse function */ How can I reproduce the issue, 'link_bonding_autotest' test passes for me? And which function/test fails in 'app/test/test_link_bonding.c'? (In reply to Ferruh YIGIT from comment #8) > How can I reproduce the issue, 'link_bonding_autotest' test passes for me? > > And which function/test fails in 'app/test/test_link_bonding.c'? Hi Ferruh, this is testing ABI. Steps you can refer to the above description. (In reply to Jerin from comment #7) > The issue is due to the following change[1] > > app/test/virtual_pmd.c is using internal struct rte_eth_dev struct via > virtual_ethdev_create() and it's used by app/test/test_link_bonding.c. > So this test case is not valid for testing the ABI as it is using internal > structure. > > > [1] > diff --git a/lib/ethdev/ethdev_driver.h b/lib/ethdev/ethdev_driver.h > index b482cd12bb..f05f68a67c 100644 > --- a/lib/ethdev/ethdev_driver.h > +++ b/lib/ethdev/ethdev_driver.h > @@ -58,6 +58,8 @@ struct rte_eth_dev { > eth_rx_queue_count_t rx_queue_count; > /** Check the status of a Rx descriptor */ > eth_rx_descriptor_status_t rx_descriptor_status; > + /** Get the number of used Tx descriptors */ > + eth_tx_queue_count_t tx_queue_count; > /** Check the status of a Tx descriptor */ > eth_tx_descriptor_status_t tx_descriptor_status; > /** Pointer to PMD transmit mbufs reuse function */ Hi Jerin, do you mean that we should close this bugzilla, and from the bad commit begins, we should not test this case for ABI testing, right? (In reply to jiang,yu from comment #9) > (In reply to Ferruh YIGIT from comment #8) > > How can I reproduce the issue, 'link_bonding_autotest' test passes for me? > > > > And which function/test fails in 'app/test/test_link_bonding.c'? > > Hi Ferruh, this is testing ABI. Steps you can refer to the above description. > I overlooked that this is ABI testing. Then I agree with Jerin, as 'link_bonding_autotest' is using internal API it is not suitable for ABI testing, or changes to internal structures, like "struct rte_eth_dev" in this case will cause ABI issues. +1 to remove this test for ABI testing. Thanks Jerin and Ferruh. And close this Bugzilla according Jerin and Ferruh's inputs. |