[PATCH 3/5] nvme: track shared namespaces

Sagi Grimberg sagi at grimberg.me
Thu Nov 9 08:09:48 PST 2017


>>>>> To allow lockless path lookup the list of nvme_ns structures per
>>>>> nvme_ns_head is protected by SRCU, which requires freeing the nvme_ns
>>>>> structure through call_srcu.
>>>>
>>>> Can you remind me why isn't rcu sufficient? Can looking up a
>>>> path (ns from head->list) block?
>>>
>>> blk_mq_make_request can block.
>>
>> Oh I see, so can you explain why srcu should cover direct_make_request?
>>
>> What if we were to do:
>> --
>> 	rcu_read_lock();
>> 	ns = nvme_find_path(head);
>> 	rcu_read_unlock();
>> 	if (likely(ns)) {
>> 		...
>> --
> 
> That way we'd have to take and release a namespace reference for every I/O.

Yea,

I'm good,

Reviewed-by: Sagi Grimberg <sagi at grimberg.me>



More information about the Linux-nvme mailing list