freebsd-dev/sys/dev/cxgbe
John Baldwin 91a65e2f6b Avoid reusing the wrong buffer for a DDP AIO request.
To optimize the case of ping-ponging between two buffers, the DDP code
caches the last two buffers used keeping the pages wired and page pods
stored in the NIC's RAM.  If a new aio_read() request uses one of the
same buffers, then the work of holding pages, etc. can be avoided.
However, the starting virtual address of an aio buffer was not saved,
only the page count, length, and initial page offset.  Thus, an
aio_read() request could match a different buffer in the address
space.  (Earlier during development vm_fault_hold_quick_pages() was
always called and the vm_page_t values were compared, but that was
eventually removed without being adequately replaced.)  Fix by storing
the starting virtual address and comparing that (along with other
fields) to determine if a buffer can be reused.

MFC after:	3 days
Sponsored by:	Chelsio Communications
2017-09-15 22:40:57 +00:00
..
common cxgbe(4): Remove write only variable from t4_port_init. 2017-08-28 04:06:40 +00:00
crypto Fix some incorrect sysctl pointers for some error stats. 2017-09-14 21:06:08 +00:00
cudbg cxgbe(4): Initial import of the "collect" component of Chelsio unified 2017-08-03 14:43:30 +00:00
cxgbei Use proper alignment constant for uma_zcreate(). 2017-04-24 08:44:51 +00:00
firmware cxgbe(4): Update T6/T5/T4 firmwares to 1.16.59.0. 2017-08-29 23:37:26 +00:00
iw_cxgbe cxgbe/iw_cxgbe: Set TCP_NODELAY before initiating connection so that 2017-09-01 01:34:12 +00:00
tom Avoid reusing the wrong buffer for a DDP AIO request. 2017-09-15 22:40:57 +00:00
adapter.h cxgbe(4): Add two new debug flags -- one to allow manual firmware 2017-08-30 23:41:04 +00:00
if_cc.c cxgbe(4): Attach to cards with the Terminator 6 ASIC. T6 cards will 2016-09-16 00:08:37 +00:00
if_ccv.c cxgbe(4): Attach to cards with the Terminator 6 ASIC. T6 cards will 2016-09-16 00:08:37 +00:00
if_cxl.c cxgbe(4): Add a minimal if_cxl module that pulls in the real driver as 2015-02-06 01:10:04 +00:00
if_cxlv.c Chelsio T4/T5 VF driver. 2016-09-07 18:13:57 +00:00
offload.h cxgbe/t4_tom: Add a knob to select the congestion control algorigthm 2017-08-31 20:33:22 +00:00
osdep.h cxgbe(4): Remove __devinit and SPEED_<foo> as part of catch up with 2016-03-08 08:13:37 +00:00
t4_if.m Use the port device name for the iov device for Chelsio T4/T5 cards. 2016-08-03 17:11:08 +00:00
t4_ioctl.h cxgbe(4): Initial import of the "collect" component of Chelsio unified 2017-08-03 14:43:30 +00:00
t4_iov.c cxgbe(4): Update the VF device ids too. This should have been part 2017-05-05 16:52:25 +00:00
t4_l2t.c cxgbe(4): Changes to the CPL-handler registration mechanism and code 2016-07-05 01:29:24 +00:00
t4_l2t.h cxgbe(4): Changes to the CPL-handler registration mechanism and code 2016-07-05 01:29:24 +00:00
t4_main.c cxgbe(4): Ignore capabilities that depend on TOE when the firmware 2017-09-13 06:07:02 +00:00
t4_mp_ring.c sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
t4_mp_ring.h cxgbe(4): major tx rework. 2014-12-31 23:19:16 +00:00
t4_netmap.c cxgbe(4): Fix per-queue netmap operation. 2017-06-15 19:56:59 +00:00
t4_sched.c cxgbe(4): Avoid a NULL dereference that would occur during module unload 2017-08-06 19:45:59 +00:00
t4_sge.c cxgbe(4): Fix a couple of problems in the sge_wrq data path. 2017-09-09 05:12:14 +00:00
t4_tracer.c cxgbe(4): Support SIOGIFXMEDIA so that ifconfig displays correct media 2016-09-24 13:23:47 +00:00
t4_vf.c cxgbe(4): Update the VF device ids too. This should have been part 2017-05-05 16:52:25 +00:00