[PATCH] NVMe: do not touch sq door bell if nvmeq has been suspended
From: Wenbo Wang <hidden>
Date: 2016-02-09 11:22:04
In most cases, rcu read lock is just a preempt_disable, which is what get_cpu does. I don't see any risk. -----Original Message----- From: Keith Busch [mailto:keith.busch@intel.com] Sent: Monday, February 8, 2016 11:02 PM To: Wenbo Wang Cc: Jens Axboe; Wenbo Wang; linux-kernel at vger.kernel.org; linux-nvme at lists.infradead.org; Wenwei.Tao Subject: Re: [PATCH] NVMe: do not touch sq door bell if nvmeq has been suspended On Sat, Feb 06, 2016@02:32:24PM +0000, Wenbo Wang wrote:
Keith, Is the following solution OK? synchronize_rcu guarantee that no queue_rq is running concurrently with device disable code. Together with your another patch (adding blk_sync_queue), both sync/async path shall be handled correctly. Do you think synchronize_rcu shall be added to blk_sync_queue?
I was nearly going to suggest the same last week, but it feels wrong since no one takes rcu_read_lock in the path we're trying to sychronoize. Is this safe if the task is interrupted?