cn10k: NPA_POOL_ERR_INT_RANGE on Pool 1 during mbuf pool creation in testpmd
https://bugs.dpdk.org/show_bug.cgi?id=2031
Bug ID: 2031
Summary: cn10k: NPA_POOL_ERR_INT_RANGE on Pool 1 during mbuf
pool creation in testpmd
Product: DPDK
Version: 24.11
Hardware: ARM
OS: Linux
Status: UNCONFIRMED
Severity: critical
Priority: Normal
Component: ethdev
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Created attachment 390
--> https://bugs.dpdk.org/attachment.cgi?id=390&action=edit
testpmd-cn10k-mempool-issue.txt
Environment:
------------
- SoC: Marvell Octeon CN10K (cn10kb_a0)
- Kernel: 6.12.68
- DPDK: 24.11.2
- IOVA mode: PA
- VFIO: no-iommu mode
- Hugepages: 1024 x 2MB (2048 MB total)
- Mempool ops: cn10k_mempool_ops
Description:
--------------
testpmd creates mbuf pool mb_pool_0 (n=203456, size=2304) using cn10k_mempool_ops. During pool populate, Pool 1 triggers NPA_POOL_ERR_INT_RANGE repeatedly, followed by Err_intr=0x1000:
testpmd: create a new mbuf pool <mb_pool_0>: n=203456, size=2304, socket=0
testpmd: preferred mempool ops selected: cn10k_mempool_ops
CNXK: npa_q_irq():150 queue_intr=0x1 qintx=1
CNXK: npa_q_irq():165 Pool=1 NPA_POOL_ERR_INT_RANGE
(repeats 4 times during mbuf pool populate)
Configuring Port 0 (socket 0)
CNXK: npa_err_irq():18 Err_intr=0x1000
CNXK: npa_err_irq():18 Err_intr=0x1000
Pool 1 context at time of error:
ptr_start: 0x24808d200 ptr_end: 0x267200000 buf_size: 20 (units of 128 bytes = 2560 bytes) buf_offset: 1 count: decreasing across dumps (0x31aa6 → 0x31a91 → 0x31a79 → 0) op_pc: increasing (0x1a → 0x2f → 0x47 → 0x31ac0) stack_pages: 0 (remains zero across all dumps)
Notable observations:
----------------------
- stack_pages remains 0 throughout, even as op_pc increases — suggesting
buffers are being freed but the stack is not being updated
- count decreases to 0 by the final dump, indicating the pool is fully
drained
- The address range [0x24808d200, 0x267200000) spans ~512 MB, but the mempool
requests ~203K buffers of 2304 bytes (~447 MB)
Expected Result
-------------------
No NPA pool range errors. Pool 1 should initialize and populate without triggering NPA_POOL_ERR_INT_RANGE or npa_err_irq interrupts.
Signature · 2 lines
You are receiving this mail because: You are the assignee for the bug.
https://bugs.dpdk.org/show_bug.cgi?id=2031
Ashwin Sekhar T K ([email protected]) changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected] Status|CONFIRMED |RESOLVED Resolution|--- |INVALID
--- Comment #5 from Ashwin Sekhar T K ([email protected]) ---
PCI_BUS: Expecting 'VA' IOVA mode but current mode is 'PA', not initializing EAL: Failed to probe device 0002:01:01.7 PCI_BUS: Expecting 'VA' IOVA mode but current mode is 'PA', not initializing EAL: Failed to probe device 0002:01:02.0 PCI_BUS: Expecting 'VA' IOVA mode but current mode is 'PA', not initializing EAL: Failed to probe device 0002:02:00.0 PCI_BUS: Expecting 'VA' IOVA mode but current mode is 'PA', not initializing EAL: Failed to probe device 0002:03:00.0 PCI_BUS: Expecting 'VA' IOVA mode but current mode is 'PA', not initializing
These prints should be already coming. No further checks are required.
@Amiya,
It is not a supported mode. This means any address that you are configuring (whether it be contexts or stacks or pointers) will run into all sorts of issues.
You may print the pointers that you are trying to free to understand why the Range error happened. Mostly probably there is a difference in the range configured and the pointers being freed.
Signature · 2 lines
You are receiving this mail because: You are the assignee for the bug.