lpfc_nvme_wait_for_io_drain(9)
π lpfc_nvme_wait_for_io_drain(9) π
okay bestie, so this one's from the Kernel API Manual β yes, that Kernel API Manual, the big one β and it's about the very specific, very dramatic moment when NVMe work items justβ¦ gotta go. All of them. At once. π«Ά
πΈ NAME πΈ
lpfc_nvme_wait_for_io_drain β wait for all NVME wqes to complete β¨
Like, literally just sit there and wait until every single NVME wqe is done. No cap.
π¦ SYNOPSIS π¦
void lpfc_nvme_wait_for_io_drain (struct lpfc_hba *phba );
π ARGUMENTS π
phbaβ Pointer to HBA context object. that's it, that's the one argument, and it's giving "pointer to the HBA context object" energy π
β DESCRIPTION β
so here's the tea β β this function flushes all wqes in the nvme rings and frees all resources in the txcmplq. Boom. Cleaned up. Iconic behavior honestly.
But wait, there's a plot twist π β this function does NOT issue abort wqes for the IO commands sitting in txcmplq. Nope! They just get returned with IOERR_SLI_DOWN. That's their fate. No abort wqes for them, they simply get handed back with IOERR_SLI_DOWN and that's the whole vibe. π
And when does this whole situation happen? This function is invoked with EEH when the device's PCI slot has been permanently disabled. permanently. disabled. yeah. that's the main character moment nobody wants. π
fr fr, if you're seeing this called, the PCI slot situation is not cute β it's permanently disabled and we're just draining what's left. π«Ά
π SEE ALSO π
y'all are gonna want the whole friend group here, so let's list them all β no skipping, i would never π§
- Kernel file
./drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvme_create_queue(9)lpfc_nvme_delete_queue(9)lpfc_nvme_handle_lsreq(9)__lpfc_nvme_ls_req_cmp(9)__lpfc_nvme_ls_req(9)lpfc_nvme_ls_req(9)__lpfc_nvme_ls_abort(9)lpfc_nvme_ls_abort(9)lpfc_nvme_prep_io_cmd(9)lpfc_nvme_prep_io_dma(9)lpfc_nvme_fcp_io_submit(9)lpfc_nvme_abort_fcreq_cmpl(9)lpfc_nvme_fcp_abort(9)lpfc_release_nvme_buf(9)lpfc_nvme_create_localport(9)lpfc_nvme_destroy_localport(9)lpfc_sli4_nvme_pci_offline_aborted(9)lpfc_sli4_nvme_xri_aborted(9)lpfc_nvme_flush_abts_list(9)lpfc_nvmels_flush_cmd(9)
and that's the page bestie!! πβ¨ this one lives in ./drivers/scsi/lpfc, dated October 2026, and it's filed under lpfc_nvme_wait_for_io_drain(9) β mwah, go drain those wqes responsibly, ily ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms