Ilan Tayari
eaffadbbb3
gso: Support frag_list splitting with head_frag
...
A driver may use build_skb() for received packets.
These SKBs then have a head_frag.
Since commit d7e8883cfc ("net: make GRO aware of
skb->head_frag"), GRO may build frag_list SKBs out of
head_frag received SKBs.
In such a case, the chained SKBs end up with a head_frag.
Commit 07b26c9454 ("gso: Support partial splitting at
the frag_list pointer") adds partial segmentation of frag_list
SKB chains into individual SKBs.
However, this is not done if the chained SKBs have any
linear part, because the device may not be able to DMA
the private linear buffer.
A chained frag_list SKB with head_frag is wrongfully
detected in this case as having a private linear part
and thus falls back to software GSO, while in fact the
linear part is backed by a DMA page just like any other frag.
This causes low performance when forwarding those packets
that were built with build_skb()
Allow partial segmentation at the frag_list pointer for
chained SKBs with head_frag.
Note that such SKBs can only be created by GRO, when applied
to received packets with head_frag.
Also note that this change only affects the data path that
performs the partial segmentation at frag_list pointer, and
not any of the other more common data paths.
Signed-off-by: Ilan Tayari <ilant@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-04-12 13:53:35 -04:00
..
6lowpan
9p
Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2017-03-03 21:44:35 -08:00
802
8021q
net/8021q: create device with all possible features in wanted_features
2017-03-21 15:26:26 -07:00
appletalk
lib/vsprintf.c: remove %Z support
2017-02-27 18:43:47 -08:00
atm
neighbour: fix nlmsg_pid in notifications
2017-03-22 10:48:49 -07:00
ax25
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
batman-adv
This feature/cleanup patchset includes the following patches:
2017-04-06 14:37:50 -07:00
bluetooth
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
bpf
bpf: introduce BPF_PROG_TEST_RUN command
2017-04-01 12:45:57 -07:00
bridge
net: break include loop netdevice.h, dsa.h, devlink.h
2017-03-28 22:46:04 -07:00
caif
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h>
2017-03-02 08:42:29 +01:00
can
can: initial support for network namespaces
2017-04-04 17:35:58 +02:00
ceph
libceph: force GFP_NOIO for socket allocations
2017-03-23 12:03:36 +01:00
core
gso: Support frag_list splitting with head_frag
2017-04-12 13:53:35 -04:00
dcb
dccp
dccp: fix memory leak during tear-down of unsuccessful connection request
2017-03-13 22:00:42 -07:00
decnet
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-03-15 11:59:10 -07:00
dns_resolver
Merge branch 'WIP.sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-03-03 10:16:38 -08:00
dsa
net: dsa: Factor bottom tag receive functions
2017-04-08 13:49:36 -07:00
ethernet
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next
2017-02-16 21:25:49 -05:00
hsr
net/hsr: use eth_hw_addr_random()
2017-02-21 13:25:22 -05:00
ieee802154
lib/vsprintf.c: remove %Z support
2017-02-27 18:43:47 -08:00
ife
ipv4
net: ipv4: fix multipath RTM_GETROUTE behavior when iif is given
2017-04-07 07:56:14 -07:00
ipv6
net: ipv6: Add support for RTM_DELNETCONF
2017-03-28 22:32:42 -07:00
ipx
irda
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
iucv
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
kcm
kcm: return immediately after copy_from_user() failure
2017-03-24 13:13:53 -07:00
key
xfrm: remove unused struct xfrm_mgr::id
2017-03-24 07:03:12 +01:00
l2tp
l2tp: define parameters of l2tp_tunnel_find*() as "const"
2017-04-12 10:44:02 -04:00
l3mdev
lapb
llc
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
mac80211
mac80211: unconditionally start new netdev queues with iTXQ support
2017-03-29 14:20:40 +02:00
mac802154
drivers: add explicit interrupt.h includes
2017-03-30 11:05:34 -07:00
mpls
net: mpls: Increase max number of labels for lwt encap
2017-04-01 20:21:44 -07:00
ncsi
netfilter
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-04-06 08:24:51 -07:00
netlabel
netlink
netlink/diag: report flags for netlink sockets
2017-04-05 07:13:56 -07:00
netrom
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
nfc
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
openvswitch
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-04-06 08:24:51 -07:00
packet
net/packet: fix overflow in check for tp_reserve
2017-03-30 11:04:00 -07:00
phonet
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
psample
qrtr
soc: qcom: smd: Transition client drivers from smd to rpmsg
2017-03-28 17:58:07 -07:00
rds
rds: tcp: canonical connection order for all paths with index > 0
2017-04-02 19:41:00 -07:00
rfkill
rose
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
rxrpc
rxrpc: Trace client call connection
2017-04-06 11:10:41 +01:00
sched
net: sched: choke: remove some dead code
2017-04-05 06:53:42 -07:00
sctp
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-04-06 08:24:51 -07:00
smc
net/smc: do not use IB_SEND_INLINE together with mapped data
2017-04-11 23:01:14 -04:00
strparser
strparser: destroy workqueue on module exit
2017-03-03 20:43:26 -08:00
sunrpc
The restriction of NFSv4 to TCP went overboard and also broke the
2017-04-01 10:43:37 -07:00
switchdev
tipc
tipc: allow rdm/dgram socketpairs
2017-03-29 14:10:11 -07:00
unix
af_unix: Use designated initializers
2017-04-06 12:43:04 -07:00
vmw_vsock
VSOCK: remove unnecessary ternary operator on return value
2017-03-30 11:07:08 -07:00
wimax
wireless
cfg80211: check rdev resume callback only for registered wiphy
2017-03-29 09:11:29 +02:00
x25
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
xfrm
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next
2017-04-11 10:10:30 -04:00
compat.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2017-02-22 10:15:09 -08:00
Kconfig
bpf: make jited programs visible in traces
2017-02-17 13:40:05 -05:00
Makefile
bpf: introduce BPF_PROG_TEST_RUN command
2017-04-01 12:45:57 -07:00
socket.c
New kernel function to get IP overhead on a socket.
2017-04-06 13:43:31 -07:00
sysctl_net.c