Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/nvme/nvme_qpair.c
| Show First 20 Lines • Show All 1,131 Lines • ▼ Show 20 Lines | do_reset: | ||||
| } | } | ||||
| mtx_unlock(&qpair->lock); | mtx_unlock(&qpair->lock); | ||||
| if (idle || fast) | if (idle || fast) | ||||
| break; | break; | ||||
| /* | /* | ||||
| * There's a stale transaction at the start of the queue whose | * There's a stale transaction at the start of the queue whose | ||||
| * deadline has passed. Poll the competions as a last-ditch | * deadline has passed. Poll the competions as a last-ditch | ||||
| * effort in case an interrupt has been missed. | * effort in case an interrupt has been missed. Warn the user if | ||||
| * transactions were found of possible interrupt issues, but | |||||
| * just once per controller. | |||||
| */ | */ | ||||
| _nvme_qpair_process_completions(qpair); | if (_nvme_qpair_process_completions(qpair) && !ctrlr->isr_warned) { | ||||
| nvme_printf(ctrlr, "System interrupt issues?\n"); | |||||
| ctrlr->isr_warned = true; | |||||
| } | |||||
| /* | /* | ||||
| * Now that we've run the ISR, re-rheck to see if there's any | * Now that we've run the ISR, re-rheck to see if there's any | ||||
| * timed out commands and abort them or reset the card if so. | * timed out commands and abort them or reset the card if so. | ||||
| */ | */ | ||||
| mtx_lock(&qpair->lock); | mtx_lock(&qpair->lock); | ||||
| idle = true; | idle = true; | ||||
| TAILQ_FOREACH(tr, &qpair->outstanding_tr, tailq) { | TAILQ_FOREACH(tr, &qpair->outstanding_tr, tailq) { | ||||
| ▲ Show 20 Lines • Show All 451 Lines • Show Last 20 Lines | |||||