#
e74bfeed |
| 13-Jul-2015 |
Dave Jiang <dave.jiang@intel.com> |
NTB: Add flow control to the ntb_netdev
Right now if we push the NTB really hard, we start dropping packets due to not able to process the packets fast enough. We need to st:qop the upper layer from
NTB: Add flow control to the ntb_netdev
Right now if we push the NTB really hard, we start dropping packets due to not able to process the packets fast enough. We need to st:qop the upper layer from flooding us when that happens.
A timer is necessary in order to restart the queue once the resource has been processed on the receive side. Due to the way NTB is setup, the resources on the tx side are tied to the processing of the rx side and there's no async way to know when the rx side has released those resources.
Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
30a4bb1e |
| 13-Jul-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Fix dereference before check
Remove early dereference of a pointer that is checked later in the code.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Allen Hubbe <Allen.Hu
NTB: Fix dereference before check
Remove early dereference of a pointer that is checked later in the code.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
8c9edf63 |
| 13-Jul-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Fix zero size or integer overflow in ntb_set_mw
A plain 32 bit integer will overflow for values over 4GiB.
Change the plain integer size to the appropriate size type in ntb_set_mw. Change the
NTB: Fix zero size or integer overflow in ntb_set_mw
A plain 32 bit integer will overflow for values over 4GiB.
Change the plain integer size to the appropriate size type in ntb_set_mw. Change the type of the size parameter and two local variables used for size.
Even if there is no overflow, a size of zero is invalid here.
Reported-by: Juyoung Jung <jjung@micron.com> Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
8b5a22d8 |
| 13-Jul-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Schedule to receive on QP link up
Schedule to receive on QP link up, to make sure that the doorbell is properly cleared for interrupts.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-
NTB: Schedule to receive on QP link up
Schedule to receive on QP link up, to make sure that the doorbell is properly cleared for interrupts.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
260bee94 |
| 13-Jul-2015 |
Dave Jiang <dave.jiang@intel.com> |
NTB: Fix oops in debugfs when transport is half-up
When the remote side is not up, we do not have all the context for the transport, and that causes NULL ptr access. Have the debugfs reads check to
NTB: Fix oops in debugfs when transport is half-up
When the remote side is not up, we do not have all the context for the transport, and that causes NULL ptr access. Have the debugfs reads check to see if transport is up before we make access.
Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
c8650fd0 |
| 13-Jul-2015 |
Dave Jiang <dave.jiang@intel.com> |
NTB: Fix transport stats for multiple devices
Currently the debugfs does not have files for all NTB transport queue pairs. When there are multiple NTBs present in a system, the QP names of the last
NTB: Fix transport stats for multiple devices
Currently the debugfs does not have files for all NTB transport queue pairs. When there are multiple NTBs present in a system, the QP names of the last transport clobber the names of previously added transport QPs. Only the last added QPs can be observed via debugfs.
Create a directory per NTB transport to associate the QPs with that transport. Name the directory the same as the PCI device.
Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
da2e5ae5 |
| 13-Jul-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Fix ntb_transport out-of-order RX update
It was possible for a synchronous update of the RX index in the error case to get ahead of the asynchronous RX index update in the normal case. Change
NTB: Fix ntb_transport out-of-order RX update
It was possible for a synchronous update of the RX index in the error case to get ahead of the asynchronous RX index update in the normal case. Change the RX processing to preserve an RX completion order.
There were two error cases. First, if a buffer is not present to receive data, there would be no queue entry to preserve the RX completion order. Instead of dropping the RX frame, leave the RX frame in the ring. Schedule RX processing when RX entries are enqueued, in case there are RX frames waiting in the ring to be received.
Second, if a buffer is too small to receive data, drop the frame in the ring, mark the RX entry as done, and indicate the error in the RX entry length. Check for a negative length in the receive callback in ntb_netdev, and count occurrences as rx_length_errors.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
Revision tags: v4.2-rc2, v4.2-rc1, v4.1 |
|
#
7eb38781 |
| 15-Jun-2015 |
Dave Jiang <dave.jiang@intel.com> |
NTB: Print driver name and version in module init
Printouts driver name and version to indicate what is being loaded.
Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdma
NTB: Print driver name and version in module init
Printouts driver name and version to indicate what is being loaded.
Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
Revision tags: v4.1-rc8, v4.1-rc7 |
|
#
9891417d |
| 03-Jun-2015 |
Dave Jiang <dave.jiang@intel.com> |
NTB: Increase transport MTU to 64k from 16k
Benchmarking showed a significant performance increase with the MTU size to 64k instead of 16k. Change the driver default to 64k.
Signed-off-by: Dave Ji
NTB: Increase transport MTU to 64k from 16k
Benchmarking showed a significant performance increase with the MTU size to 64k instead of 16k. Change the driver default to 64k.
Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
Revision tags: v4.1-rc6, v4.1-rc5 |
|
#
a41ef053 |
| 19-May-2015 |
Dave Jiang <dave.jiang@intel.com> |
NTB: Default to CPU memcpy for performance
Disable DMA usage by default, since the CPU provides much better performance with write combining. Provide a module parameter to enable DMA usage when off
NTB: Default to CPU memcpy for performance
Disable DMA usage by default, since the CPU provides much better performance with write combining. Provide a module parameter to enable DMA usage when offloading the memcpy is preferred.
Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
06917f75 |
| 19-May-2015 |
Dave Jiang <dave.jiang@intel.com> |
NTB: Improve performance with write combining
Changing the memory window BAR mappings to write combining significantly boosts the performance. We will also use memcpy that uses non-temporal store,
NTB: Improve performance with write combining
Changing the memory window BAR mappings to write combining significantly boosts the performance. We will also use memcpy that uses non-temporal store, which showed performance improvement when doing non-cached memcpys.
Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
Revision tags: v4.1-rc4 |
|
#
1199aa61 |
| 18-May-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Use NUMA memory and DMA chan in transport
Allocate memory and request the DMA channel for the same NUMA node as the NTB device.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by:
NTB: Use NUMA memory and DMA chan in transport
Allocate memory and request the DMA channel for the same NUMA node as the NTB device.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
28762289 |
| 11-May-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Rate limit ntb_qp_link_work
When the ntb transport is connecting and waiting for the peer, the debug console receives lots of debug level messages about the remote qp link status being down. R
NTB: Rate limit ntb_qp_link_work
When the ntb transport is connecting and waiting for the peer, the debug console receives lots of debug level messages about the remote qp link status being down. Rate limit those messages.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
2849b5d7 |
| 12-May-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Reset transport QP link stats on down
Reset the link stats when the link goes down. In particular, the TX and RX index and count must be reset, or else the TX side will be sending packets to t
NTB: Reset transport QP link stats on down
Reset the link stats when the link goes down. In particular, the TX and RX index and count must be reset, or else the TX side will be sending packets to the RX side where the RX side is not expecting them. Reset all the stats, to be consistent.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
c0900b33 |
| 12-May-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Do not advance transport RX on link down
On link down, don't advance RX index to the next entry. The next entry should never be valid after receiving the link down flag.
Signed-off-by: Allen
NTB: Do not advance transport RX on link down
On link down, don't advance RX index to the next entry. The next entry should never be valid after receiving the link down flag.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
e22e0b9d |
| 12-May-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Differentiate transport link down messages
The same message "qp %d: Link Down\n" was printed at two locations in ntb_transport. Change the messages so they are distinct.
Signed-off-by: Allen
NTB: Differentiate transport link down messages
The same message "qp %d: Link Down\n" was printed at two locations in ntb_transport. Change the messages so they are distinct.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
0f69a7df |
| 02-Jun-2015 |
Dave Jiang <dave.jiang@intel.com> |
NTB: Read peer info from local SPAD in transport
The transport was writing and then reading the peer scratch pad, essentially reading what it just wrote instead of exchanging any information with th
NTB: Read peer info from local SPAD in transport
The transport was writing and then reading the peer scratch pad, essentially reading what it just wrote instead of exchanging any information with the peer. The transport expects the peer values to be the same as the local values, so this issue was not obvious.
Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
Revision tags: v4.1-rc3, v4.1-rc2, v4.1-rc1, v4.0 |
|
#
e26a5843 |
| 09-Apr-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Split ntb_hw_intel and ntb_transport drivers
Change ntb_hw_intel to use the new NTB hardware abstraction layer.
Split ntb_transport into its own driver. Change it to use the new NTB hardware
NTB: Split ntb_hw_intel and ntb_transport drivers
Change ntb_hw_intel to use the new NTB hardware abstraction layer.
Split ntb_transport into its own driver. Change it to use the new NTB hardware abstraction layer.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
#
ec110bc7 |
| 07-May-2015 |
Allen Hubbe <Allen.Hubbe@emc.com> |
NTB: Move files in preparation for NTB abstraction
This patch only moves files to their new locations, before applying the next two patches adding the NTB Abstraction layer. Splitting this patch fr
NTB: Move files in preparation for NTB abstraction
This patch only moves files to their new locations, before applying the next two patches adding the NTB Abstraction layer. Splitting this patch from the next is intended make distinct which code is changed only due to moving the files, versus which are substantial code changes in adding the NTB Abstraction layer.
Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
Revision tags: v4.0-rc7, v4.0-rc6, v4.0-rc5, v4.0-rc4, v4.0-rc3, v4.0-rc2, v4.0-rc1, v3.19, v3.19-rc7, v3.19-rc6, v3.19-rc5, v3.19-rc4, v3.19-rc3, v3.19-rc2, v3.19-rc1, v3.18, v3.18-rc7, v3.18-rc6, v3.18-rc5, v3.18-rc4, v3.18-rc3, v3.18-rc2, v3.18-rc1, v3.17, v3.17-rc7, v3.17-rc6, v3.17-rc5, v3.17-rc4, v3.17-rc3 |
|
#
3cc5ba19 |
| 28-Aug-2014 |
Dave Jiang <dave.jiang@intel.com> |
ntb: Add alignment check to meet hardware requirement
The NTB translate register must have the value to be BAR size aligned. This alignment check make sure that the DMA memory allocated has the prop
ntb: Add alignment check to meet hardware requirement
The NTB translate register must have the value to be BAR size aligned. This alignment check make sure that the DMA memory allocated has the proper alignment. Another requirement for NTB to function properly with memory window BAR size greater or equal to 4M is to use the CMA feature in 3.16 kernel with the appropriate CONFIG_CMA_ALIGNMENT and CONFIG_CMA_SIZE_MBYTES set.
Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
show more ...
|
Revision tags: v3.17-rc2, v3.17-rc1, v3.16, v3.16-rc7, v3.16-rc6, v3.16-rc5, v3.16-rc4, v3.16-rc3, v3.16-rc2 |
|
#
a1413cfb |
| 19-Jun-2014 |
Jon Mason <jon.mason@intel.com> |
NTB: correct the spread of queues over mw's
The detection of an uneven number of queues on the given memory windows was not correct. The mw_num is zero based and the mod should be division to sprea
NTB: correct the spread of queues over mw's
The detection of an uneven number of queues on the given memory windows was not correct. The mw_num is zero based and the mod should be division to spread them evenly over the mw's.
Signed-off-by: Jon Mason <jon.mason@intel.com>
show more ...
|
Revision tags: v3.16-rc1, v3.15, v3.15-rc8, v3.15-rc7, v3.15-rc6, v3.15-rc5, v3.15-rc4, v3.15-rc3, v3.15-rc2, v3.15-rc1, v3.14, v3.14-rc8, v3.14-rc7, v3.14-rc6, v3.14-rc5, v3.14-rc4, v3.14-rc3, v3.14-rc2, v3.14-rc1, v3.13, v3.13-rc8, v3.13-rc7, v3.13-rc6, v3.13-rc5, v3.13-rc4, v3.13-rc3, v3.13-rc2 |
|
#
53ca4fea |
| 26-Nov-2013 |
Jon Mason <jon.mason@intel.com> |
NTB: Code Style Clean-up
Some white space and 80 char overruns corrected.
Signed-off-by: Jon Mason <jon.mason@intel.com>
|
Revision tags: v3.13-rc1, v3.12, v3.12-rc7, v3.12-rc6, v3.12-rc5, v3.12-rc4, v3.12-rc3, v3.12-rc2, v3.12-rc1, v3.11, v3.11-rc7, v3.11-rc6, v3.11-rc5, v3.11-rc4 |
|
#
403c63cb |
| 29-Jul-2013 |
Jon Mason <jon.mason@intel.com> |
NTB: client event cleanup
Provide a better event interface between the client and transport
Signed-off-by: Jon Mason <jon.mason@intel.com>
|
Revision tags: v3.11-rc3, v3.11-rc2, v3.11-rc1, v3.10, v3.10-rc7, v3.10-rc6, v3.10-rc5, v3.10-rc4, v3.10-rc3, v3.10-rc2, v3.10-rc1, v3.9, v3.9-rc8 |
|
#
e8aeb60c |
| 18-Apr-2013 |
Jon Mason <jon.mason@intel.com> |
NTB: Disable interrupts and poll under high load
Disable interrupts and poll under high load
Signed-off-by: Jon Mason <jon.mason@intel.com>
|
#
94681194 |
| 19-Nov-2013 |
Jon Mason <jon.mason@intel.com> |
NTB: correct dmaengine_get/put usage
dmaengine_get() causes the initialization of the per-cpu channel tables. It needs to be called prior to dma_find_channel().
Initial version by Dan Williams <dan
NTB: correct dmaengine_get/put usage
dmaengine_get() causes the initialization of the per-cpu channel tables. It needs to be called prior to dma_find_channel().
Initial version by Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Jon Mason <jon.mason@intel.com>
show more ...
|