linux/drivers
LEROY Christophe d43a396af0 net: fs_enet: Add NAPI TX
When using a MPC8xx as a router, 'perf' shows a significant time spent in
fs_enet_interrupt() and fs_enet_start_xmit().
'perf annotate' shows that the time spent in fs_enet_start_xmit is indeed spent
between spin_unlock_irqrestore() and the following instruction, hence in
interrupt handling. This is due to the TX complete interrupt that fires after
each transmitted packet.
This patch modifies the handling of TX complete to use NAPI.
With this patch, my NAT router offers a throughput improved by 21%

Original performance:

[root@localhost tmp]# scp toto pgs:/tmp
toto                                          100%  256MB   2.8MB/s   01:31

Performance with the patch:

[root@localhost tmp]# scp toto pgs:/tmp
toto                                          100%  256MB   3.4MB/s   01:16

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-10-08 16:01:41 -04:00
..
accessibility
acpi Merge branches 'acpi-hotplug', 'acpi-scan', 'acpi-lpss', 'acpi-gpio' and 'acpi-video' 2014-09-25 22:59:30 +02:00
amba
ata ahci_xgene: Fix the link down in first attempt for the APM X-Gene SoC AHCI SATA host controller driver. 2014-09-06 11:27:15 +09:00
atm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-08-13 18:27:40 -06:00
auxdisplay
base regmap: Fix registers file debugfs 2014-09-15 16:20:56 -07:00
bcma bcma: use chipcommon node from DT for SoC GPIO chip 2014-09-30 13:17:14 -04:00
block Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2014-09-13 09:39:55 -07:00
bluetooth Bluetooth: btusb: remove redundant lock variable 2014-09-30 14:13:29 +02:00
bus bus: omap_l3_noc: Fix connID for OMAP4 2014-09-11 10:43:39 -07:00
cdrom
char virtio-rng: skip reading when we start to remove the device 2014-09-11 22:28:38 +09:30
clk clk/efm32gg: fix dt init prototype 2014-09-09 13:52:18 -07:00
clocksource ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
connector connector: Use ktime_get_ns() 2014-07-23 10:18:07 -07:00
cpufreq cpufreq: release policy->rwsem on error 2014-09-22 14:32:43 +02:00
cpuidle ARM: 8130/1: cpuidle/cpuidle-big_little: fix reading cpu id part number 2014-08-27 15:40:45 +01:00
crypto crypto: ccp - Check for CCP before registering crypto algs 2014-09-24 14:23:34 +08:00
dca
devfreq PM / OPP: Remove ARCH_HAS_OPP 2014-07-23 00:51:30 +02:00
dio
dma dmaengine: omap-dma: Restore the CLINK_CTRL in resume path 2014-09-23 18:22:55 +05:30
dma-buf dma-buf/fence: Fix a kerneldoc warning 2014-08-28 11:59:09 +05:30
edac Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac 2014-08-15 17:56:45 -06:00
eisa
extcon extcon: sm5502: Change internal hardware switch according to cable type 2014-07-23 10:22:35 +09:00
firewire Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
firmware Revert "efi/x86: efistub: Move shared dependencies to <asm/efi.h>" 2014-09-23 22:01:55 +01:00
fmc
gpio ACPI and power management fixes for 3.17-rc7 2014-09-25 15:25:52 -07:00
gpu Merge branch 'drm-fixes-3.17' of git://people.freedesktop.org/~agd5f/linux into drm-fixes 2014-09-25 06:49:26 +10:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2014-08-27 09:38:06 -07:00
hsi HSI changes for the v3.17 series 2014-08-06 20:06:14 -07:00
hv Char / Misc driver patches for 3.17-rc1 2014-08-04 17:32:24 -07:00
hwmon hwmon: (tmp103) Fix resource leak bug in tmp103 temperature sensor driver 2014-09-22 11:11:48 -07:00
hwspinlock hwspinlock: enable OMAP build for AM33xx, AM43xx & DRA7xx 2014-07-29 11:46:28 +03:00
i2c i2c: acpi: Fix NULL Pointer dereference 2014-09-25 16:08:15 +02:00
ide ide: use module_platform_driver() 2014-08-05 21:16:46 -07:00
idle intel_idle: Broadwell support 2014-08-15 17:06:40 -04:00
iio iio:magnetometer: bugfix magnetometers gain values 2014-09-14 18:21:23 +01:00
infiniband net: better IFF_XMIT_DST_RELEASE support 2014-10-07 13:22:11 -04:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-09-26 11:04:31 -07:00
iommu iommu/fsl: Fix warning resulting from adding PCI device twice 2014-09-05 16:01:46 +02:00
ipack
irqchip irqchip: gic-v3: Declare rdist as __percpu pointer to __iomem pointer 2014-09-03 12:08:10 +00:00
isdn isdn/gigaset: use USB API function usb_endpoint_num() 2014-10-05 21:17:52 -04:00
leds Revert "leds: convert blink timer to workqueue" 2014-09-02 10:02:13 -07:00
lguest mm/vmalloc.c: clean up map_vm_area third argument 2014-08-06 18:01:19 -07:00
macintosh == Changes to existing drivers == 2014-08-07 17:23:16 -07:00
mailbox mailbox/omap: add a parent structure for every IP instance 2014-07-29 01:57:25 -07:00
mcb
md Bugfixes for md/raid1 2014-09-24 08:53:33 -07:00
media [media] em28xx-v4l: get rid of field "users" in struct em28xx_v4l2" 2014-09-21 21:27:57 -03:00
memory memory: Freescale CoreNet Coherency Fabric error reporting driver 2014-07-29 19:26:30 -05:00
memstick
message scsi: use 'depends' instead of 'select' for SCSI_FC_ATTRS 2014-09-16 16:55:55 -04:00
mfd mfd: twl4030-power: Fix PM idle pin configuration to not conflict with regulators 2014-08-28 15:57:55 +01:00
misc Lattice ECP3 FPGA: Check firmware pointer 2014-09-08 14:38:14 -07:00
mmc PCI changes for the v3.17 merge window (part 2): 2014-08-14 18:10:33 -06:00
mtd Two trivial MTD updates for 3.17-rc4: 2014-09-06 12:12:09 -07:00
net net: fs_enet: Add NAPI TX 2014-10-08 16:01:41 -04:00
nfc Merge tag 'master-2014-10-02' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next 2014-10-05 21:34:39 -04:00
ntb ntb: Add alignment check to meet hardware requirement 2014-09-14 00:10:38 -04:00
nubus
of net: phy: adjust fixed_phy_register() return value 2014-10-07 13:06:45 -04:00
oprofile
parisc parisc: pdc_stable.c: Avoid potential stack overflows 2014-09-21 22:31:08 +02:00
parport drivers/parport/parport_ip32.c: use PTR_ERR_OR_ZERO 2014-08-08 15:57:25 -07:00
pci PCI updates for v3.17: 2014-09-24 09:46:29 -07:00
pcmcia Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-08-07 08:50:34 -07:00
phy phy: spear1340-miphy: fix driver dependencies 2014-09-12 11:35:31 +05:30
pinctrl pinctrl: baytrail: resolve unbalanced IRQ wake disable warning 2014-09-10 14:25:51 +02:00
platform toshiba_acpi: fix and cleanup toshiba_kbd_bl_mode_store() 2014-09-03 10:45:12 -07:00
pnp ACPI / PNP: Fix acpi_pnp_match() 2014-07-30 00:23:09 +02:00
power ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
powercap powercap / RAPL: change domain detection message 2014-09-03 01:29:00 +02:00
pps
ps3
ptp PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
pwm pwm: Fix period and polarity in pwm_get() for non-perfect matches 2014-08-18 10:58:43 +02:00
rapidio PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
ras
regulator regulator: remove unnecessary of_node_get() to parent 2014-09-10 11:35:02 +01:00
remoteproc
reset
rpmsg
rtc drivers/rtc/rtc-efi.c: add missing module alias 2014-09-26 08:10:35 -07:00
s390 net: better IFF_XMIT_DST_RELEASE support 2014-10-07 13:22:11 -04:00
sbus Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2014-08-05 18:57:18 -07:00
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-09-22 18:23:33 -07:00
sfi
sh sh: intc: Confine SH_INTC to platforms that need it 2014-08-22 12:28:16 +09:00
sn
soc drivers/soc: qcom: do not disable the iface clock in probe 2014-09-23 21:38:32 -07:00
spi Merge remote-tracking branches 'spi/fix/davinci', 'spi/fix/dw', 'spi/fix/fsl', 'spi/fix/pl022', 'spi/fix/rockchip' and 'spi/fix/sirf' into spi-linus 2014-09-16 16:20:19 -07:00
spmi
ssb ssb: add PCI ID 0x4351 2014-08-25 15:39:22 -04:00
staging et131x: Add PCIe gigabit ethernet driver et131x to drivers/net 2014-10-03 12:22:19 -07:00
target iscsi-target: avoid NULL pointer in iscsi_copy_param_list failure 2014-09-17 13:44:01 -07:00
tc
thermal Merge branches 'exynos-fix', 'for-rc', 'int3403-fix', 'misc', 'rcar-thermal' and 'sti-thermal' of .git into next 2014-07-22 10:13:00 +08:00
thunderbolt thunderbolt: Clear hops before overwriting 2014-08-26 14:54:48 -07:00
tty tty: xuartps: Fix tx_emtpy() callback 2014-09-08 16:33:56 -07:00
uio
usb Merge tag 'master-2014-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next 2014-09-26 15:39:24 -04:00
uwb uwb: init beacon cache entry before registering uwb device 2014-09-08 16:03:21 -07:00
vfio drivers/vfio: Enable VFIO if EEH is not supported 2014-08-08 10:39:16 -06:00
vhost
video video: ARM CLCD: Fix color model capabilities for DT platforms 2014-09-12 11:45:10 +03:00
virt
virtio virtio_ring: unify direct/indirect code paths. 2014-09-13 12:52:35 -04:00
vlynq
vme vme: bridges: use pci_zalloc_consistent 2014-08-08 15:57:30 -07:00
w1
watchdog Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-08-07 08:47:00 -07:00
xen xen: bug fixes for 3.17-rc4 2014-09-11 16:52:29 -07:00
zorro
Kconfig Char / Misc driver patches for 3.17-rc1 2014-08-04 17:32:24 -07:00
Makefile Driver core patches for 3.17-rc1 2014-08-04 18:34:04 -07:00