[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20170418002247.GB11300@gwshan>
Date: Tue, 18 Apr 2017 10:22:47 +1000
From: Gavin Shan <gwshan@...ux.vnet.ibm.com>
To: Joe Perches <joe@...ches.com>
Cc: Gavin Shan <gwshan@...ux.vnet.ibm.com>, netdev@...r.kernel.org,
davem@...emloft.net
Subject: Re: [PATCH v2 net-next 5/8] net/ncsi: Dump NCSI packet statistics
On Thu, Apr 13, 2017 at 07:30:45PM -0700, Joe Perches wrote:
>On Thu, 2017-04-13 at 17:48 +1000, Gavin Shan wrote:
>> This creates /sys/kernel/debug/ncsi/<eth0>/stats to dump the NCSI
>> packets sent and received over all packages and channels. It's useful
>> to diagnose NCSI problems, especially when NCSI packages and channels
>> aren't probed properly. The statistics can be gained from debugfs file
>> as below:
>>
>> # cat /sys/kernel/debug/ncsi/eth0/stats
>>
>> CMD OK TIMEOUT ERROR
>> =======================================
>> CIS 32 29 0
>> SP 10 7 0
>> DP 17 14 0
>> EC 1 0 0
>> ECNT 1 0 0
>> AE 1 0 0
>> GLS 11 0 0
>> SMA 1 0 0
>> EBF 1 0 0
>> GVI 2 0 0
>> GC 2 0 0
>
>more trivia:
>
>> diff --git a/net/ncsi/ncsi-debug.c b/net/ncsi/ncsi-debug.c
>[]
>> @@ -23,6 +23,235 @@
>> #include "ncsi-pkt.h"
>>
>> static struct dentry *ncsi_dentry;
>> +static struct ncsi_pkt_handler {
>> + unsigned char type;
>> + const char *name;
>> +} ncsi_pkt_handlers[] = {
>> + { NCSI_PKT_CMD_CIS, "CIS" },
>> + { NCSI_PKT_CMD_SP, "SP" },
>> + { NCSI_PKT_CMD_DP, "DP" },
>> + { NCSI_PKT_CMD_EC, "EC" },
>> + { NCSI_PKT_CMD_DC, "DC" },
>> + { NCSI_PKT_CMD_RC, "RC" },
>> + { NCSI_PKT_CMD_ECNT, "ECNT" },
>> + { NCSI_PKT_CMD_DCNT, "DCNT" },
>> + { NCSI_PKT_CMD_AE, "AE" },
>> + { NCSI_PKT_CMD_SL, "SL" },
>> + { NCSI_PKT_CMD_GLS, "GLS" },
>> + { NCSI_PKT_CMD_SVF, "SVF" },
>> + { NCSI_PKT_CMD_EV, "EV" },
>> + { NCSI_PKT_CMD_DV, "DV" },
>> + { NCSI_PKT_CMD_SMA, "SMA" },
>> + { NCSI_PKT_CMD_EBF, "EBF" },
>> + { NCSI_PKT_CMD_DBF, "DBF" },
>> + { NCSI_PKT_CMD_EGMF, "EGMF" },
>> + { NCSI_PKT_CMD_DGMF, "DGMF" },
>> + { NCSI_PKT_CMD_SNFC, "SNFC" },
>> + { NCSI_PKT_CMD_GVI, "GVI" },
>> + { NCSI_PKT_CMD_GC, "GC" },
>> + { NCSI_PKT_CMD_GP, "GP" },
>> + { NCSI_PKT_CMD_GCPS, "GCPS" },
>> + { NCSI_PKT_CMD_GNS, "GNS" },
>> + { NCSI_PKT_CMD_GNPTS, "GNPTS" },
>> + { NCSI_PKT_CMD_GPS, "GPS" },
>> + { NCSI_PKT_CMD_OEM, "OEM" },
>> + { NCSI_PKT_CMD_PLDM, "PLDM" },
>> + { NCSI_PKT_CMD_GPUUID, "GPUUID" },
>
>I don't know how common these are and how
>intelligible these acronyms are to knowledgeable
>developer/users, but maybe it'd be better to
>spell out what these are instead of having to
>look up what the acronyms stand for
>
> CIS - Clear Initial State
> SP - Select Package
> etc...
>
>Maybe copy the descriptions from the ncsi-pkt.h file
>
Joe, good question. As these decriptive strings are part of
the output from ncsi/eth0/stats and input to ncsi/eth0/pkt,
I intended to keep them short enough. Also, this debugging
interface would service developers who knows NCSI protocol
and perhaps know the meanings of these acronyms.
Thanks,
Gavin
>#define NCSI_PKT_CMD_CIS 0x00 /* Clear Initial State */
>#define NCSI_PKT_CMD_SP 0x01 /* Select Package */
>#define NCSI_PKT_CMD_DP 0x02 /* Deselect Package */
>#define NCSI_PKT_CMD_EC 0x03 /* Enable Channel */
>#define NCSI_PKT_CMD_DC 0x04 /* Disable Channel */
>#define NCSI_PKT_CMD_RC 0x05 /* Reset Channel */
>#define NCSI_PKT_CMD_ECNT 0x06 /* Enable Channel Network Tx */
>#define NCSI_PKT_CMD_DCNT 0x07 /* Disable Channel Network Tx */
>#define NCSI_PKT_CMD_AE 0x08 /* AEN Enable */
>#define NCSI_PKT_CMD_SL 0x09 /* Set Link */
>#define NCSI_PKT_CMD_GLS 0x0a /* Get Link */
>#define NCSI_PKT_CMD_SVF 0x0b /* Set VLAN Filter */
>#define NCSI_PKT_CMD_EV 0x0c /* Enable VLAN */
>#define NCSI_PKT_CMD_DV 0x0d /* Disable VLAN */
>#define NCSI_PKT_CMD_SMA 0x0e /* Set MAC address */
>#define NCSI_PKT_CMD_EBF 0x10 /* Enable Broadcast Filter */
>#define NCSI_PKT_CMD_DBF 0x11 /* Disable Broadcast Filter */
>#define NCSI_PKT_CMD_EGMF 0x12 /* Enable Global Multicast Filter */
>#define NCSI_PKT_CMD_DGMF 0x13 /* Disable Global Multicast Filter */
>#define NCSI_PKT_CMD_SNFC 0x14 /* Set NCSI Flow Control */
>#define NCSI_PKT_CMD_GVI 0x15 /* Get Version ID */
>#define NCSI_PKT_CMD_GC 0x16 /* Get Capabilities */
>#define NCSI_PKT_CMD_GP 0x17 /* Get Parameters */
>#define NCSI_PKT_CMD_GCPS 0x18 /* Get Controller Packet Statistics */
>#define NCSI_PKT_CMD_GNS 0x19 /* Get NCSI Statistics */
>#define NCSI_PKT_CMD_GNPTS 0x1a /* Get NCSI Pass-throu Statistics */
>#define NCSI_PKT_CMD_GPS 0x1b /* Get package status */
>#define NCSI_PKT_CMD_OEM 0x50 /* OEM */
>#define NCSI_PKT_CMD_PLDM 0x51 /* PLDM request over NCSI over RBT */
>#define NCSI_PKT_CMD_GPUUID 0x52 /* Get package UUID */
>
Powered by blists - more mailing lists