linux-stable-rt/drivers
Rusty Russell a32a8813d0 lguest: improve interrupt handling, speed up stream networking
lguest never checked for pending interrupts when enabling interrupts, and
things still worked.  However, it makes a significant difference to TCP
performance, so it's time we fixed it by introducing a pending_irq flag
and checking it on irq_restore and irq_enable.

These two routines are now too big to patch into the 8/10 bytes
patch space, so we drop that code.

Note: The high latency on interrupt delivery had a very curious
effect: once everything else was optimized, networking without GSO was
faster than networking with GSO, since more interrupts were sent and
hence a greater chance of one getting through to the Guest!

Note2: (Almost) Closing the same loophole for iret doesn't have any
measurable effect, so I'm leaving that patch for the moment.

Before:
	1GB tcpblast Guest->Host:		30.7 seconds
	1GB tcpblast Guest->Host (no GSO):	76.0 seconds

After:
	1GB tcpblast Guest->Host:		6.8 seconds
	1GB tcpblast Guest->Host (no GSO):	27.8 seconds

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-06-12 22:27:03 +09:30
..
accessibility
acpi Merge branch 'irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 15:25:41 -07:00
amba
ata Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev 2009-06-11 11:23:17 -07:00
atm
auxdisplay
base
block floppy: fix hibernation 2009-06-10 23:07:16 +02:00
bluetooth tty: fix bluetooth scribbling on low latency flags 2009-06-11 08:51:05 -07:00
cdrom
char Merge branch 'for-linus' of git://linux-arm.org/linux-2.6 2009-06-11 14:15:57 -07:00
clocksource
connector
cpufreq cpumask: alloc zeroed cpumask for static cpumask_var_ts 2009-06-09 22:30:27 +09:30
cpuidle
crypto
dca
dio
dma Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-05-30 07:57:44 -07:00
edac EDAC: do not enable modules by default 2009-06-10 12:19:41 +02:00
eisa
firewire
firmware [libata] ahci: Restore SB600 SATA controller 64 bit DMA 2009-06-10 11:05:00 -04:00
gpio
gpu Revert "drm: don't associate _DRM_DRIVER maps with a master" 2009-06-05 10:21:52 -07:00
hid
hwmon hwmon: (lm78) Add missing __devexit_p() 2009-06-01 13:46:49 +02:00
i2c
ide Merge branch 'for-2.6.31' of git://git.kernel.dk/linux-2.6-block 2009-06-11 11:10:35 -07:00
idle
ieee1394 fs: Remove i_cindex from struct inode 2009-06-11 21:36:09 -04:00
infiniband
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-05-29 08:48:25 -07:00
isdn
leds
lguest lguest: improve interrupt handling, speed up stream networking 2009-06-12 22:27:03 +09:30
macintosh
mca
md Merge branch 'for-2.6.31' of git://git.kernel.dk/linux-2.6-block 2009-06-11 11:10:35 -07:00
media ivtv: Fix PCI DMA direction 2009-06-05 08:05:23 -07:00
memstick
message
mfd
misc
mmc Merge branch 'for-2.6.31' of git://git.kernel.dk/linux-2.6-block 2009-06-11 11:10:35 -07:00
mtd Merge branch 'for-2.6.31' of git://git.kernel.dk/linux-2.6-block 2009-06-11 11:10:35 -07:00
net r8169: fix crash when large packets are received 2009-06-09 04:01:02 -07:00
nubus
of
oprofile
parisc
parport parport_pc: clean up the modified while loops using for 2009-06-11 08:51:03 -07:00
pci Merge branch 'irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 15:25:41 -07:00
pcmcia
platform
pnp Merge branch 'linus' into irq/numa 2009-06-01 21:06:21 +02:00
power
ps3
rapidio
regulator
rtc
s390
sbus
scsi Merge branch 'for-2.6.31' of git://git.kernel.dk/linux-2.6-block 2009-06-11 11:10:35 -07:00
serial Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2009-06-11 10:08:33 -07:00
sh sh: Tie sparseirq in to Kconfig. 2009-06-11 10:33:09 +03:00
sn
spi
ssb SSB: BCM47xx: Export ssb_watchdog_timer_set 2009-06-08 16:57:50 +01:00
staging
tc
telephony
thermal
uio
usb Push BKL down into ->remount_fs() 2009-06-11 21:36:11 -04:00
uwb
video Merge branch 'topic/slab/earlyboot' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 2009-06-11 12:25:06 -07:00
virtio
w1
watchdog
xen Merge branch 'x86-xen-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 16:16:27 -07:00
zorro
Kconfig
Makefile