kernel_optimize_test/drivers/infiniband/hw/qib
Mike Marciniszyn af061a644a IB/qib: Use RCU for qpn lookup
The heavy weight spinlock in qib_lookup_qpn() is replaced with RCU.
The hash list itself is now accessed via jhash functions instead of mod.

The changes should benefit multiple receive contexts in different
processors by not contending for the lock just to read the hash
structures.

The patch also adds a lookaside_qp (pointer) and a lookaside_qpn in
the context.  The interrupt handler will test the current packet's qpn
against lookaside_qpn if the lookaside_qp pointer is non-NULL.  The
pointer is NULL'ed when the interrupt handler exits.

Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2011-10-21 09:38:54 -07:00
..
Kconfig RDMA: Add netlink infrastructure 2011-05-20 11:46:11 -07:00
Makefile IB/qib: Use request_firmware() to load SD7220 firmware 2010-07-08 13:27:05 -07:00
qib_6120_regs.h
qib_7220_regs.h
qib_7220.h IB/qib: Use request_firmware() to load SD7220 firmware 2010-07-08 13:27:05 -07:00
qib_7322_regs.h IB/qib: Mask hardware error during link reset 2010-07-06 14:13:20 -07:00
qib_common.h IB/qib: Allow PSM to select from multiple port assignment algorithms 2010-07-21 11:39:36 -07:00
qib_cq.c IB/qib: Generate completion callback on errors 2011-01-10 17:42:19 -08:00
qib_diag.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
qib_dma.c
qib_driver.c IB/qib: Use RCU for qpn lookup 2011-10-21 09:38:54 -07:00
qib_eeprom.c
qib_file_ops.c IB/qib: Correct nfreectxts for multiple HCAs 2011-10-06 09:33:35 -07:00
qib_fs.c fs: dcache rationalise dget variants 2011-01-07 17:50:24 +11:00
qib_iba6120.c IB/qib: Eliminate divide/mod in converting idx to egr buf pointer 2011-10-21 09:38:52 -07:00
qib_iba7220.c IB/qib: Eliminate divide/mod in converting idx to egr buf pointer 2011-10-21 09:38:52 -07:00
qib_iba7322.c IB/qib: Eliminate divide/mod in converting idx to egr buf pointer 2011-10-21 09:38:52 -07:00
qib_init.c IB/qib: Eliminate divide/mod in converting idx to egr buf pointer 2011-10-21 09:38:52 -07:00
qib_intr.c IB/qib: Ensure that LOS and DFE are being turned off 2011-06-17 11:56:59 -07:00
qib_keys.c IB/qib: Fix refcount leak in lkey/rkey validation 2011-01-10 17:42:23 -08:00
qib_mad.c IB/pma: Add include file for IBA performance counters definitions 2011-07-18 21:04:35 -07:00
qib_mad.h IB/pma: Add include file for IBA performance counters definitions 2011-07-18 21:04:35 -07:00
qib_mmap.c
qib_mr.c IB/qib: RDMA lkey/rkey validation is inefficient for large MRs 2011-01-10 17:42:22 -08:00
qib_pcie.c IB/qib: Remove unnecessary read of PCI_CAP_ID_EXP 2011-07-18 11:57:52 -07:00
qib_pio_copy.c
qib_qp.c IB/qib: Use RCU for qpn lookup 2011-10-21 09:38:54 -07:00
qib_qsfp.c RDMA: Update workqueue usage 2011-01-16 21:16:31 -08:00
qib_qsfp.h IB/qib: Set default LE2 value for active cables to 0 2011-03-14 12:10:34 -07:00
qib_rc.c IB/qib: Decode path MTU optimization 2011-10-21 09:38:50 -07:00
qib_ruc.c
qib_sd7220.c IB/qib: Use request_firmware() to load SD7220 firmware 2010-07-08 13:27:05 -07:00
qib_sdma.c IB/qib: Fix race between qib_error_qp() and receive packet processing 2010-08-03 13:59:47 -07:00
qib_srq.c
qib_sysfs.c IB/qib: Correct nfreectxts for multiple HCAs 2011-10-06 09:33:35 -07:00
qib_twsi.c Fix common misspellings 2011-03-31 11:26:23 -03:00
qib_tx.c IB/qib: Avoid variable-length array 2010-07-19 13:21:24 -07:00
qib_uc.c IB/qib: Decode path MTU optimization 2011-10-21 09:38:50 -07:00
qib_ud.c Fix common misspellings 2011-03-31 11:26:23 -03:00
qib_user_pages.c mm: export __get_user_pages 2011-03-17 13:08:27 -03:00
qib_user_sdma.c Fix common misspellings 2011-03-31 11:26:23 -03:00
qib_user_sdma.h
qib_verbs_mcast.c
qib_verbs.c IB/qib: Use RCU for qpn lookup 2011-10-21 09:38:54 -07:00
qib_verbs.h IB/qib: Use RCU for qpn lookup 2011-10-21 09:38:54 -07:00
qib_wc_ppc64.c
qib_wc_x86_64.c
qib.h IB/qib: Use RCU for qpn lookup 2011-10-21 09:38:54 -07:00