[PATCH 3/5] nvme: track shared namespaces

Sagi Grimberg sagi at grimberg.me
Thu Nov 9 04:59:50 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)) {
		...
--



More information about the Linux-nvme mailing list