Files
linux/include/linux
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
..
2009-04-07 10:23:34 +01:00
2009-03-18 19:45:11 -07:00
2009-03-31 09:56:26 +01:00
2009-06-11 21:36:00 -04:00
2009-03-05 14:39:32 -05:00
2009-02-12 09:40:14 +11:00
2009-04-01 08:59:23 -07:00
2009-06-01 06:21:13 +00:00
2009-05-02 15:36:10 -07:00
2009-04-23 10:06:35 +01:00
2009-06-11 21:36:09 -04:00
2009-04-03 14:53:32 -07:00
2009-05-29 08:40:01 -07:00
2009-06-11 08:50:57 -07:00
2009-06-11 21:36:06 -04:00
2009-03-01 00:19:35 -08:00
2009-04-03 14:53:32 -07:00
2009-02-10 00:41:26 +01:00
2009-03-16 08:32:27 -06:00
2009-02-18 15:37:56 -08:00
2009-06-11 21:36:11 -04:00
2009-03-30 15:14:53 +02:00
2009-04-03 09:48:29 -07:00
2009-04-02 19:04:53 -07:00
2009-05-22 09:43:41 +10:00
2009-04-21 13:41:48 -07:00
2009-04-21 13:41:48 -07:00
2009-06-11 21:36:12 -04:00
2009-06-11 17:03:28 +01:00
2009-06-10 11:48:39 +03:00
2009-04-06 16:06:26 +01:00
2009-04-28 07:37:28 +02:00
2009-04-14 09:00:19 +10:00
2009-04-02 19:04:48 -07:00
2009-06-11 21:36:02 -04:00
2009-03-20 10:48:14 -07:00
2009-06-11 21:36:01 -04:00
2009-03-15 19:59:13 -07:00
2009-04-03 17:41:23 -07:00
2009-04-01 13:28:15 -04:00
2009-04-03 17:41:12 -07:00
2009-03-10 20:33:18 -04:00
2009-04-30 15:32:11 +00:00
2009-04-01 08:59:13 -07:00
2009-04-01 08:59:13 -07:00
2009-04-13 14:51:23 -07:00
2009-04-24 08:54:21 +02:00
2009-04-01 08:59:13 -07:00
2009-03-13 16:09:12 -07:00
2009-03-30 15:22:01 +02:00
2009-06-11 21:36:12 -04:00
2009-03-26 02:18:35 +01:00
2009-02-26 23:42:11 -08:00
2009-03-30 14:28:58 -07:00
2009-05-09 10:49:41 -04:00
2009-04-01 08:59:24 -07:00
2009-02-16 00:03:10 -08:00
2009-04-08 14:33:38 -07:00
2009-06-11 08:50:58 -07:00
2009-02-27 16:53:50 +09:00
2009-04-13 15:04:29 -07:00
2009-04-21 19:40:00 -07:00
2009-03-27 12:18:56 -04:00
2009-05-12 11:11:48 +02:00
2009-04-02 19:05:01 -07:00
2009-02-18 15:37:53 -08:00
2009-06-11 08:50:59 -07:00
2009-06-11 08:51:01 -07:00
2009-03-26 18:14:21 +01:00
2009-04-17 10:50:27 -07:00