From: Stanislav Fomichev <stfomichev@gmail.com>
To: Pavel Begunkov <asml.silence@gmail.com>
Cc: David Wei <dw@davidwei.uk>,
io-uring@vger.kernel.org, netdev@vger.kernel.org,
Jens Axboe <axboe@kernel.dk>, Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jesper Dangaard Brouer <hawk@kernel.org>,
David Ahern <dsahern@kernel.org>,
Mina Almasry <almasrymina@google.com>,
Joe Damato <jdamato@fastly.com>,
Pedro Tammela <pctammela@mojatatu.com>
Subject: Re: [PATCH net-next v10 22/22] io_uring/zcrx: add selftest
Date: Mon, 13 Jan 2025 16:11:50 -0800 [thread overview]
Message-ID: <Z4WrxoAB6zv01GYR@mini-arch> (raw)
In-Reply-To: <08bc45ec-93d4-4220-81d5-7377b3daa5cc@gmail.com>
On 01/13, Pavel Begunkov wrote:
> On 1/9/25 17:50, David Wei wrote:
> > On 2025-01-09 09:33, Stanislav Fomichev wrote:
> > > On 01/08, David Wei wrote:
> > > > Add a selftest for io_uring zero copy Rx. This test cannot run locally
> > > > and requires a remote host to be configured in net.config. The remote
> > > > host must have hardware support for zero copy Rx as listed in the
> > > > documentation page. The test will restore the NIC config back to before
> > > > the test and is idempotent.
> > > >
> [...]
> > > > +
> > > > + if (addr &&
> > > > + inet_pton(AF_INET6, addr, &(addr6->sin6_addr)) != 1)
> > > > + error(1, 0, "ipv6 parse error: %s", addr);
> > > > + break;
> > >
> > > nit: let's drop explicit af_inet support and use dual-stack af_inet6 sockets
> > > explicitly? Take a look at parse_address in
> > > tools/testing/selftests/drivers/net/hw/ncdevmem.c on how to
> > > transparently fallback to v4 (maybe even move that parsing function into
> > > some new networking_helpers.c lib similar to bpf subtree?).
> > >
> > > (context: pure v4 environments are unlikely to exist at this point;
> > > anything that supports v6 can use v4-mapped-v6 addresses)
> > >
> > > > + default:
> > > > + error(1, 0, "illegal domain");
> > > > + }
> > > > +
> > > > + if (cfg_payload_len > max_payload_len)
> > > > + error(1, 0, "-l: payload exceeds max (%d)", max_payload_len);
> > > > +}
> > > > +
> ...
> > > [..]
> > >
> > > > +def _get_rx_ring_entries(cfg):
> > > > + eth_cmd = "ethtool -g {} | awk '/RX:/ {{count++}} count == 2 {{print $2; exit}}'"
> > > > + res = cmd(eth_cmd.format(cfg.ifname), host=cfg.remote)
> > > > + return int(res.stdout)
> > > > +
> > > > +
> > > > +def _get_combined_channels(cfg):
> > > > + eth_cmd = "ethtool -l {} | awk '/Combined:/ {{count++}} count == 2 {{print $2; exit}}'"
> > > > + res = cmd(eth_cmd.format(cfg.ifname), host=cfg.remote)
> > > > + return int(res.stdout)
> > > > +
> > > > +
> > > > +def _set_flow_rule(cfg, chan):
> > > > + eth_cmd = "ethtool -N {} flow-type tcp6 dst-port 9999 action {} | awk '{{print $NF}}'"
> > > > + res = cmd(eth_cmd.format(cfg.ifname, chan), host=cfg.remote)
> > > > + return int(res.stdout)
> > >
> > > Most of these (except installing flow steering rule) can be done over
> > > ethtool ynl family. Should we try to move them over to YNL calls instead
> > > of shelling out to ethtool binary? There are some examples in rss_ctx.py
> > > on how to work with ethtool spec.
> > >
> > > Same for setting/resetting number of queues below.
> >
> > I wanted to use YNL, but these commands are run on the remote host and
> > it's currently challenging to use YNL there.
> >
> > >
> > > For the rest, there is also a ethtool() wrapper so you don't have to
> > > do cmd("ethtool ...") and can do ethtool("...").
> >
> > SG, I will update to use ethtool() helper.
>
> If there will be no more issues / concerns, I'd assume we can merge
> this series and follow up on top, as it rather sounds like an
> improvement but not a real problem. Stan, does it work for you?
Sure, can be fixed separately.
next prev parent reply other threads:[~2025-01-14 0:11 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-08 22:06 [PATCH net-next v10 00/22] io_uring zero copy rx David Wei
2025-01-08 22:06 ` [PATCH net-next v10 01/22] net: make page_pool_ref_netmem work with net iovs David Wei
2025-01-16 0:30 ` Jakub Kicinski
2025-01-16 2:12 ` Pavel Begunkov
2025-01-16 2:48 ` Jakub Kicinski
2025-01-16 16:45 ` Pavel Begunkov
2025-01-08 22:06 ` [PATCH net-next v10 02/22] net: page_pool: don't cast mp param to devmem David Wei
2025-01-08 22:06 ` [PATCH net-next v10 03/22] net: prefix devmem specific helpers David Wei
2025-01-08 22:06 ` [PATCH net-next v10 04/22] net: generalise net_iov chunk owners David Wei
2025-01-16 0:31 ` Jakub Kicinski
2025-01-08 22:06 ` [PATCH net-next v10 05/22] net: page pool: export page_pool_set_dma_addr_netmem() David Wei
2025-01-16 0:35 ` Jakub Kicinski
2025-01-16 0:39 ` Jakub Kicinski
2025-01-16 2:12 ` Pavel Begunkov
2025-01-08 22:06 ` [PATCH net-next v10 06/22] net: page_pool: create hooks for custom memory providers David Wei
2025-01-16 0:44 ` Jakub Kicinski
2025-01-16 2:25 ` Pavel Begunkov
2025-01-08 22:06 ` [PATCH net-next v10 07/22] netdev: add io_uring memory provider info David Wei
2025-01-16 0:45 ` Jakub Kicinski
2025-01-08 22:06 ` [PATCH net-next v10 08/22] net: page_pool: add callback for mp info printing David Wei
2025-01-16 0:46 ` Jakub Kicinski
2025-01-08 22:06 ` [PATCH net-next v10 09/22] net: page_pool: add a mp hook to unregister_netdevice* David Wei
2025-01-08 22:06 ` [PATCH net-next v10 10/22] net: prepare for non devmem TCP memory providers David Wei
2025-01-08 22:06 ` [PATCH net-next v10 11/22] net: page_pool: add memory provider helpers David Wei
2025-01-16 0:49 ` Jakub Kicinski
2025-01-08 22:06 ` [PATCH net-next v10 12/22] io_uring/zcrx: add interface queue and refill queue David Wei
2025-01-08 22:06 ` [PATCH net-next v10 13/22] io_uring/zcrx: add io_zcrx_area David Wei
2025-01-08 22:06 ` [PATCH net-next v10 14/22] io_uring/zcrx: grab a net device David Wei
2025-01-16 1:06 ` Jakub Kicinski
2025-01-16 2:33 ` Pavel Begunkov
2025-01-16 3:12 ` Jakub Kicinski
2025-01-16 16:46 ` Pavel Begunkov
2025-01-08 22:06 ` [PATCH net-next v10 15/22] io_uring/zcrx: implement zerocopy receive pp memory provider David Wei
2025-01-13 22:32 ` Jens Axboe
2025-01-08 22:06 ` [PATCH net-next v10 16/22] io_uring/zcrx: dma-map area for the device David Wei
2025-01-08 22:06 ` [PATCH net-next v10 17/22] io_uring/zcrx: add io_recvzc request David Wei
2025-01-08 22:06 ` [PATCH net-next v10 18/22] io_uring/zcrx: set pp memory provider for an rx queue David Wei
2025-01-16 1:12 ` Jakub Kicinski
2025-01-16 2:27 ` Pavel Begunkov
2025-01-08 22:06 ` [PATCH net-next v10 19/22] io_uring/zcrx: throttle receive requests David Wei
2025-01-08 22:06 ` [PATCH net-next v10 20/22] io_uring/zcrx: add copy fallback David Wei
2025-01-08 22:06 ` [PATCH net-next v10 21/22] net: add documentation for io_uring zcrx David Wei
2025-01-08 22:06 ` [PATCH net-next v10 22/22] io_uring/zcrx: add selftest David Wei
2025-01-09 17:33 ` Stanislav Fomichev
2025-01-09 17:50 ` David Wei
2025-01-13 21:32 ` Pavel Begunkov
2025-01-14 0:11 ` Stanislav Fomichev [this message]
2025-01-16 0:53 ` Jakub Kicinski
2025-01-16 22:58 ` David Wei
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=Z4WrxoAB6zv01GYR@mini-arch \
--to=stfomichev@gmail.com \
--cc=almasrymina@google.com \
--cc=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=dw@davidwei.uk \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=io-uring@vger.kernel.org \
--cc=jdamato@fastly.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pctammela@mojatatu.com \
/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.