[PATCH] NVMe: Defer namespace add_disk() until after char device creation

Jens Axboe axboe at kernel.dk
Fri Nov 14 20:44:23 PST 2014


On 2014-11-04 17:18, Sam Bradshaw wrote:
> In the current probe flow, each namespace gets an add_disk() then the
> char device for the controller is registered.  For misbehaving devices
> or namespace(s) that are not yet ready when add_disk() is called (eg.
> namespace accesses that return NVME_SC_NS_NOT_READY and are requeued),
> it can take time to disposition all the accesses.
>
> This change moves add_disk() after the char device is created to give
> manageability stacks an interface to query as IO flushes out.
>
> (I also considered deferring the nvme_ns_add() to an async context but
> that requires some sort of mutex between probe and remove to handle the
> surprise remove during add_disk condition and was messier than this
> patch)

I'd love to see this get added. You need the control char dev to fixup 
such bad situations, and it may never get created if we get stuck on 
trying to setup and probe the block parts.

Acked-by: Jens Axboe <axboe at fb.com>

-- 
Jens Axboe




More information about the Linux-nvme mailing list