OpenCloudOS-Kernel/drivers/net
Zoltan Kiss bdab82759b xen-netback: Grant copy the header instead of map and memcpy
An old inefficiency of the TX path that we are grant mapping the first slot,
and then copy the header part to the linear area. Instead, doing a grant copy
for that header straight on is more reasonable. Especially because there are
ongoing efforts to make Xen avoiding TLB flush after unmap when the page were
not touched in Dom0. In the original way the memcpy ruined that.
The key changes:
- the vif has a tx_copy_ops array again
- xenvif_tx_build_gops sets up the grant copy operations
- we don't have to figure out whether the header and first frag are on the same
  grant mapped page or not
Note, we only grant copy PKT_PROT_LEN bytes from the first slot, the rest (if
any) will be on the first frag, which is grant mapped. If the first slot is
smaller than PKT_PROT_LEN, then we grant copy that, and later __pskb_pull_tail
will pull more from the frags (if any)

Signed-off-by: Zoltan Kiss <zoltan.kiss@citrix.com>
Reviewed-by: Paul Durrant <paul.durrant@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-04-03 14:22:40 -04:00
..
appletalk
arcnet drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
bonding netpoll: Remove gfp parameter from __netpoll_setup 2014-03-29 17:58:37 -04:00
caif caif: delete unnecessary field initialization 2014-02-17 00:29:23 -05:00
can linux-can-fixes-for-3.15-20140401 2014-04-01 17:49:50 -04:00
cris
dsa
ethernet net: qlcnic: include irq.h for irq definitions 2014-04-03 14:04:36 -04:00
fddi drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
hamradio yam: replace del_timer by del_timer_sync 2014-03-27 15:28:06 -04:00
hippi drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
hyperv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-14 22:31:55 -04:00
ieee802154 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-31 16:56:43 -04:00
irda irtty-sir.c: Do not set_termios() on irtty_close() 2014-02-17 16:27:51 -05:00
phy net: ptp: move PTP classifier in its own file 2014-04-01 16:43:18 -04:00
plip net: plip: slight optimization of addr compare 2013-12-31 16:48:33 -05:00
ppp net: ppp: use sk_unattached_filter api 2014-03-31 00:45:09 -04:00
slip
team netpoll: Remove gfp parameter from __netpoll_setup 2014-03-29 17:58:37 -04:00
usb qmi_wwan/cdc_ether: move Novatel E371 (1410:9011) to qmi_wwan 2014-03-31 16:06:11 -04:00
vmxnet3 vmxnet3: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:23 -07:00
wan wan: dlci: Remove unused netdev_priv pointer 2014-02-09 18:40:56 -08:00
wimax wimax/i2400m: remove open-coded skb_cow_head. 2014-03-29 17:49:47 -04:00
wireless Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2014-03-31 15:08:51 -07:00
xen-netback xen-netback: Grant copy the header instead of map and memcpy 2014-04-03 14:22:40 -04:00
Kconfig netpoll: Remove dead packet receive code (CONFIG_NETPOLL_TRAP) 2014-03-17 15:48:12 -04:00
LICENSE.SRC
Makefile
Space.c drivers: net: Include new header file in sbni.c 2013-12-19 18:51:20 -05:00
dummy.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
eql.c eql: use __dev_get_by_name instead of dev_get_by_name to find interface 2014-01-14 18:50:46 -08:00
ifb.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-29 18:48:54 -04:00
loopback.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
macvlan.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
macvtap.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
mdio.c mdio: unused ethtool functions 2013-12-26 13:29:35 -05:00
mii.c
netconsole.c
nlmon.c net: nlmon: flag nlmon devs with LLTX/SG 2014-03-28 16:49:47 -04:00
ntb_netdev.c
rionet.c
sb1000.c
sungem_phy.c
tun.c drivers/net: Use RCU_INIT_POINTER(x, NULL) in tun.c 2014-03-27 00:18:09 -04:00
veth.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-29 18:48:54 -04:00
virtio_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-04-02 20:53:45 -07:00
vxlan.c net: vxlan: fix crash when interface is created with no group 2014-04-03 11:16:47 -04:00
xen-netfront.c xen-netfront: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:23 -07:00