On Thu, Oct 29, 2009 at 9:17 PM, Sasha Khapyorsky <[email protected]> wrote:
>
> On 17:17 Sat 26 Sep     , Hal Rosenstock wrote:
>>
>> to not have any bits on for reserved components
>
> Why to care?

Because a PMA implementation which follows the IBA recommendation will
reject this so it's safer.

-- Hal

>>
>> Signed-off-by: Hal Rosenstock <[email protected]>
>> ---
>> diff --git a/infiniband-diags/src/perfquery.c
>> b/infiniband-diags/src/perfquery.c
>> index d70af9e..5d4046b 100644
>> --- a/infiniband-diags/src/perfquery.c
>> +++ b/infiniband-diags/src/perfquery.c
>> @@ -91,6 +91,8 @@ struct perf_count perf_count =
>>      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
>>  struct perf_count_ext perf_count_ext = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
>>
>> +int not_def_mask = 0;
>> +
>>  #define ALL_PORTS 0xFF
>>
>>  /* Notes: IB semantics is to cap counters if count has exceeded limits.
>> @@ -337,8 +339,10 @@ static void reset_counters(int extended, int timeout,
>> int mask,
>>                                             IB_GSI_PORT_COUNTERS,
>> srcport))
>>                          IBERROR("perf reset");
>>          } else {
>> -                if (!performance_reset_via(pc, portid, port, mask,
>> timeout,
>> -                                           IB_GSI_PORT_COUNTERS_EXT,
>> srcport))
>> +                if (!performance_reset_via(pc, portid, port,
>> +                                           not_def_mask ? mask : mask &
>> 0xff,
>> +                                           timeout,
>> IB_GSI_PORT_COUNTERS_EXT,
>> +                                           srcport))
>
> And if it is really needed please do it somehow without introducing yet
> another global flow switcher.
>
> Sasha
>
>>                          IBERROR("perf ext reset");
>>          }
>>  }
>> @@ -476,8 +480,10 @@ int main(int argc, char **argv)
>>
>>          if (argc > 1)
>>                  port = strtoul(argv[1], 0, 0);
>> -        if (argc > 2)
>> +        if (argc > 2) {
>>                  mask = strtoul(argv[2], 0, 0);
>> +                not_def_mask = 1;
>> +        }
>>
>>          srcport = mad_rpc_open_port(ibd_ca, ibd_ca_port, mgmt_classes,
>> 4);
>>          if (!srcport)
>>
>

Reply via email to