Date: Thu, 4 Jan 2007 13:48:49 +0200 From: Kostik Belousov <kostikbel@gmail.com> To: Eugene Grosbein <eugen@kuzbass.ru> Cc: freebsd-hackers@freebsd.org Subject: Re: WITNESS & RELENG_6 Message-ID: <20070104114849.GH21325@deviant.kiev.zoral.com.ua> In-Reply-To: <20070104114327.GA81011@svzserv.kemerovo.su> References: <20070103141820.GA1014@grosbein.pp.ru> <200701031601.05541.jhb@freebsd.org> <20070104040727.GD21325@deviant.kiev.zoral.com.ua> <20070104103708.GF21325@deviant.kiev.zoral.com.ua> <20070104105208.GA78979@svzserv.kemerovo.su> <20070104110208.GG21325@deviant.kiev.zoral.com.ua> <20070104114327.GA81011@svzserv.kemerovo.su>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Thu, Jan 04, 2007 at 06:43:27PM +0700, Eugene Grosbein wrote:
> On Thu, Jan 04, 2007 at 01:02:08PM +0200, Kostik Belousov wrote:
>
> > Hmm, it needs 1.198 as well. Below is aggregated patch against RELENG_6.
> >
> > Index: kern_conf.c
> > ===================================================================
> > RCS file: /usr/local/arch/ncvs/src/sys/kern/kern_conf.c,v
> > retrieving revision 1.186.2.7
> > diff -u -r1.186.2.7 kern_conf.c
> > --- kern_conf.c 30 Oct 2006 15:43:56 -0000 1.186.2.7
> > +++ kern_conf.c 4 Jan 2007 10:59:33 -0000
> > @@ -676,16 +676,20 @@
> > dev->si_flags &= ~SI_CLONELIST;
> > }
> >
> > + dev->si_refcount++; /* Avoid race with dev_rel() */
> > csw = dev->si_devsw;
> > dev->si_devsw = NULL; /* already NULL for SI_ALIAS */
> > while (csw != NULL && csw->d_purge != NULL && dev->si_threadcount) {
> > - printf("Purging %lu threads from %s\n",
> > - dev->si_threadcount, devtoname(dev));
> > csw->d_purge(dev);
> > msleep(csw, &devmtx, PRIBIO, "devprg", hz/10);
> > + if (dev->si_threadcount)
> > + printf("Still %lu threads in %s\n",
> > + dev->si_threadcount, devtoname(dev));
> > + }
> > + while (dev->si_threadcount != 0) {
> > + /* Use unique dummy wait ident */
> > + msleep(&csw, &devmtx, PRIBIO, "devdrn", hz / 10);
> > }
> > - if (csw != NULL && csw->d_purge != NULL)
> > - printf("All threads purged from %s\n", devtoname(dev));
> >
> > dev->si_drv1 = 0;
> > dev->si_drv2 = 0;
> > @@ -700,6 +704,7 @@
> > fini_cdevsw(csw);
> > }
> > dev->si_flags &= ~SI_ALIAS;
> > + dev->si_refcount--; /* Avoid race with dev_rel() */
> >
> > if (dev->si_refcount > 0) {
> > LIST_INSERT_HEAD(&dead_cdevsw.d_devs, dev, si_list);
>
> I've tried. Now machine just hangs if I try to switch from X to vty.
> It stays in graphics mode locked.
Does it crash when exiting glxgears/some video player ?
When hangs, does it answer ping/allow ssh connections ?
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (FreeBSD)
iD8DBQFFnOmhC3+MBN1Mb4gRAjryAKDLAszKpOORhnIB61ucTgRym4R01ACg0Tsg
EHwo2hiUQqg0CR/tPkcrh8s=
=0PT2
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070104114849.GH21325>
