linux_dsm_epyc7002/drivers/net
Willem de Bruijn 1f8b977ab3 sock: enable MSG_ZEROCOPY
Prepare the datapath for refcounted ubuf_info. Clone ubuf_info with
skb_zerocopy_clone() wherever needed due to skb split, merge, resize
or clone.

Split skb_orphan_frags into two variants. The split, merge, .. paths
support reference counted zerocopy buffers, so do not do a deep copy.
Add skb_orphan_frags_rx for paths that may loop packets to receive
sockets. That is not allowed, as it may cause unbounded latency.
Deep copy all zerocopy copy buffers, ref-counted or not, in this path.

The exact locations to modify were chosen by exhaustively searching
through all code that might modify skb_frag references and/or the
the SKBTX_DEV_ZEROCOPY tx_flags bit.

The changes err on the safe side, in two ways.

(1) legacy ubuf_info paths virtio and tap are not modified. They keep
    a 1:1 ubuf_info to sk_buff relationship. Calls to skb_orphan_frags
    still call skb_copy_ubufs and thus copy frags in this case.

(2) not all copies deep in the stack are addressed yet. skb_shift,
    skb_split and skb_try_coalesce can be refined to avoid copying.
    These are not in the hot path and this patch is hairy enough as
    is, so that is left for future refinement.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-08-03 21:37:30 -07:00
..
appletalk drivers/net: Fix ptr_ret.cocci warnings. 2017-07-25 12:27:06 -07:00
arcnet arcnet: com20020-pci: constify attribute_group structures. 2017-07-18 12:04:56 -07:00
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-01 10:07:50 -07:00
caif Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
can net: can: janz-ican3: constify attribute_group structures. 2017-07-18 12:04:56 -07:00
cris
dsa net: dsa: bcm_sf2: dst in not an array 2017-08-03 09:30:11 -07:00
ethernet mlxsw: spectrum_router: Don't ignore IPv6 notifications 2017-08-03 15:36:01 -07:00
fddi
fjes
hamradio hamradio: dmascc: avoid -Wformat-overflow warning 2017-07-26 09:32:44 -07:00
hippi
hyperv netvsc: transparent VF management 2017-08-02 16:55:33 -07:00
ieee802154 mrf24j40: Fix en error handling path in 'mrf24j40_probe()' 2017-07-25 13:17:31 +02:00
ipvlan ipvlan: Stop advertising NETIF_F_UFO support. 2017-07-17 09:52:57 -07:00
irda mcs7780: Fix initialization when CONFIG_VMAP_STACK is enabled 2017-07-24 16:24:05 -07:00
phy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-01 10:07:50 -07:00
plip
ppp ppp: Fix a scheduling-while-atomic bug in del_chan 2017-07-31 21:59:01 -07:00
slip
team team: use a larger struct for mac address 2017-07-29 11:25:05 -07:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-07-21 03:38:43 +01:00
vmxnet3 vmxnet3: avoid format strint overflow warning 2017-07-14 09:03:11 -07:00
wan
wimax
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-01 10:07:50 -07:00
xen-netback
dummy.c dummy: Remove references to NETIF_F_UFO. 2017-07-17 09:52:57 -07:00
eql.c
geneve.c geneve/vxlan: offload ports on register/unregister events 2017-07-24 13:52:59 -07:00
gtp.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c macvlan/macvtap: Remove NETIF_F_UFO advertisement. 2017-07-17 09:52:57 -07:00
macvtap.c macvlan/macvtap: Remove NETIF_F_UFO advertisement. 2017-07-17 09:52:57 -07:00
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c ntb_netdev: set the net_device's parent 2017-07-06 11:30:08 -04:00
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c tun/tap: Remove references to NETIF_F_UFO. 2017-07-17 09:52:57 -07:00
tun.c sock: enable MSG_ZEROCOPY 2017-08-03 21:37:30 -07:00
veth.c
virtio_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-01 10:07:50 -07:00
vrf.c vrf: fix bug_on triggered by rx when destroying a vrf 2017-07-06 16:46:07 +01:00
vsockmon.c
vxlan.c geneve/vxlan: offload ports on register/unregister events 2017-07-24 13:52:59 -07:00
xen-netfront.c