Subject: Re: [PATCH RFC net-next v1 5/6] tools: ynl: ethtool.py: Make tool invokable from any CWD

From: Rahul Rameshbabu <[email-masked]>
Date: Fri, 23 Feb 2024 14:39:07 -0800

On Fri, 23 Feb, 2024 13:08:34 -0800 Jacob Keller <[email-masked]> wrote:
> On 2/23/2024 11:24 AM, Rahul Rameshbabu wrote:
>> ethtool.py depends on yml files in a specific location of the linux kernel
>> tree. Using relative lookup for those files means that ethtool.py would
>> need to be run under tools/net/ynl/. Lookup needed yml files without
>> depending on the current working directory that ethtool.py is invoked from.
>> 
>> Signed-off-by: Rahul Rameshbabu <[email-masked]>
>> Reviewed-by: Dragos Tatulea <[email-masked]>
>> ---
>>  tools/net/ynl/ethtool.py | 8 ++++++--
>>  1 file changed, 6 insertions(+), 2 deletions(-)
>> 
>> diff --git a/tools/net/ynl/ethtool.py b/tools/net/ynl/ethtool.py
>> index 6c9f7e31250c..44ba3ba58ed9 100755
>> --- a/tools/net/ynl/ethtool.py
>> +++ b/tools/net/ynl/ethtool.py
>> @@ -6,6 +6,7 @@ import json
>>  import pprint
>>  import sys
>>  import re
>> +import os
>>  
>>  from lib import YnlFamily
>>  
>> @@ -152,8 +153,11 @@ def main():
>>      global args
>>      args = parser.parse_args()
>>  
>> -    spec = '../../../Documentation/netlink/specs/ethtool.yaml'
>> -    schema = '../../../Documentation/netlink/genetlink-legacy.yaml'
>> +    script_abs_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
>> +    spec = os.path.join(script_abs_dir,
>> +                        '../../../Documentation/netlink/specs/ethtool.yaml')
>> +    schema = os.path.join(script_abs_dir,
>> +                          '../../../Documentation/netlink/genetlink-legacy.yaml')
>>  
>
> This seems like a worthwhile improvement to make the tool more usable.
>

Unfortunately, even though in the next patch after this one where I add
the ts stats group as a comment, the tool seems to fail at rendering the
actual counters of the stats group, so I had to use the ethtool tree to
test. I should look into that, so that way other contributors such as
Intel can simply use this script to test that they hooked into the
ethtool ts stats interface correctly.

--
Thanks,

Rahul Rameshbabu