From: Petr Machata <petrm@nvidia.com>
To: Jakub Kicinski <kuba@kernel.org>
Cc: <davem@davemloft.net>, <netdev@vger.kernel.org>,
<edumazet@google.com>, <pabeni@redhat.com>, <shuah@kernel.org>,
<linux-kselftest@vger.kernel.org>
Subject: Re: [PATCH net 4/5] selftests: net-drv: queues: sanity check netlink dumps
Date: Mon, 16 Dec 2024 11:46:19 +0100 [thread overview]
Message-ID: <87bjxbvr0w.fsf@nvidia.com> (raw)
In-Reply-To: <20241213152244.3080955-5-kuba@kernel.org>
Jakub Kicinski <kuba@kernel.org> writes:
> This test already catches a netlink bug fixed by this series,
> but only when running on HW with many queues. Make sure the
> netdevsim instance created has a lot of queues, and constrain
> the size of the recv_buffer used by netlink.
>
> While at it test both rx and tx queues.
>
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> ---
> CC: shuah@kernel.org
> CC: linux-kselftest@vger.kernel.org
> ---
> tools/testing/selftests/drivers/net/queues.py | 23 +++++++++++--------
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/tools/testing/selftests/drivers/net/queues.py b/tools/testing/selftests/drivers/net/queues.py
> index 30f29096e27c..9c5473abbd78 100755
> --- a/tools/testing/selftests/drivers/net/queues.py
> +++ b/tools/testing/selftests/drivers/net/queues.py
> @@ -8,25 +8,28 @@ from lib.py import cmd
> import glob
>
>
> -def sys_get_queues(ifname) -> int:
> - folders = glob.glob(f'/sys/class/net/{ifname}/queues/rx-*')
> +def sys_get_queues(ifname, qtype='rx') -> int:
> + folders = glob.glob(f'/sys/class/net/{ifname}/queues/{qtype}-*')
> return len(folders)
>
>
> -def nl_get_queues(cfg, nl):
> +def nl_get_queues(cfg, nl, qtype='rx'):
> queues = nl.queue_get({'ifindex': cfg.ifindex}, dump=True)
> if queues:
> - return len([q for q in queues if q['type'] == 'rx'])
> + return len([q for q in queues if q['type'] == qtype])
> return None
>
>
> def get_queues(cfg, nl) -> None:
> - queues = nl_get_queues(cfg, nl)
> - if not queues:
> - raise KsftSkipEx('queue-get not supported by device')
> + snl = NetdevFamily(recv_size=4096)
>
> - expected = sys_get_queues(cfg.dev['ifname'])
> - ksft_eq(queues, expected)
> + for qtype in ['rx', 'tx']:
> + queues = nl_get_queues(cfg, snl, qtype)
> + if not queues:
> + raise KsftSkipEx('queue-get not supported by device')
Passing qtype in the message might be helpful here.
> +
> + expected = sys_get_queues(cfg.dev['ifname'], qtype)
> + ksft_eq(queues, expected)
>
>
> def addremove_queues(cfg, nl) -> None:
> @@ -57,7 +60,7 @@ import glob
>
>
> def main() -> None:
> - with NetDrvEnv(__file__, queue_count=3) as cfg:
> + with NetDrvEnv(__file__, queue_count=100) as cfg:
> ksft_run([get_queues, addremove_queues], args=(cfg, NetdevFamily()))
> ksft_exit()
Hmm, get_queues() doesn't use the passed-in NetdevFamily(), but that
gets created anyway for addremove_queues(), so whatever.
Reviewed-by: Petr Machata <petrm@nvidia.com>
next prev parent reply other threads:[~2024-12-16 10:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-13 15:22 [PATCH net 0/5] netdev: fix repeated netlink messages in queue dumps Jakub Kicinski
2024-12-13 15:22 ` [PATCH net 1/5] netdev: fix repeated netlink messages in queue dump Jakub Kicinski
2024-12-13 21:41 ` Joe Damato
2024-12-13 15:22 ` [PATCH net 2/5] netdev: fix repeated netlink messages in queue stats Jakub Kicinski
2024-12-13 21:42 ` Joe Damato
2024-12-13 15:22 ` [PATCH net 3/5] selftests: net: support setting recv_size in YNL Jakub Kicinski
2024-12-13 21:45 ` Joe Damato
2024-12-16 10:37 ` Petr Machata
2024-12-13 15:22 ` [PATCH net 4/5] selftests: net-drv: queues: sanity check netlink dumps Jakub Kicinski
2024-12-13 21:47 ` Joe Damato
2024-12-16 10:46 ` Petr Machata [this message]
2024-12-13 15:22 ` [PATCH net 5/5] selftests: net-drv: stats: " Jakub Kicinski
2024-12-16 10:53 ` Petr Machata
2024-12-17 1:29 ` Jakub Kicinski
2024-12-13 21:52 ` [PATCH net 0/5] netdev: fix repeated netlink messages in queue dumps Joe Damato
2024-12-14 1:38 ` Jakub Kicinski
2024-12-17 1:50 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87bjxbvr0w.fsf@nvidia.com \
--to=petrm@nvidia.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.