Reset Search
 

 

Article

CLI commands to see CPU bound traffic statistics in CPU queues on EXOS switches

« Go Back

Information

 
TitleCLI commands to see CPU bound traffic statistics in CPU queues on EXOS switches
Objective
CLI commands to see CPU bound traffic statistics in CPU queues on EXOS switches
Environment
  • EXOS All
Procedure
When having high CPU utilization and determining what type packets are hitting the CPU, the following CLI commands can be of great use in EXOS.
These commands show traffic statistics of individual queues in the CPU and help to identify which queue is being overutilized.

Note: The first command is only for BD8K and Summit and the second one is only for BDX8. 

 
<BD8K and Summit>
# debug hal show cpu-queue <slot #>    #### Slot # is only for BD8K
Slot: 1
Queue Info Unit:0
    Queue 0: PPS 0. CurPkts 0. TotPkts 64340. Disc rate 0, qlen 0.
    Queue 1: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.
    Queue 2: PPS 0. CurPkts 0. TotPkts 30527233. Disc rate 0, qlen 0.
    Queue 3: PPS 0. CurPkts 0. TotPkts 3662107. Disc rate 0, qlen 0.
    Queue 4: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.
    Queue 5: PPS 0. CurPkts 0. TotPkts 37538. Disc rate 0, qlen 0.
    Queue 6: PPS 0. CurPkts 0. TotPkts 189323. Disc rate 0, qlen 0.
    Queue 7: PPS 0. CurPkts 0. TotPkts 3923571. Disc rate 0, qlen 0.

<BDX8>
# debug hal show emcm cpu-queue-stats slot <Master MM #> 
Printing CPU Q statistics for slot=13 unit=0
Cos         PktCount        ByteCount
0              8667         1421388
1                 0               0
2           1220665       200189060
3          12869925      2110667800
4                 0               0
5              6844         1122416
6            172694        28321816
7           9900008      1687991037
8                 0               0
9                 0               0
10                0               0
11         19951917       299163103

Each queue is dedicated for processing certain packet types as outlined below. 

Queue 0 : Broadcast and IPv6 packets
Queue 1 : sFlow packets
Queue 2 : vMAC destined packets (VRRP MAC and ESRP MAC)
Queue 3 : L3 Miss packets (ARP request not resolved) or L2 Miss packets (Software MAC learning)
Queue 4 : Multicast traffic not hitting hardware ipmc table (224.0.0.0/4 normal IP multicast packets neither IGMP nor PIM)
Queue 5 : ARP reply packets or packets destined for switch itself
Queue 6 : IGMP or PIM packets
Queue 7 : Packets whose TOS field is "0xc0" and Ethertype is "0x0800", or STP, EAPS, EDP, OSPF packets
Queue 11 : Control path packets (only for BDX8)


BD8K and Summit support 8 queues in hardware, whereas BDX8 supports a total of 64 queues and only 9 queues are in use among them.
Additional notes
In 16.2.3.5 and 22.2.1.5, "debug hal show cpu-queue <slot #>" command doesn't return a proper output as explained above. 
  • The "debug hal show cpu-queue" command doesn't return a proper outupt in 16.2.3.5
d2p32dc-edr5.sc.intel.com.3 # debug hal show cpu-queue 
Slot: 1
Usage (PacketWatcher): Parameters: [report +/-<values>] [stop|start] [count]
        clear - Extreme: clear pw debug counters
        rx-debug [on|off] - When enabled, PacketWactcher dumps additional
                            information about RX DMA chains and refill state
        rx-dv - dump RX DMA chains and DMA control blocks (DCB)

<Instead, the following command is still available to display cpu queue stats in the debug mode>

(debug) d2p32dc-edr5.sc.intel.com.7 # j h p b s <slot #> u <unit #> "pw"
  Queue Info
    Queue 0: PPS 0. CurPkts 0. TotPkts 5629. Disc rate 0, qlen 0.
    Queue 1: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.
    Queue 2: PPS 0. CurPkts 0. TotPkts 17715917. Disc rate 0, qlen 0.
    Queue 3: PPS 0. CurPkts 0. TotPkts 7500. Disc rate 0, qlen 0.
    Queue 4: PPS 0. CurPkts 0. TotPkts 1. Disc rate 0, qlen 0.
    Queue 5: PPS 0. CurPkts 0. TotPkts 364. Disc rate 0, qlen 0.
    Queue 6: PPS 0. CurPkts 0. TotPkts 610548. Disc rate 0, qlen 0.
    Queue 7: PPS 0. CurPkts 0. TotPkts 1084837. Disc rate 0, qlen 0.
  • The "debug hal show cpu-queue" command only returns all the counters with 0s in 22.2.1.5
* d2p32dc-edr6.sc.intel.com.2 # debug hal show cpu-queue 
Slot: 1
Queue Info Unit:0
    Queue 0: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.
    Queue 1: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.
    Queue 2: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.
    Queue 3: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.
    Queue 4: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.
    Queue 5: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.
    Queue 6: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.
    Queue 7: PPS 0. CurPkts 0. TotPkts 0. Disc rate 0, qlen 0.

<Instead, the following command is still available to display cpu queue stats in the debug mode>
* (debug) d2p32dc-edr6.sc.intel.com.4 # !cat /proc/net/exbcmpkt/qstats
Queue         Rx    Rx Drop       Tx Q     Tx CoS    Tx Drop
0        4813835          0     149107     149107          0
1       34040129          0      53294          0      12658
2          18229          0  190533972          0          0
3       11226452          0          0          0          0
4              0          0          0          0          0
5          29275          0          0          0          0
6         872991          0          0          0          0
7       39294630          0          0  190587266          0
​As this debug command is not a regular CLI command, there is no plan for a fix on this output issue at this moment.

Feedback

 

Was this article helpful?


   

Feedback

Please tell us how we can make this article more useful.

Characters Remaining: 255