Queue Allocation Limitations on LX2160A Custom Board with Multiple Ethernet Interfaces

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Queue Allocation Limitations on LX2160A Custom Board with Multiple Ethernet Interfaces

Jump to solution
3,406 Views
o_m_v
Contributor I

Hardware:

  • CPU: LX2160A
  • Board: Custom board with 16 1000BaseX SFP Ethernet ports (DPMAC3-DPMAC18)
  • SerDes1 Protocol: 4 (8x 1G Ethernet)
  • SerDes2 Protocol: 9 (8x 1G Ethernet)
  • SerDes3 Protocol: 3 (2x PCIe)

Software:

  • Bootloaders and Linux firmware are based on "LSDK-21.08" branches
  • MC Firmware Version: v10.39.0

We have attached a diagram illustrating our DPL configuration, as well as the DPL DTS file obtained using the command restool dprc generate-dpl dprc.1 for a setup with 12 queues per interface.


Issue Description:

We can successfully allocate 8 queues (1 traffic class) for each of the 16 interfaces (DPMAC3-DPMAC18) without issues. However, when attempting to allocate 12 queues (1 traffic class) per interface, we receive the following error messages in the MC log:

[E, allocate_resource:1114] resman_bind() failed for DCP-8WQ
[E, allocate_channel_resources:168, DPCON] Ignore above error message, continue with 8WQ channel allocation...
 

Despite these errors, all ports appear to work correctly.

Questions:

  1. Is it safe to use this configuration with 12 queues per interface, or do the error messages indicate a potential problem?
  2. If there is an issue, can you suggest a way to resolve it?

When attempting to allocate even more queues (14 or 16 per interface), we encounter "No resources" errors, resulting in the failure to create some interfaces:

root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.18

root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.17
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.16
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.15
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.14
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.13
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.12
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.11
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.10
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.9
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.8
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.7
root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.6

root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.5
MC error: No resources (status 0x8)
Error: dpcon object was not created!

root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.4
MC error: No resources (status 0x8)
Error: dpcon object was not created!

root@TinyLinux:~# ls-addni -nq=16 -t=1 dpmac.3
MC error: No resources (status 0x8)
Error: dpcon object was not created!

Further Questions:

  1. What is the maximum number of queues we can allocate for all 16 interfaces?
  2. Is there a specific limit on queue allocation, and is it possible to increase this limit to allocate more queues per interface?
0 Kudos
Reply
1 Solution
3,271 Views
yipingwang
NXP TechSupport
NXP TechSupport

For this case, suggest modifying the DPC DTS as below,
- wq_ch_conversion = <32>;
+ wq_ch_conversion = <64>;

Refer to the following note from this section 8.3.2.3.3.1 DPAA2 objects dependencies in LSDKUG2108.pdf.
Note that DPIO objects themselves transparently consume DPCONs (one
per DPIO object), which therefore must be subtracted from the total
number available to the DPNIs (they need not be explicitly declared in
the DPL, but they are simply not available to the rest of the system).
The system can provide up to 64 8-WQ DPCONs (and up to 256
2-WQ DPCONs and combinations thereof).

View solution in original post

0 Kudos
Reply
2 Replies
3,397 Views
o_m_v
Contributor I
 
0 Kudos
Reply
3,272 Views
yipingwang
NXP TechSupport
NXP TechSupport

For this case, suggest modifying the DPC DTS as below,
- wq_ch_conversion = <32>;
+ wq_ch_conversion = <64>;

Refer to the following note from this section 8.3.2.3.3.1 DPAA2 objects dependencies in LSDKUG2108.pdf.
Note that DPIO objects themselves transparently consume DPCONs (one
per DPIO object), which therefore must be subtracted from the total
number available to the DPNIs (they need not be explicitly declared in
the DPL, but they are simply not available to the rest of the system).
The system can provide up to 64 8-WQ DPCONs (and up to 256
2-WQ DPCONs and combinations thereof).

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-1995943%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EQueue%20Allocation%20Limitations%20on%20LX2160A%20Custom%20Board%20with%20Multiple%20Ethernet%20Interfaces%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1995943%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSTRONG%3EHardware%3A%3C%2FSTRONG%3E%3C%2FP%3E%3CUL%3E%3CLI%3E%3CSTRONG%3ECPU%3A%3C%2FSTRONG%3E%20LX2160A%3C%2FLI%3E%3CLI%3E%3CSTRONG%3EBoard%3A%3C%2FSTRONG%3E%20Custom%20board%20with%2016%201000BaseX%20SFP%20Ethernet%20ports%20(DPMAC3-DPMAC18)%3C%2FLI%3E%3CLI%3E%3CSTRONG%3ESerDes1%20Protocol%3A%3C%2FSTRONG%3E%204%20(8x%201G%20Ethernet)%3C%2FLI%3E%3CLI%3E%3CSTRONG%3ESerDes2%20Protocol%3A%3C%2FSTRONG%3E%209%20(8x%201G%20Ethernet)%3C%2FLI%3E%3CLI%3E%3CSTRONG%3ESerDes3%20Protocol%3A%3C%2FSTRONG%3E%203%20(2x%20PCIe)%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%3CSTRONG%3ESoftware%3A%3C%2FSTRONG%3E%3C%2FP%3E%3CUL%3E%3CLI%3EBootloaders%20and%20Linux%20firmware%20are%20based%20on%20%22LSDK-21.08%22%20branches%3C%2FLI%3E%3CLI%3EMC%20Firmware%20Version%3A%20v10.39.0%3C%2FLI%3E%3C%2FUL%3E%3CP%3EWe%20have%20attached%20a%20diagram%20illustrating%20our%20DPL%20configuration%2C%20as%20well%20as%20the%20DPL%20DTS%20file%20obtained%20using%20the%20command%20restool%20dprc%20generate-dpl%20dprc.1%20for%20a%20setup%20with%2012%20queues%20per%20interface.%3C%2FP%3E%3CHR%20%2F%3E%3CP%3E%3CSTRONG%3EIssue%20Description%3A%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3EWe%20can%20successfully%20allocate%208%20queues%20(1%20traffic%20class)%20for%20each%20of%20the%2016%20interfaces%20(DPMAC3-DPMAC18)%20without%20issues.%20However%2C%20when%20attempting%20to%20allocate%2012%20queues%20(1%20traffic%20class)%20per%20interface%2C%20we%20receive%20the%20following%20error%20messages%20in%20the%20MC%20log%3A%3C%2FP%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%5BE%2C%20allocate_resource%3A1114%5D%20resman_bind()%20failed%20for%20DCP-8WQ%3CBR%20%2F%3E%5BE%2C%20allocate_channel_resources%3A168%2C%20DPCON%5D%20Ignore%20above%20error%20message%2C%20continue%20with%208WQ%20channel%20allocation...%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3CP%3EDespite%20these%20errors%2C%20all%20ports%20appear%20to%20work%20correctly.%3C%2FP%3E%3CP%3E%3CSTRONG%3EQuestions%3A%3C%2FSTRONG%3E%3C%2FP%3E%3COL%3E%3CLI%3EIs%20it%20safe%20to%20use%20this%20configuration%20with%2012%20queues%20per%20interface%2C%20or%20do%20the%20error%20messages%20indicate%20a%20potential%20problem%3F%3C%2FLI%3E%3CLI%3EIf%20there%20is%20an%20issue%2C%20can%20you%20suggest%20a%20way%20to%20resolve%20it%3F%3C%2FLI%3E%3C%2FOL%3E%3CHR%20%2F%3E%3CP%3EWhen%20attempting%20to%20allocate%20even%20more%20queues%20(14%20or%2016%20per%20interface)%2C%20we%20encounter%20%22No%20resources%22%20errors%2C%20resulting%20in%20the%20failure%20to%20create%20some%20interfaces%3A%3C%2FP%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CDIV%20class%3D%22%22%3E%3CSPAN%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.18%3C%2FSPAN%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CDIV%20class%3D%22%22%3E%3CP%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.17%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.16%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.15%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.14%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.13%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.12%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.11%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.10%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.9%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.8%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.7%3CBR%20%2F%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.6%3C%2FP%3E%3CP%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.5%3CBR%20%2F%3EMC%20error%3A%20No%20resources%20(status%200x8)%3CBR%20%2F%3EError%3A%20dpcon%20object%20was%20not%20created!%3C%2FP%3E%3CP%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.4%3CBR%20%2F%3EMC%20error%3A%20No%20resources%20(status%200x8)%3CBR%20%2F%3EError%3A%20dpcon%20object%20was%20not%20created!%3C%2FP%3E%3CP%3Eroot%40TinyLinux%3A~%23%20ls-addni%20-nq%3D16%20-t%3D1%20dpmac.3%3CBR%20%2F%3EMC%20error%3A%20No%20resources%20(status%200x8)%3CBR%20%2F%3EError%3A%20dpcon%20object%20was%20not%20created!%3C%2FP%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CP%3E%3CSTRONG%3EFurther%20Questions%3A%3C%2FSTRONG%3E%3C%2FP%3E%3COL%3E%3CLI%3EWhat%20is%20the%20maximum%20number%20of%20queues%20we%20can%20allocate%20for%20all%2016%20interfaces%3F%3C%2FLI%3E%3CLI%3EIs%20there%20a%20specific%20limit%20on%20queue%20allocation%2C%20and%20is%20it%20possible%20to%20increase%20this%20limit%20to%20allocate%20more%20queues%20per%20interface%3F%3C%2FLI%3E%3C%2FOL%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1999885%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20Queue%20Allocation%20Limitations%20on%20LX2160A%20Custom%20Board%20with%20Multiple%20Ethernet%20Interfaces%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1999885%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3EFor%20this%20case%2C%20suggest%20modifying%20the%20DPC%20DTS%20as%20below%2C%20%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%20-%20wq_ch_conversion%20%3D%20%26lt%3B32%26gt%3B%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%2B%20wq_ch_conversion%20%3D%20%26lt%3B64%26gt%3B%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3ERefer%20to%20the%20following%20note%20from%20this%20section%208.3.2.3.3.1%20DPAA2%20objects%20dependencies%20in%20LSDKUG2108.pdf.%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3ENote%20that%20DPIO%20objects%20themselves%20transparently%20consume%20DPCONs%20(one%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Eper%20DPIO%20object)%2C%20which%20therefore%20must%20be%20subtracted%20from%20the%20total%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Enumber%20available%20to%20the%20DPNIs%20(they%20need%20not%20be%20explicitly%20declared%20in%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3Ethe%20DPL%2C%20but%20they%20are%20simply%20not%20available%20to%20the%20rest%20of%20the%20system).%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3EThe%20system%20can%20provide%20up%20to%2064%208-WQ%20DPCONs%20(and%20up%20to%20256%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E2-WQ%20DPCONs%20and%20combinations%20thereof).%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1995944%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20Queue%20Allocation%20Limitations%20on%20LX2160A%20Custom%20Board%20with%20Multiple%20Ethernet%20Interfaces%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1995944%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3C%2FLINGO-BODY%3E