Date: Wed, 01 Nov 2006 22:31:48 +0100 From: Gary Jennejohn <garyj@jennejohn.org> To: Giorgos Keramidas <keramida@freebsd.org> Cc: cvs-src@freebsd.org, Martin Blapp <mb@imp.ch>, Tor Egge <tegge@freebsd.org>, src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/kern kern_conf.c Message-ID: <200611012131.kA1LVmiJ000532@peedub.jennejohn.org> In-Reply-To: Message from Giorgos Keramidas <keramida@freebsd.org> of "Wed, 01 Nov 2006 22:19:41 %2B0200." <20061101201941.GC4417@kobe.laptop>
next in thread | previous in thread | raw e-mail | index | archive | help
Giorgos Keramidas writes: > On 2006-10-19 02:49, Giorgos Keramidas <keramida@freebsd.org> wrote: > > Maybe it's not related, but all xterm's seem unkillable and blocked > > forever in "devdrn" here, in a build from 2006.10.18.15.56.11. > > > > An earlier sync from 2006.10.13.12.45.54 didn't exhibit this behavior, > > so I guess there's something mildly buggy with this change? > > I still have to use the following local diff to get "killable" xterm > processes: > > % diff -r a61844fa2f23 sys/kern/kern_conf.c > % --- a/sys/kern/kern_conf.c Wed Nov 01 21:49:16 2006 +0200 > % +++ b/sys/kern/kern_conf.c Wed Nov 01 02:33:08 2006 +0200 > % @@ -676,7 +676,6 @@ destroy_devl(struct cdev *dev) > % 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) > { > % @@ -686,10 +685,6 @@ destroy_devl(struct cdev *dev) > % 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); > % - } > % > % dev->si_drv1 = 0; > % dev->si_drv2 = 0; > % @@ -704,7 +699,6 @@ destroy_devl(struct cdev *dev) > % 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); > > If it is related, at all, I am using `kern.pts.enable=1' here, and a > slightly modified GENERIC kernel config. The differences from GENERIC > are mostly removed SCSI devices and added options for the PF firewall, > but I can send a diff if needed. > Setting kern.pts.enable to 0 definitley makes a difference. xterm and mrxvt exit as one would expect. With it set to 1 I was also seeing the same problem you are. Looks like this change doesn't play nice with pts. > Has this been fixed in HEAD, in a way that I missed while looking at the > recent changes? > No, the problem still exists in a kernel which I just made from sources cvsup'd not long ago. Of course, there is a time lag between commits and updating of the mirrors. --- Gary Jennejohn / garyjATjennejohnDOTorg gjATfreebsdDOTorg garyjATdenxDOTde
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200611012131.kA1LVmiJ000532>