NTB: MFV c336acd3: memcpy lockup workaround

The system will appear to lockup for long periods of time due to the NTB
driver spending too much time in memcpy.  Avoid this by reducing the
number of packets that can be serviced on a given interrupt.

Authored by:	Jon Mason
Obtained from:	Linux
Sponsored by:	EMC / Isilon Storage Division
This commit is contained in:
Conrad Meyer 2015-10-11 21:01:14 +00:00
parent 7ee9e4bc6e
commit ae92db9ed6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=289157

View File

@ -853,7 +853,8 @@ ntb_rx_pendq_full(void *arg)
static void
ntb_transport_rx(struct ntb_transport_qp *qp)
{
int rc, i;
uint64_t i;
int rc;
/*
* Limit the number of packets processed in a single interrupt to
@ -861,7 +862,7 @@ ntb_transport_rx(struct ntb_transport_qp *qp)
*/
mtx_lock(&qp->transport->rx_lock);
CTR0(KTR_NTB, "RX: transport_rx");
for (i = 0; i < NTB_RX_MAX_PKTS; i++) {
for (i = 0; i < qp->rx_max_entry; i++) {
rc = ntb_process_rxc(qp);
if (rc != 0) {
CTR0(KTR_NTB, "RX: process_rxc failed");