cvs commit: src/sys/kern kern_conf.c

Gary Jennejohn garyj at jennejohn.org
Wed Nov 1 21:31:58 UTC 2006


Giorgos Keramidas writes:
> On 2006-10-19 02:49, Giorgos Keramidas <keramida at 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



More information about the cvs-src mailing list