[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210331122602.6000-1-alobakin@pm.me>
Date: Wed, 31 Mar 2021 12:26:14 +0000
From: Alexander Lobakin <alobakin@...me>
To: Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>
Cc: Xuan Zhuo <xuanzhuo@...ux.alibaba.com>,
Björn Töpel <bjorn@...nel.org>,
Magnus Karlsson <magnus.karlsson@...el.com>,
Jonathan Lemon <jonathan.lemon@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Jesper Dangaard Brouer <hawk@...nel.org>,
John Fastabend <john.fastabend@...il.com>,
Andrii Nakryiko <andrii@...nel.org>,
Martin KaFai Lau <kafai@...com>,
Song Liu <songliubraving@...com>, Yonghong Song <yhs@...com>,
KP Singh <kpsingh@...nel.org>,
Alexander Lobakin <alobakin@...me>, netdev@...r.kernel.org,
bpf@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH v2 bpf-next 0/2] xsk: introduce generic almost-zerocopy xmit
This series is based on the exceptional generic zerocopy xmit logics
initially introduced by Xuan Zhuo. It extends it the way that it
could cover all the sane drivers, not only the ones that are capable
of xmitting skbs with no linear space.
The first patch is a random while-we-are-here improvement over
full-copy path, and the second is the main course. See the individual
commit messages for the details.
The original (full-zerocopy) path is still here and still generally
faster, but for now it seems like virtio_net will remain the only
user of it, at least for a considerable period of time.
>From v1 [0]:
- don't add a whole SMP_CACHE_BYTES because of only two bytes
(NET_IP_ALIGN);
- switch to zerocopy if the frame is 129 bytes or longer, not 128.
128 still fit to kmalloc-512, while a zerocopy skb is always
kmalloc-1024 -> can potentially be slower on this frame size.
[0] https://lore.kernel.org/netdev/20210330231528.546284-1-alobakin@pm.me
Alexander Lobakin (2):
xsk: speed-up generic full-copy xmit
xsk: introduce generic almost-zerocopy xmit
net/xdp/xsk.c | 32 ++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)
--
Well, this is untested. I currently don't have an access to my setup
and is bound by moving to another country, but as I don't know for
sure at the moment when I'll get back to work on the kernel next time,
I found it worthy to publish this now -- if any further changes will
be required when I already will be out-of-sight, maybe someone could
carry on to make a another revision and so on (I'm still here for any
questions, comments, reviews and improvements till the end of this
week).
But this *should* work with all the sane drivers. If a particular
one won't handle this, it's likely ill. Any tests are highly
appreciated. Thanks!
--
2.31.1
Powered by blists - more mailing lists