[ofa-general] ***SPAM*** Re: [PATCH] infiniband-diags Add support for PortXmitWait counter

Eli Dorfman (Voltaire) dorfman.eli at gmail.com
Mon Jan 5 23:46:15 PST 2009


Hal Rosenstock wrote:
> Eli,
> 
> On Mon, Jan 5, 2009 at 7:47 AM, Eli Dorfman (Voltaire)
> <dorfman.eli at gmail.com> wrote:
>> Sasha Khapyorsky wrote:
>>> Hi Eli,
>>>
>>> On 14:58 Tue 23 Dec     , Eli Dorfman (Voltaire) wrote:
>>>>  Add support for PortXmitWait counter
>>>>  Show PortCounters::PortXmitWait when this capability is supported by the firmware.
>>>>  If not supported show this counter as 0.
>>>>
>>>> Signed-off-by: Eli Dorfman <elid at voltaire.com>
>>>> ---
>>>>  infiniband-diags/src/perfquery.c  |   10 +++++++++-
>>>>  libibmad/include/infiniband/mad.h |    1 +
>>>>  libibmad/src/fields.c             |    1 +
>>>>  3 files changed, 11 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/infiniband-diags/src/perfquery.c b/infiniband-diags/src/perfquery.c
>>>> index 7a53e92..4166fff 100644
>>>> --- a/infiniband-diags/src/perfquery.c
>>>> +++ b/infiniband-diags/src/perfquery.c
>>>> @@ -68,6 +68,7 @@ struct perf_count {
>>>>      uint32_t rcvdata;
>>>>      uint32_t xmtpkts;
>>>>      uint32_t rcvpkts;
>>>> +    uint32_t xmtwait;
>>>>  };
>>>>
>>>>  struct perf_count_ext {
>>>> @@ -210,6 +211,8 @@ static void aggregate_perfcounters(void)
>>>>      aggregate_32bit(&perf_count.xmtpkts, val);
>>>>          mad_decode_field(pc, IB_PC_RCV_PKTS_F, &val);
>>>>      aggregate_32bit(&perf_count.rcvpkts, val);
>>>> +        mad_decode_field(pc, IB_PC_XMT_WAIT_F, &val);
>>>> +    aggregate_32bit(&perf_count.xmtwait, val);
>>>>  }
>>> Should XMT_WAIT support be added to output_aggregate_perfcounters(),
>>> reset and other places too?
>> reset is not supported by the firmware (at the moment).
> 
> What is the firmware response to a reset ?

i didn't try this since mellanox say they don't support this.

> 
> -- Hal
> 
>> need to add xmitwait to output_aggregate_perfcounters() as well.
>>
>>>>  static void output_aggregate_perfcounters(ib_portid_t *portid)
>>>> @@ -299,9 +302,14 @@ static void dump_perfcounters(int extended, int timeout, uint16_t cap_mask, ib_p
>>>>      if (extended != 1) {
>>>>              if (!port_performance_query(pc, portid, port, timeout))
>>>>                      IBERROR("perfquery");
>>>> +            if (!(cap_mask & 0x1000)) {
>>>> +                    /* if PortCounters:PortXmitWait not suppported clear this counter */
>>>> +                    perf_count.xmtwait = 0;
>>>> +                    mad_encode_field(pc, IB_PC_XMT_WAIT_F, &perf_count.xmtwait);
>>>> +            }
>>>>              if (aggregate)
>>>>                      aggregate_perfcounters();
>>>> -            else
>>>> +            else
>>>>                      mad_dump_perfcounters(buf, sizeof buf, pc, sizeof pc);
>>>>      } else {
>>>>              if (!(cap_mask & 0x200)) /* 1.2 errata: bit 9 is extended counter support */
>>>> diff --git a/libibmad/include/infiniband/mad.h b/libibmad/include/infiniband/mad.h
>>>> index c2ad148..6c313f9 100644
>>>> --- a/libibmad/include/infiniband/mad.h
>>>> +++ b/libibmad/include/infiniband/mad.h
>>>> @@ -413,6 +413,7 @@ enum MAD_FIELDS {
>>>>      IB_PC_RCV_BYTES_F,
>>>>      IB_PC_XMT_PKTS_F,
>>>>      IB_PC_RCV_PKTS_F,
>>>> +    IB_PC_XMT_WAIT_F,
>>>>      IB_PC_LAST_F,
>>>>
>>>>      /*
>>> Basically I'm fine to have two separate patches - one to support
>>> XMT_WAIT in libibmad and another one for perfquery, this is a minor
>>> although.
>> it is all part of the same change.
>>
>>> Sasha
>>>
>>>> diff --git a/libibmad/src/fields.c b/libibmad/src/fields.c
>>>> index 6942e85..116e432 100644
>>>> --- a/libibmad/src/fields.c
>>>> +++ b/libibmad/src/fields.c
>>>> @@ -247,6 +247,7 @@ ib_field_t ib_mad_f [] = {
>>>>      [IB_PC_RCV_BYTES_F]             {224, 32, "RcvData", mad_dump_uint},
>>>>      [IB_PC_XMT_PKTS_F]              {256, 32, "XmtPkts", mad_dump_uint},
>>>>      [IB_PC_RCV_PKTS_F]              {288, 32, "RcvPkts", mad_dump_uint},
>>>> +    [IB_PC_XMT_WAIT_F]              {320, 32, "XmtWait", mad_dump_uint},
>>>>
>>>>      /*
>>>>       * SMInfo
>>>> --
>>>> 1.5.5
>>>>
>> _______________________________________________
>> general mailing list
>> general at lists.openfabrics.org
>> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>>
>> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
>>




More information about the general mailing list