1
linux/drivers
Bryan O'Sullivan f5f99929ac [PATCH] IB/ipath: fixed bug 9776 for real
The problem was that I was updating the head register multiple times in the
rcvhdrq processing loop, and setting the counter on each update.  Since that
meant that the tail register was ahead of head for all but the last update, we
would get extra interrupts.  The fix was to not write the counter value except
on the last update.

I also changed to update rcvhdrhead and rcvegrindexhead at most every 16
packets, if there were lots of packets in the queue (and of course, on the
last packet, regardless).

I also made some small cleanups while debugging this.

With these changes, xeon/monty typically sees two openib packets per interrupt
on sdp and ipoib, opteron/monty is about 1.25 pkts/intr.

I'm seeing about 3800 Mbit/s monty/xeon, and 5000-5100 opteron/monty with
netperf sdp.  Netpipe doesn't show as good as that, peaking at about 4400 on
opteron/monty sdp.  Plain ipoib xeon is about 2100+ netperf, opteron 2900+, at
128KB

Signed-off-by: olson@eng-12.pathscale.com
Signed-off-by: Bryan O'Sullivan <bos@pathscale.com>
Cc: "Michael S. Tsirkin" <mst@mellanox.co.il>
Cc: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-01 09:56:00 -07:00
..
acorn Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
acpi [PATCH] ACPI: fix not power-manageable device message 2006-07-01 09:55:58 -07:00
amba [PATCH] 64bit resource: fix up printks for resources in misc drivers 2006-06-27 09:23:59 -07:00
atm Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
base Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
block Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
bluetooth Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cdrom Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
clocksource [PATCH] GTOD: add scx200 HRT clocksource 2006-06-26 09:58:21 -07:00
connector [PATCH] connector-exports 2006-06-23 07:43:06 -07:00
cpufreq Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
crypto [CRYPTO] padlock: Rearrange context structure to reduce code size 2006-06-26 17:34:39 +10:00
dio
dma [IOAT]: Do not dereference THIS_MODULE directly to set unsafe. 2006-06-26 00:10:46 -07:00
edac [PATCH] EDAC: fix module names quoted in sysfs 2006-07-01 09:55:58 -07:00
eisa Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fc4 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
firmware Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
hwmon Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
i2c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
ide Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
ieee1394 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
infiniband [PATCH] IB/ipath: fixed bug 9776 for real 2006-07-01 09:56:00 -07:00
input Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
isdn Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
leds Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
macintosh Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mca
md Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
media Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
message Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mfd Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
misc Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mmc Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mtd Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
net Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2006-06-30 15:40:17 -07:00
nubus Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
oprofile [PATCH] oprofile: convert from semaphores to mutexes 2006-06-25 10:01:04 -07:00
parisc Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
parport Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pci Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
pcmcia Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
pnp Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
rapidio Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
rtc fix a typo in the RTC_CLASS help text 2006-06-30 18:18:41 +02:00
s390 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sbus Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
scsi Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
serial Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2006-06-30 15:40:35 -07:00
sh
sn Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
spi Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tc Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
telephony Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6 2006-06-29 14:19:21 -07:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
video Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
w1 [PATCH] connector-exports 2006-06-23 07:43:06 -07:00
zorro Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
Kconfig
Makefile [PATCH] Time: i386 Clocksource Drivers 2006-06-26 09:58:21 -07:00