Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Nov 2019 07:26:20 -0000
From:      Gary Jennejohn <gljennjohn@gmail.com>
To:        Warner Losh <imp@bsdimp.com>
Cc:        Michael Gmelin <freebsd@grem.de>, "Rodney W. Grimes" <freebsd-rwg@gndrsh.dnsmgr.net>, "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org>
Subject:   Re: Killing Giant for 13
Message-ID:  <20191127082615.7c59857c@ernst.home>
In-Reply-To: <CANCZdfoOXXd88kaJtkHfkfmdCkv2WnoXZBNedjyEOb8jxGK==A@mail.gmail.com>
References:  <CANCZdfr0CpDBQ6QWJ_CTtOLW6EwAke_Vr_imqa5=GBzRAoa6eA@mail.gmail.com> <201911260917.xAQ9Hcf1001914@gndrsh.dnsmgr.net> <CANCZdfowGPBgp14aaJ15GnYOkRb_C91AeRqFY-axqu%2BCOScz8w@mail.gmail.com> <20191126193555.047a63cf@bsd64.grem.de> <20191126194750.3ff939c3@ernst.home> <CANCZdfoOXXd88kaJtkHfkfmdCkv2WnoXZBNedjyEOb8jxGK==A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 26 Nov 2019 15:23:17 -0700
Warner Losh <imp@bsdimp.com> wrote:

> On Tue, Nov 26, 2019 at 11:47 AM Gary Jennejohn <gljennjohn@gmail.com>
> wrote:
> 
> > On Tue, 26 Nov 2019 19:35:55 +0100
> > Michael Gmelin <freebsd@grem.de> wrote:
> >  
> > > On Tue, 26 Nov 2019 11:21:20 -0700
> > > Warner Losh <imp@bsdimp.com> wrote:
> > >
> > >  
> > > > However, the hpt27xx driver turns out not to be Giant locked on
> > > > versions of FreeBSD >= 10. So it's off the list.  
> > >
> > > Is that a real list that could be made publicly available, so users can
> > > check if any of the hardware they use will be affected?
> > >  
> >
> > cd /usr/src/sys
> > grep -Rl D_NEEDGIANT (assuming the user has the right permissions)
> >
> > Drivers which use GIANT have this somewhere in their code.
> >
> > I found 30 C file hits in HEAD.
> >  
> 
> Yea, about 25 drivers, 5 of which look to be trivial to change over, some
> already have. It used to be the case that all dev_t's in the tree were
> marked NEEDGIANT because they did things like check permissions or other
> such things that required Giant and this was easier than narrowing it down
> to just the little bit of code that needed it...
> 
> And then there's all the interrupt handlers that aren't marked MPSAFE...
> how to grep for that? I think I may invent a NEEDS_GIANT sort of thing in
> preference to MPSAFE.
> 
> And then there's sysctl proc handlers not marked safe. Same notion as the
> interrupt handlers.
> 
> And finally all the direct use of the Giant lock, most of which I'll
> replace by a bus_lock()/bus_unlock() API, or are for the kbd / console mess
> (which I'll likely replace with another wrapper), and then the odd driver
> that needs Giant for some reason (I think there's 2 or 3 of these).
> 

I could maybe use something like bus_lock()/bus_unlock() in the
rtsx driver because the OpenBSD code stil uses splxxx()s and I'm
not sure how to replace them.

> That's the audit I wanted to get done before posting next steps.
> 


-- 
Gary Jennejohn



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