From: Xuan Zhuo
Date: Tue, 20 Aug 2024 15:19:13 +0800
> leads to regression on VM with the sysctl value of:
Where's the beginning of the sentence? You mean, "This overflow leads"?
>
> - net.core.high_order_alloc_disable=1
This `- ` can be removed - at least some syntax highlighters color it i
From: Xuan Zhuo
Date: Thu, 11 Apr 2024 10:51:22 +0800
> The virtio-net big mode sq will use these APIs to map the pages.
>
> dma_addr_t virtqueue_dma_map_page_attrs(struct virtqueue *_vq, struct page
> *page,
>size_t offset, size_t size,
>
iewed-by from Eric.
[0] https://lore.kernel.org/netdev/20210418114200.5839-1-aloba...@pm.me
Fixes: 38ec4944b593 ("gro: ensure frag0 meets IP header alignment")
Reviewed-by: Eric Dumazet
Signed-off-by: Alexander Lobakin
---
net/core/dev.c | 8
1 file changed, 4 insertions(+
From: Eric Dumazet
Date: Mon, 19 Apr 2021 13:05:16 +0200
> On Sun, Apr 18, 2021 at 1:43 PM Alexander Lobakin wrote:
> >
> > Commit 38ec4944b593 ("gro: ensure frag0 meets IP header alignment")
> > did the right thing, but missed the fact that napi_g
2021 16:13:12 +0200, Magnus Karlsson
> > wrote:
> > > On Wed, Mar 31, 2021 at 2:27 PM Alexander Lobakin wrote:
> > > >
> > > > This series is based on the exceptional generic zerocopy xmit logics
> > > > initially introduced by Xuan Zhuo. It extend
st GRO for napi_gro_frags() that became very slow
after the mentioned commit, and preserves the introduced check to
avoid silent unaligned accesses.
Fixes: 38ec4944b593 ("gro: ensure frag0 meets IP header alignment")
Signed-off-by: Alexander Lobakin
---
net/core/dev.c | 8
1 file changed
e found in lots
of drivers and places of core code and it is believed that 256
bytes are enough to store any headers of any frame.
Cc: Xuan Zhuo
Signed-off-by: Alexander Lobakin
---
net/xdp/xsk.c | 25 +
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/net
()) with
no loss.
Also align memcpy()'s len to sizeof(long) to improve its performance.
Signed-off-by: Alexander Lobakin
---
net/xdp/xsk.c | 7 +--
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index a71ed664da0a..41f8f21b3348 100644
--- a/net/xdp/
e size.
[0] https://lore.kernel.org/netdev/20210330231528.546284-1-aloba...@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(-)
--
From: Magnus Karlsson
Date: Wed, 31 Mar 2021 11:44:45 +0200
> On Wed, Mar 31, 2021 at 1:17 AM Alexander Lobakin wrote:
> >
> > This series is based on the exceptional generic zerocopy xmit logics
> > initially introduced by Xuan Zhuo. It extends it the way that it
> &g
e found in lots
of drivers and places of core code and it is believed that 256
bytes are enough to store any headers of any frame.
Cc: Xuan Zhuo
Signed-off-by: Alexander Lobakin
---
net/xdp/xsk.c | 26 ++
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git
()) with
no loss.
Also align memcpy()'s len to sizeof(long) to improve its performance.
Signed-off-by: Alexander Lobakin
---
net/xdp/xsk.c | 7 +--
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index a71ed664da0a..41f8f21b3348 100644
--- a/net/xdp/
.
Alexander Lobakin (2):
xsk: speed-up generic full-copy xmit
xsk: introduce generic almost-zerocopy xmit
net/xdp/xsk.c | 33 +++--
1 file changed, 23 insertions(+), 10 deletions(-)
--
Well, this is untested. I currently don't have an access to my setup
a
satisfied with
the results, especially the new array-based version.
Haven't had a chance to test this particular set yet, but still.
Reviewed-by: Alexander Lobakin
Great work, thank you all guys!
> ---
> include/net/page_pool.h | 2 +-
> net/core/page_pool.c| 82
From: Ilias Apalodimas
Date: Wed, 24 Mar 2021 09:50:38 +0200
> Hi Alexander,
Hi!
> On Tue, Mar 23, 2021 at 08:03:46PM +, Alexander Lobakin wrote:
> > From: Ilias Apalodimas
> > Date: Tue, 23 Mar 2021 19:01:52 +0200
> >
> > > On Tue, Mar 23, 2021 at 04
From: Ilias Apalodimas
Date: Tue, 23 Mar 2021 19:01:52 +0200
> On Tue, Mar 23, 2021 at 04:55:31PM +0000, Alexander Lobakin wrote:
> > > > > > >
>
> [...]
>
> > > > > >
> > > > > > Thanks for the testing!
> > > > &
as wrote:
> > >
> > > > On Tue, Mar 23, 2021 at 03:41:23PM +, Alexander Lobakin wrote:
> > > > > From: Matteo Croce
> > > > > Date: Mon, 22 Mar 2021 18:02:55 +0100
> > > > >
> > > > > > From: Matteo C
From: Jesper Dangaard Brouer
Date: Tue, 23 Mar 2021 10:01:38 +0100
> On Mon, 22 Mar 2021 18:30:55 +
> Alexander Lobakin wrote:
>
> > As per disscussion in Page Pool bulk allocator thread [0],
> > there are two functions in Page Pool core code that are marked as
>
From: Matteo Croce
Date: Mon, 22 Mar 2021 18:02:55 +0100
> From: Matteo Croce
>
> This series enables recycling of the buffers allocated with the page_pool API.
> The first two patches are just prerequisite to save space in a struct and
> avoid recycling pages allocated with other API.
> Patch 2
rmful
for performance.
This simple removal of 'noinline' keywords bumps the throughput
on XDP_PASS + napi_build_skb() + napi_gro_receive() on 25+ Mbps
for 1G embedded NIC.
[0] https://lore.kernel.org/netdev/20210317222506.1266004-1-aloba...@pm.me
Signed-off-by: Alexander Lobakin
---
net/c
A is y or m.
This is safe since no objects inside this folder can be built without
DSA core, as well as when CONFIG_NET_DSA=m, no objects can be
built-in.
Signed-off-by: Alexander Lobakin
---
drivers/net/Makefile| 2 +-
drivers/net/dsa/Kconfig | 17 -
net/dsa/Kconfig
From: Paolo Abeni
Date: Fri, 19 Mar 2021 13:35:41 +0100
> On Fri, 2021-03-19 at 11:43 +0000, Alexander Lobakin wrote:
> > I'm not sure if you did it on purpose in commit aaa5d90b395a7
> > ("net: use indirect call wrappers at GRO network layer").
> > Was that
From: Alexander Lobakin
Date: Fri, 19 Mar 2021 11:13:25 +
> From: Paolo Abeni
> Date: Fri, 19 Mar 2021 11:53:42 +0100
>
> > Hello,
>
> Hi!
>
> > On Thu, 2021-03-18 at 18:42 +, Alexander Lobakin wrote:
> > > call_gro_receive() is used to limit GRO
From: Paolo Abeni
Date: Fri, 19 Mar 2021 11:53:42 +0100
> Hello,
Hi!
> On Thu, 2021-03-18 at 18:42 +, Alexander Lobakin wrote:
> > call_gro_receive() is used to limit GRO recursion, but it works only
> > with callback pointers.
> > There's a combine
(when hardware stripping is
off or not available).
Signed-off-by: Alexander Lobakin
---
net/8021q/vlan_core.c | 10 --
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
index 78ec2e1b14d1..59bc13b5f14f 100644
--- a/net/8021q
.) GRO receive code to reduce the
penalty when processing the inner headers.
Signed-off-by: Alexander Lobakin
---
net/ethernet/eth.c | 11 ---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c
index e01cf766d2c5..933b427122be 100644
--- a
d to avoid retpoline overhead when IP header lies behind another
offloaded proto.
Signed-off-by: Alexander Lobakin
---
include/net/gro.h | 8
1 file changed, 8 insertions(+)
diff --git a/include/net/gro.h b/include/net/gro.h
index 27c38b36df16..01edaf3fdda0 100644
--- a/include/net/gro.h
+++
00ab2275f ("net/core: move gro function declarations to separate
header ")
Signed-off-by: Alexander Lobakin
---
include/net/gro.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/include/net/gro.h b/include/net/gro.h
index 8a6eb5303cc4..27c38b36df16 100644
--- a/include/net/gro.
(GENEVE, NvGRE, VxLAN)
for retpolined kernels.
Alexander Lobakin (4):
gro: make net/gro.h self-contained
gro: add combined call_gro_receive() + INDIRECT_CALL_INET() helper
vlan/8021q: avoid retpoline overhead on GRO
ethernet: avoid retpoline overhead on TEB (GENEVE, NvGRE, VxLAN) GRO
From: Cong Wang
Date: Tue, 16 Mar 2021 19:22:14 -0700
Hi,
> From: Cong Wang
>
> Currently sockmap calls into each protocol to update the struct
> proto and replace it. This certainly won't work when the protocol
> is implemented as a module, for example, AF_UNIX.
>
> Introduce a new ops sk->sk_
From: Jesper Dangaard Brouer
Date: Wed, 17 Mar 2021 18:19:43 +0100
> On Wed, 17 Mar 2021 16:52:32 +
> Alexander Lobakin wrote:
>
> > From: Jesper Dangaard Brouer
> > Date: Wed, 17 Mar 2021 17:38:44 +0100
> >
> > > On Wed, 17 Mar 2021 16:31:07
From: Jesper Dangaard Brouer
Date: Wed, 17 Mar 2021 17:38:44 +0100
> On Wed, 17 Mar 2021 16:31:07 +
> Alexander Lobakin wrote:
>
> > From: Mel Gorman
> > Date: Fri, 12 Mar 2021 15:43:24 +
> >
> > Hi there,
> >
> > > This series is base
From: Mel Gorman
Date: Fri, 12 Mar 2021 15:43:24 +
Hi there,
> This series is based on top of Matthew Wilcox's series "Rationalise
> __alloc_pages wrapper" and does not apply to 5.12-rc2. If you want to
> test and are not using Andrew's tree as a baseline, I suggest using the
> following git
From: Jakub Kicinski
Date: Mon, 15 Mar 2021 12:00:39 -0700
> On Mon, 15 Mar 2021 09:38:57 +0000 Alexander Lobakin wrote:
> > From: Vladimir Oltean
> > Date: Sun, 14 Mar 2021 23:04:53 +0200
> >
> > > On Sun, Mar 14, 2021 at 11:11:32AM +, Alexander Lobakin wro
From: Vladimir Oltean
Date: Sun, 14 Mar 2021 23:04:53 +0200
> On Sun, Mar 14, 2021 at 11:11:32AM +0000, Alexander Lobakin wrote:
> > Caught by the text editor. Fix it separately from the actual changes.
> >
> > Signed-off-by: Alexander Lobakin
> > ---
> >
Dissector pass on
every packet (e.g. with RPS or driver that uses eth_get_headlen())
on 20 Mbps per flow/core.
Signed-off-by: Alexander Lobakin
---
include/linux/skbuff.h | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 46c
Caught by the text editor. Fix it separately from the actual changes.
Signed-off-by: Alexander Lobakin
---
include/linux/etherdevice.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h
index 2e5debc0373c..bcb2f81baafb
It's used only for flow dissection, which now takes constant data
pointers.
Signed-off-by: Alexander Lobakin
---
include/linux/etherdevice.h | 2 +-
net/ethernet/eth.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/etherdevice.h b/include/
Flow Dissector code never modifies the input buffer, neither skb nor
raw data.
Make 'data' argument const for all of the Flow dissector's functions.
Signed-off-by: Alexander Lobakin
---
include/linux/skbuff.h | 15 ++---
include/net/flow_dissector.h |
The function never modifies the input buffer, so 'data' argument
can be marked as const.
This implies one harmless cast-away.
Signed-off-by: Alexander Lobakin
---
include/linux/skbuff.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/linux/skbuff.h
BPF Flow dissection programs are read-only and don't touch input
buffers.
Mark 'data' and 'data_end' in struct bpf_flow_dissector as const
in preparation for global input constifying.
Signed-off-by: Alexander Lobakin
---
include/net/flow_dissector.h | 4 ++--
1 file ch
series applies with no conflicts, and
then on Patchwork it didn't;
- no other changes.
[0] https://lore.kernel.org/netdev/20210312194538.337504-1-aloba...@pm.me
[1] https://lore.kernel.org/netdev/20210313113645.5949-1-aloba...@pm.me
Alexander Lobakin (6):
flow_dissector: constify bpf_flow_
From: David Miller
Date: Sat, 13 Mar 2021 18:10:00 -0800 (PST)
> None of these apply to net-next as per the patchwork automated checks. Any
> idea why?
No unfortunately. That'why I sent a follow-up mail. All of them
successfully apply to pure net-next on my machine.
Can it be a Git version con
'hash' stores not the flow hash, but the index of the GRO bucket
corresponding to it.
Change its name to 'bucket' to avoid confusion while reading lines
like '__set_bit(hash, &napi->gro_bitmask)'.
Signed-off-by: Alexander Lobakin
---
net/core/dev.c
ket list.
Signed-off-by: Alexander Lobakin
---
net/core/dev.c | 12
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index 2bfdd528c7c3..1317e6b6758a 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5858,15 +5858,13 @@ void napi
/netdev/20210312162127.239795-1-aloba...@pm.me
Alexander Lobakin (3):
gro: simplify gro_list_prepare()
gro: consistentify napi->gro_hash[x] access in dev_gro_receive()
gro: give 'hash' variable in dev_gro_receive() a less confusing name
net/co
ine branches.
Signed-off-by: Alexander Lobakin
---
net/core/dev.c | 22 +++---
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index 1317e6b6758a..b635467087f3 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5953,7 +5953,7 @@
From: Alexander Lobakin
Date: Sat, 13 Mar 2021 11:37:03 +
> This little number makes all of the flow dissection functions take
> raw input data pointer as const (1-5) and shuffles the branches in
> __skb_header_pointer() according to their hit probability.
>
> The result is +2
Dissector pass on
every packet (e.g. with RPS or driver that uses eth_get_headlen())
on 20 Mbps per flow/core.
Signed-off-by: Alexander Lobakin
---
include/linux/skbuff.h | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 46c
It's used only for flow dissection, which now takes constant data
pointers.
Signed-off-by: Alexander Lobakin
---
include/linux/etherdevice.h | 2 +-
net/ethernet/eth.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/etherdevice.h b/include/
Caught by the text editor. Fix it separately from the actual changes.
Signed-off-by: Alexander Lobakin
---
include/linux/etherdevice.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h
index 2e5debc0373c..bcb2f81baafb
Flow Dissector code never modifies the input buffer, neither skb nor
raw data.
Make @data argument const for all of the Flow dissector's functions.
Signed-off-by: Alexander Lobakin
---
include/linux/skbuff.h | 15 ++---
include/net/flow_dissector.h | 2 +-
net
The function never modifies the input buffer, so @data argument
can be marked as const.
This implies one harmless cast-away.
Signed-off-by: Alexander Lobakin
---
include/linux/skbuff.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/linux/skbuff.h b/include
BPF Flow dissection programs are read-only and don't touch input
buffers.
Mark @data and @data_end in struct bpf_flow_dissector as const in
preparation for global input constifying.
Signed-off-by: Alexander Lobakin
---
include/net/flow_dissector.h | 4 ++--
1 file changed, 2 insertions(
https://lore.kernel.org/netdev/20210312194538.337504-1-aloba...@pm.me
Alexander Lobakin (6):
flow_dissector: constify bpf_flow_dissector's data pointers
skbuff: make __skb_header_pointer()'s data argument const
flow_dissector: constify raw input @data argument
linux/etherdevice.h
.
Fixes: 5dec597e5cd0 ("flow_dissector: extract more ICMP information")
Signed-off-by: Alexander Lobakin
---
net/core/flow_dissector.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
index 2ef2224b3bff..a96a4f5de
It's used only for flow dissection, which now takes constant data
pointers.
Signed-off-by: Alexander Lobakin
---
include/linux/etherdevice.h | 2 +-
net/ethernet/eth.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/etherdevice.h b/include/
Dissector pass on
every packet (e.g. with RPS or driver that uses eth_get_headlen())
on 20 Mbps per flow/core.
Signed-off-by: Alexander Lobakin
---
include/linux/skbuff.h | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 787
Caught by the text editor. Fix it separately from the actual changes.
Signed-off-by: Alexander Lobakin
---
include/linux/etherdevice.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h
index 2e5debc0373c..bcb2f81baafb
Flow Dissector code never modifies the input buffer, neither skb nor
raw data.
Make @data argument const for all of the Flow dissector's functions.
Signed-off-by: Alexander Lobakin
---
include/linux/skbuff.h | 15 ++---
include/net/flow_dissector.h | 2 +-
net
The function never modifies the input buffer, so @data argument
can be marked as const.
This implies one harmless cast-away.
Signed-off-by: Alexander Lobakin
---
include/linux/skbuff.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/linux/skbuff.h b/include
BPF Flow dissection programs are read-only and don't touch input
buffers.
Mark @data and @data_end in struct bpf_flow_dissector as const in
preparation for global input constifying.
Signed-off-by: Alexander Lobakin
---
include/net/flow_dissector.h | 4 ++--
1 file changed, 2 insertions(
software hashing), drivers that
use eth_get_headlen() on their Rx path and so on.
Alexander Lobakin (6):
flow_dissector: constify bpf_flow_dissector's data pointers
skbuff: make __skb_header_pointer()'s data argument const
flow_dissector: constify raw input @data argument
linux/eth
From: Eric Dumazet
Date: Fri, 12 Mar 2021 17:47:04 +0100
> On Fri, Mar 12, 2021 at 5:22 PM Alexander Lobakin wrote:
> >
> > GRO bucket index doesn't change through the entire function.
> > Store a pointer to the corresponding bucket on stack once and use
> > i
From: Eric Dumazet
Date: Fri, 12 Mar 2021 17:33:53 +0100
> On Fri, Mar 12, 2021 at 5:22 PM Alexander Lobakin wrote:
> >
> > Most of the functions that "convert" hash value into an index
> > (when RPS is configured / XPS is not configured / etc.) set
> > re
'hash' stores not the flow hash, but the index of the GRO bucket
corresponding to it.
Change its name to 'bucket' to avoid confusion while reading lines
like '__set_bit(hash, &napi->gro_bitmask)'.
Signed-off-by: Alexander Lobakin
---
net/core/dev.c | 18
flow dispersion between GRO hash buckets.
Signed-off-by: Alexander Lobakin
---
net/core/dev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index 65d9e7d9d1e8..bd7c9ba54623 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5952,
ket list.
Signed-off-by: Alexander Lobakin
---
net/core/dev.c | 12
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index ee124aecb8a2..65d9e7d9d1e8 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5858,15 +5858,13 @@ void napi
GRO bucket index doesn't change through the entire function.
Store a pointer to the corresponding bucket on stack once and use
it later instead of dereferencing again and again.
Signed-off-by: Alexander Lobakin
---
net/core/dev.c | 9 +
1 file changed, 5 insertions(+), 4 dele
function and a number of Rx flows per single NAPI instance. I got
something like +10-15 Mbps on 4-8 flows NATing.
Alexander Lobakin (4):
gro: give 'hash' variable in dev_gro_receive() a less confusing name
gro: don't dereference napi->gro_hash[x] multiple times in
dev_g
0 fs/read_write.c:518
> vfs_write+0x791/0xa30 fs/read_write.c:605
> ksys_write+0x12d/0x250 fs/read_write.c:658
> do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
> entry_SYSCALL_64_after_hwframe+0x44/0xa9
>
> Reported-by: syzbot+80dccaee7c6630fa9...@syzkaller.appspotmail.com
&
From: Pavel Skripkin
Date: Sun, 28 Feb 2021 22:28:13 +0300
> Hi, thanks for reply!
>
> > From: Pavel Skripkin
> > Date: Sat, 27 Feb 2021 20:51:14 +0300
> >
> > Hi,
> >
> > > syzbot found WARNING in __alloc_pages_nodemask()[1] when order >=
> > > MAX_ORDER.
> > > It was caused by __netdev_alloc_s
From: Jakub Kicinski
Date: Sun, 28 Feb 2021 10:55:52 -0800
> On Sun, 28 Feb 2021 18:14:46 +0000 Alexander Lobakin wrote:
> > > [1] WARNING in __alloc_pages_nodemask+0x5f8/0x730 mm/page_alloc.c:5014
> > > Call Trace:
> > > __alloc_pages include/linux/gfp.h:511 [inl
From: Pavel Skripkin
Date: Sat, 27 Feb 2021 20:51:14 +0300
Hi,
> syzbot found WARNING in __alloc_pages_nodemask()[1] when order >= MAX_ORDER.
> It was caused by __netdev_alloc_skb(), which doesn't check len value after
> adding NET_SKB_PAD.
> Order will be >= MAX_ORDER and passed to __alloc_pag
From: Pavel Skripkin
Date: Fri, 26 Feb 2021 22:11:06 +0300
Hi,
> syzbot found WARNING in __alloc_pages_nodemask()[1] when order >= MAX_ORDER.
> It was caused by __netdev_alloc_skb(), which doesn't check len value after
> adding NET_SKB_PAD.
> Order will be >= MAX_ORDER and passed to __alloc_pag
ear ]
Signed-off-by: Alexander Lobakin
Acked-by: Magnus Karlsson
Acked-by: John Fastabend
---
net/xdp/xsk.c | 120 --
1 file changed, 96 insertions(+), 24 deletions(-)
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index 143979ea4165..a71ed664da0a 100
but in fact need it (not so rare case).
Fixes: 35fcde7f8deb ("xsk: support for Tx")
Signed-off-by: Alexander Lobakin
Acked-by: Magnus Karlsson
Acked-by: John Fastabend
---
net/xdp/xsk.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/net/xdp/xs
From: Xuan Zhuo
Virtio net supports the case where the skb linear space is empty, so add
priv_flags.
Signed-off-by: Xuan Zhuo
Acked-by: Michael S. Tsirkin
Signed-off-by: Alexander Lobakin
Acked-by: John Fastabend
---
drivers/net/virtio_net.c | 3 ++-
1 file changed, 2 insertions(+), 1
whether the network card
supports this feature.
Signed-off-by: Xuan Zhuo
Suggested-by: Alexander Lobakin
[ alobakin: give a new flag more detailed description ]
Signed-off-by: Alexander Lobakin
Acked-by: John Fastabend
---
include/linux/netdevice.h | 4
1 file changed, 4 insertions(+)
diff
This is harmless for now, but can be fatal for future refactors.
Fixes: 871b642adebe3 ("netdev: introduce ndo_set_rx_headroom")
Signed-off-by: Alexander Lobakin
Acked-by: John Fastabend
---
include/linux/netdevice.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/linux/n
1-aloba...@pm.me
[4] https://lore.kernel.org/netdev/20210217120003.7938-1-aloba...@pm.me
Alexander Lobakin (2):
netdevice: add missing IFF_PHONY_HEADROOM self-definition
xsk: respect device's headroom and tailroom on generic xmit path
Xuan Zhuo (3):
net: add priv_flags for allow tx skb without
ear ]
Signed-off-by: Alexander Lobakin
Acked-by: Magnus Karlsson
---
net/xdp/xsk.c | 120 --
1 file changed, 96 insertions(+), 24 deletions(-)
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index 143979ea4165..a71ed664da0a 100644
--- a/net/xdp/xsk.c
+++ b/
but in fact need it (not so rare case).
Fixes: 35fcde7f8deb ("xsk: support for Tx")
Signed-off-by: Alexander Lobakin
Acked-by: Magnus Karlsson
---
net/xdp/xsk.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index 4faabd1ec
From: Xuan Zhuo
Virtio net supports the case where the skb linear space is empty, so add
priv_flags.
Signed-off-by: Xuan Zhuo
Acked-by: Michael S. Tsirkin
Signed-off-by: Alexander Lobakin
---
drivers/net/virtio_net.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a
We almost ran out of unsigned int bitwidth. Define priv flags and
check for potential overflow in the fashion of netdev_features_t.
Defined this way, priv_flags can be easily expanded later with
just changing its typedef.
Signed-off-by: Alexander Lobakin
Reported-by: kernel test robot
whether the network card
supports this feature.
Signed-off-by: Xuan Zhuo
Suggested-by: Alexander Lobakin
[ alobakin: give a new flag more detailed description ]
Signed-off-by: Alexander Lobakin
---
include/linux/netdevice.h | 4
1 file changed, 4 insertions(+)
diff --git a/include/linux
This is harmless for now, but comes fatal for the subsequent patch.
Fixes: 871b642adebe3 ("netdev: introduce ndo_set_rx_headroom")
Signed-off-by: Alexander Lobakin
---
include/linux/netdevice.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/linux/netdevice.h b/inc
netdev/cover.1611236588.git.xuanz...@linux.alibaba.com
[1] https://lore.kernel.org/netdev/20210216113740.62041-1-aloba...@pm.me
[2] https://lore.kernel.org/netdev/2021021614.5861-1-aloba...@pm.me
[3] https://lore.kernel.org/netdev/20210216172640.374487-1-aloba...@pm.me
Alexander Lobakin (3):
ear ]
Signed-off-by: Alexander Lobakin
Acked-by: Magnus Karlsson
---
net/xdp/xsk.c | 120 --
1 file changed, 96 insertions(+), 24 deletions(-)
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index 143979ea4165..a71ed664da0a 100644
--- a/net/xdp/xsk.c
+++ b/
but in fact need it (not so rare case).
Fixes: 35fcde7f8deb ("xsk: support for Tx")
Signed-off-by: Alexander Lobakin
Acked-by: Magnus Karlsson
---
net/xdp/xsk.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index 4faabd1ec
From: Xuan Zhuo
Virtio net supports the case where the skb linear space is empty, so add
priv_flags.
Signed-off-by: Xuan Zhuo
Acked-by: Michael S. Tsirkin
Signed-off-by: Alexander Lobakin
---
drivers/net/virtio_net.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a
whether the network card
supports this feature.
Signed-off-by: Xuan Zhuo
Suggested-by: Alexander Lobakin
[ alobakin: give a new flag more detailed description ]
Signed-off-by: Alexander Lobakin
---
include/linux/netdevice.h | 4
1 file changed, 4 insertions(+)
diff --git a/include/linux
We almost ran out of unsigned int bitwidth. Define priv flags and
check for potential overflow in the fashion of netdev_features_t.
Defined this way, priv_flags can be easily expanded later with
just changing its typedef.
Signed-off-by: Alexander Lobakin
Reported-by: kernel test robot
This is harmless for now, but comes fatal for the subsequent patch.
Fixes: 871b642adebe3 ("netdev: introduce ndo_set_rx_headroom")
Signed-off-by: Alexander Lobakin
---
include/linux/netdevice.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/linux/netdevice.h b/inc
041-1-aloba...@pm.me
[2] https://lore.kernel.org/netdev/2021021614.5861-1-aloba...@pm.me
Alexander Lobakin (3):
netdev_priv_flags: add missing IFF_PHONY_HEADROOM self-definition
netdevice: check for net_device::priv_flags bitfield overflow
xsk: respect device's headroom and tailroom
From: Alexander Lobakin
Date: Tue, 16 Feb 2021 14:35:02 +
> From: Xuan Zhuo
>
> This patch is used to construct skb based on page to save memory copy
> overhead.
>
> This function is implemented based on IFF_TX_SKB_NO_LINEAR. Only the
> network car
ear ]
Signed-off-by: Alexander Lobakin
Acked-by: Magnus Karlsson
---
net/xdp/xsk.c | 119 --
1 file changed, 95 insertions(+), 24 deletions(-)
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index 143979ea4165..ff7bd06e1241 100644
--- a/net/xdp/xsk.c
+++ b/
but in fact need it (not so rare case).
Fixes: 35fcde7f8deb ("xsk: support for Tx")
Signed-off-by: Alexander Lobakin
Acked-by: Magnus Karlsson
---
net/xdp/xsk.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index 4faabd1ec
From: Xuan Zhuo
Virtio net supports the case where the skb linear space is empty, so add
priv_flags.
Signed-off-by: Xuan Zhuo
Acked-by: Michael S. Tsirkin
Signed-off-by: Alexander Lobakin
---
drivers/net/virtio_net.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a
whether the network card
supports this feature.
Signed-off-by: Xuan Zhuo
Suggested-by: Alexander Lobakin
[ alobakin: give a new flag more detailed description ]
Signed-off-by: Alexander Lobakin
---
include/linux/netdevice.h | 4
1 file changed, 4 insertions(+)
diff --git a/include/linux
1 - 100 of 434 matches
Mail list logo