linux/drivers/infiniband/hw/ipath
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
..
Kconfig [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
Makefile [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_common.h [PATCH] IB/ipath: reduce overhead on receive interrupts 2006-07-01 09:56:00 -07:00
ipath_cq.c [PATCH] IB/ipath: enforce device resource limits 2006-07-01 09:55:59 -07:00
ipath_debug.h [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_diag.c [PATCH] IB/ipath: allow diags on any unit 2006-07-01 09:55:58 -07:00
ipath_driver.c [PATCH] IB/ipath: fixed bug 9776 for real 2006-07-01 09:56:00 -07:00
ipath_eeprom.c [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_file_ops.c [PATCH] IB/ipath: memory management cleanups 2006-07-01 09:56:00 -07:00
ipath_fs.c [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_ht400.c [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_init_chip.c [PATCH] IB/ipath: memory management cleanups 2006-07-01 09:56:00 -07:00
ipath_intr.c [PATCH] IB/ipath: fixed bug 9776 for real 2006-07-01 09:56:00 -07:00
ipath_kernel.h [PATCH] IB/ipath: memory management cleanups 2006-07-01 09:56:00 -07:00
ipath_keys.c [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_layer.c [PATCH] IB/ipath: report correct device identification information in /sys 2006-07-01 09:55:59 -07:00
ipath_layer.h [PATCH] IB/ipath: report correct device identification information in /sys 2006-07-01 09:55:59 -07:00
ipath_mad.c [PATCH] IB/ipath: report correct device identification information in /sys 2006-07-01 09:55:59 -07:00
ipath_mr.c [PATCH] IB/ipath: don't allow resources to be created with illegal values 2006-07-01 09:55:59 -07:00
ipath_pe800.c [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_qp.c [PATCH] IB/ipath: enforce device resource limits 2006-07-01 09:55:59 -07:00
ipath_rc.c [PATCH] IB/ipath: fix shared receive queues for RC 2006-07-01 09:55:58 -07:00
ipath_registers.h [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_ruc.c [PATCH] IB/ipath: share more common code between RC and UC protocols 2006-07-01 09:55:58 -07:00
ipath_srq.c [PATCH] IB/ipath: enforce device resource limits 2006-07-01 09:55:59 -07:00
ipath_stats.c [PATCH] IB/ipath: reduce overhead on receive interrupts 2006-07-01 09:56:00 -07:00
ipath_sysfs.c [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_uc.c [PATCH] IB/ipath: share more common code between RC and UC protocols 2006-07-01 09:55:58 -07:00
ipath_ud.c [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_user_pages.c [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ipath_verbs.c [PATCH] IB/ipath: enforce device resource limits 2006-07-01 09:55:59 -07:00
ipath_verbs.h [PATCH] IB/ipath: enforce device resource limits 2006-07-01 09:55:59 -07:00
ipath_verbs_mcast.c [PATCH] IB/ipath: enforce device resource limits 2006-07-01 09:55:59 -07:00
ipath_wc_x86_64.c [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
ips_common.h [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00
verbs_debug.h [PATCH] IB/ipath: update copyrights and other strings to reflect new company name 2006-07-01 09:55:58 -07:00