Re: [PATCH 1/1] [virt] virtio-blk: Use ida to allocate disk index
From: Greg KH <gregkh@suse.de>
Date: 2011-06-08 23:45:30
On Thu, Jun 09, 2011 at 08:51:05AM +0930, Rusty Russell wrote:
On Wed, 08 Jun 2011 09:08:29 -0400, Mark Wu [off-list ref] wrote:quoted
Hi Rusty, Yes, I can't figure out an instance of disk probing in parallel either, but as per the following commit, I think we still need use lock for safety. What's your opinion? commit 4034cc68157bfa0b6622efe368488d3d3e20f4e6 Author: Tejun Heo [off-list ref] Date: Sat Feb 21 11:04:45 2009 +0900 [SCSI] sd: revive sd_index_lock Commit f27bac2761cab5a2e212dea602d22457a9aa6943 which converted sd to use ida instead of idr incorrectly removed sd_index_lock around id allocation and free. idr/ida do have internal locks but they protect their free object lists not the allocation itself. The caller is responsible for that. This missing synchronization led to the same id being assigned to multiple devices leading to oops.I'm confused. Tejun, Greg, anyone can probes happen in parallel? If so, I'll have to review all my drivers.
I know we've tried it in the past, at the PCI device level, and ran into some issues, but I don't remember if that code ever made it into the mainline kernel or not. greg k-h