Re: [PATCH 3/5] nvme: track shared namespaces

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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@xxxxxxxxxxx>



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux