[PATCH 04/47] block: provide a new BLK_EH_QUIESCED timeout return value
Christoph Hellwig
hch at infradead.org
Tue Nov 24 09:56:19 PST 2015
On Tue, Nov 24, 2015 at 11:34:22AM -0500, Jeff Moyer wrote:
> CPU 1 takes an interrupt for the completion of the same request:
>
> blk_complete_request():
> if (!blk_mark_rq_complete(req) || // this fails, as it's already marked complete
> test_and_clear_bit(REQ_ATOM_QUIESCED, &req->atomic_flags)) // this succeeds
and clears the flag, so we'd need a race betweem this call to
blk_mq_complete request and the later completion of all outstanding
commands from reset. For NVMe we ensure this by not taking completions
onc we start reset, but we probably need to document this better. I
will ensure all this is properly documented in the next version!
More information about the Linux-nvme
mailing list