#
304407 |
|
18-Aug-2016 |
mav |
MFC r303514: Fix NTBT_QP_LINKS negotiation.
I believe it never worked correctly for more the one queue even in Linux. This fixes case when one of consumer drivers is not loaded on one side, but its queues still announced as ready if something else brought link up.
While there, remove some pointless NULL checks.
|
#
304405 |
|
18-Aug-2016 |
mav |
MFC r303494: Once more refactor KPI between ntb_transport(4) and if_ntb(4).
New design allows to attach multiple consumers to ntb_transport(4) instance. Previous design obtained from Linux theoretically allowed that, but was not practically usable (Linux also has only one consumer driver now).
|
#
304404 |
|
18-Aug-2016 |
mav |
MFC r303429, r303437, r303551: Once more refactor KPI between NTB hardware and consumers.
New design allows hardware resources to be split between several consumers. For example, one BAR can be dedicated for remote memory access, while other resources can be used for packet transport for virtual Ethernet interface. And even without resource split, this code allows to specify which consumer driver should attach the hardware.
From some points this makes the code even closer to Linux one, even though Linux does not provide the described flexibility.
|
#
304400 |
|
18-Aug-2016 |
mav |
MFC r302622 (by sephe): ntb: Fix LINT
|
#
304397 |
|
18-Aug-2016 |
mav |
MFC r302529: Remove callout_reset(link_work) from ntb_transport_attach().
At that point link is quite likely not established yet, so messing with scratch registers is premature there. Original commit message mentioned code diff reduction from Linux, but this line is not present in Linux now.
|
#
304390 |
|
18-Aug-2016 |
mav |
MFC r302495: Improve memory allocation errors handling on receive.
|
#
304389 |
|
18-Aug-2016 |
mav |
MFC r302494: Synchronize MTU code with Linux.
It is mandatory for transport compatibility.
|
#
304388 |
|
18-Aug-2016 |
mav |
MFC r302493: Reimplement doorbell register emulation for NTB_SB01BASE_LOCKUP.
This allows at least first three doorbells to work very close to normal hardware, properly signaling events to upper layers without spurious or lost events. Doorbells above the first three may still report spurious events due to lack of reliable information, but they are rarely used.
|
#
304387 |
|
18-Aug-2016 |
mav |
MFC r302492: Bring some more order into link and qp state handling.
Do not touch scratchpad registers until link is reported up. Mask and do not handle doorbell events until respective qp is up.
|
#
304385 |
|
18-Aug-2016 |
mav |
MFC r302490: Create separate RX taskqueue for each qp.
|
#
304384 |
|
18-Aug-2016 |
mav |
MFC r302489: Remove rx_completion_task taskqueue.
It is not needed after RX lock removed in previous commit.
|
#
304383 |
|
18-Aug-2016 |
mav |
MFC r302488: Remove unneeded RX lock, and make TX lock per-qp.
|
#
304382 |
|
18-Aug-2016 |
mav |
MFC r302487: Reduce code divergence from Linux, preparing for DMA support.
|
#
304381 |
|
18-Aug-2016 |
mav |
MFC r302486: Fix operation with multiple qps.
|
#
304380 |
|
18-Aug-2016 |
mav |
MFC r302484: NewBus'ify NTB subsystem.
This follows NTB subsystem modularization in Linux, tuning it to FreeBSD native NewBus interfaces. This change allows to support different types of hardware with different drivers, support multiple NTB instances in a system, ntb_transport module use for needs other then if_ntb, etc.
Sponsored by: iXsystems, Inc.
|