Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Sep 2004 18:00:54 -0400
From:      Brian Fundakowski Feldman <green@FreeBSD.org>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        arch@FreeBSD.org
Subject:   Re: cvs commit: src/sys/dev/usb ugen.c
Message-ID:  <20040908220054.GH928@green.homeunix.org>
In-Reply-To: <47831.1094677844@critter.freebsd.dk>
References:  <20040908.145846.71090050.imp@bsdimp.com> <47831.1094677844@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Sep 08, 2004 at 11:10:44PM +0200, Poul-Henning Kamp wrote:
> In message <20040908.145846.71090050.imp@bsdimp.com>, "M. Warner Losh" writes:
> >It turns out that Brian's change typically is the same as the old
> >code.  However, there are a few cases where it isn't:
> >
> >(1) Where the application doesn't close the device when it gets an
> >    error.  Stupid application, I know, but in this case the device
> >    never detaches.  This is one of the things that caused our
> >    appliction to die with the new code, but not the old code.  phk's
> >    work with deadfs and dev_t ref counting may help here.
> 
> The intent is that devfs will act as isolator for drivers which
> disintegrate, in other words, even if the application does not close
> and go away, devfs will make it go away from the drivers point of
> view.   The refcounting necessary is not in place currently, I ran
> into a funky detail and got derailed.
> 
> Problem is that we can't just declare that destroy_dev() will evict
> all threads because we do not know what they might be sleeping
> on/for while they are inside the driver.   A two phase scheme is
> necesary where the driver first blocks future entry, then evicts
> any threads already in there and then calls destroy_dev().
> 
> I've done some work on this based on the phk_tty branch in p4, but
> it was pretty exploratory.   The challenge with ttys is that the
> struct tty might referenced as controlling tty even after the last
> close.
> 
> Once I get this sorted out, I'll aim at getting phk_tty MFP4'ed.

FWIW, this is also interesting from a network driver standpoint
which has little to do with dev.  It would be nice to make all ifnets
devs....
</blue-sky>

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green@FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\



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