linux/drivers/infiniband/hw/qib
Mike Marciniszyn bb77a07723 IB/qib: Optimize pio ack buffer allocation
This patch optimizes pio buffer allocation in the kernel.

For qib, kernel pio buffers are used for sending acks.  The code to
allocate the buffer would always start at 0 until it found a buffer.

This means that an average of 64 comparisions were done on each
allocate, since the busy bit won't be cleared until the bits are
refreshed when buffers are exhausted.

This patch adds two new fields in the devdata struct, last_pio and
min_kernel_pio.  last_pio is the last buffer that was allocated.
min_kernel_pio is the lowest potential available buffer.

min_kernel_pio is modifed as contexts are allocated and deallocted.

Reviewed-by: Ramkrishna Vepa <ramkrishna.vepa@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2012-05-14 12:37:03 -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: Eliminate 64-bit jiffies use 2012-01-03 20:52:12 -08: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 infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
qib_dma.c
qib_driver.c IB/qib: Add prefetch for eager buffers 2012-05-14 12:36:18 -07:00
qib_eeprom.c
qib_file_ops.c IB/qib: Correct sense on freectxts increment and decrement 2011-12-19 09:19:34 -08:00
qib_fs.c infiniband: umode_t noise, including open-coded S_ISDIR() 2012-01-03 22:55:03 -05:00
qib_iba6120.c IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00
qib_iba7220.c IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00
qib_iba7322.c IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00
qib_init.c IB/qib: Fix style issues 2012-01-03 20:51:42 -08: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/qib: Avoid filtering LID on SMA portinfo 2012-02-25 17:45:50 -08: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: Add logic for affinity hint 2012-02-25 17:45:49 -08:00
qib_pio_copy.c
qib_qp.c IB/qib: Precompute timeout jiffies to optimize latency 2011-10-21 09:38:56 -07:00
qib_qsfp.c IB/qib: Fix over-scheduling of QSFP work 2011-11-28 12:17:33 -08:00
qib_qsfp.h IB/qib: Eliminate 64-bit jiffies use 2012-01-03 20:52:12 -08:00
qib_rc.c IB: Change CQE "csum_ok" field to a bit flag 2012-03-08 12:34:27 -08:00
qib_ruc.c IB/qib: Remove s_lock around header validation 2011-10-21 09:38:57 -07:00
qib_sd7220.c IB/qib: Fix style issues 2012-01-03 20:51:42 -08:00
qib_sdma.c infiniband: add moduleparam.h to drivers/infiniband as required 2011-10-31 19:31:36 -04:00
qib_srq.c RDMA/core: Add SRQ type field 2011-10-13 09:13:26 -07:00
qib_sysfs.c IB/qib: Fix style issues 2012-01-03 20:51:42 -08:00
qib_twsi.c Fix common misspellings 2011-03-31 11:26:23 -03:00
qib_tx.c IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00
qib_uc.c IB: Change CQE "csum_ok" field to a bit flag 2012-03-08 12:34:27 -08:00
qib_ud.c Fix common misspellings 2011-03-31 11:26:23 -03:00
qib_user_pages.c mm: distinguish between mlocked and pinned pages 2011-10-31 17:30:46 -07: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: Optimize locking for get_txreq() 2012-01-03 20:53:31 -08:00
qib_verbs.h IB/qib: Precompute timeout jiffies to optimize latency 2011-10-21 09:38:56 -07:00
qib_wc_ppc64.c
qib_wc_x86_64.c
qib.h IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00