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

From: Rahul Rameshbabu
Date: Fri Feb 23 2024 - 17:42:27 EST


On Fri, 23 Feb, 2024 13:08:34 -0800 Jacob Keller <jacob.e.keller@xxxxxxxxx> 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 <rrameshbabu@xxxxxxxxxx>
>> Reviewed-by: Dragos Tatulea <dtatulea@xxxxxxxxxx>
>> ---
>> 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