Skip site navigation (1)Skip section navigation (2)
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>