Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jun 2012 22:33:08 -0600
From:      "Kenneth D. Merry" <ken@FreeBSD.org>
To:        Alexander Motin <mav@FreeBSD.org>
Cc:        FreeBSD current <freebsd-current@FreeBSD.org>
Subject:   Re: minor GEOM disk API change coming
Message-ID:  <20120624043308.GA78807@nargothrond.kdm.org>
In-Reply-To: <4FE4A239.5030000@FreeBSD.org>
References:  <4FE4A239.5030000@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jun 22, 2012 at 19:50:01 +0300, Alexander Motin wrote:
> Hi.
> 
> I understand problem you are going to fix and I think your patch should 
> do it. What I don't very like is addition of new GEOM method. Now GEOM 
> doesn't need it because all internal open/close operations and provider 
> destructions there protected by the topology SX lock. Unluckily that 
> lock doesn't cover g_wither_provider(), called by disk_gone() while 
> holding CAM SIM lock. If not that SIM lock, it would be enough to just 
> grab and drop GEOM topology lock to ensure that no new open() calls will 
> follow. Indirect way to do it could be to post GEOM event that would 
> drop the reference as soon as it will be handled and can obtain the 
> topology lock. Unluckily it uses malloc() for event storage and also can 
> be unreliable if called from under the SIM mutex lock. So it seems many 
> things would be much easier if it was possible to drop SIM lock inside 
> periph invalidate method, but now it is unsafe
> 
> That is not an objection, just some thoughts about.

Yeah, there are things in CAM (and GEOM) that need to be cleaned up.  I
wouldn't have added a GEOM method if there were a reasonable way around it,
but as you pointed out, there isn't right now.

I committed the patch, and plan to merge it to stable/9.

Ken
-- 
Kenneth Merry
ken@FreeBSD.ORG



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120624043308.GA78807>