abort question

Christoph Hellwig hch at infradead.org
Thu Jun 11 06:24:46 PDT 2015


On Thu, Jun 11, 2015 at 09:12:54AM -0400, Matthew Wilcox wrote:
> On Thu, Jun 11, 2015 at 03:46:03AM -0700, Christoph Hellwig wrote:
> > Don't we need to reserve a request and SQ entry to that we can
> > always send an abort?  Otherwise a lockded up controller will never
> > send a abort and always just reset the timer, and never escalate
> > to a controller reset.
> 
> Aborts are sent on the admin queue, not the IO queue.  There should
> always be plenty of space on the admin queue.

The default admin queue has 256 entries, of which we reserve one for the
AEN command.  I've been hacking up a NVMe command fuzzer that sends
semi-random [1] commands to a device, and I manage to reproduce a case
where it seems like aborts don't make progress.  I haven't fully sorted
it out yet, but it seems like aborts don't happen.

[1] I had to black list commands like I/O CQ/SQ deletion as that crashes
the driver pretty reliably.



More information about the Linux-nvme mailing list