easy to reproduce unkillable threads

Julian Elischer julian at elischer.org
Wed Sep 29 13:45:11 PDT 2004



Andrew Gallatin wrote:

>Julian Elischer writes:
> > 
> > 
> > Andrew Gallatin wrote:
> > 
> > >David Xu writes:
> > >
> > > > Please tell me easiest way to reproduce it, I tried best to reproduce 
> > > > it, but still got nothing.
> > > > 
> > > > >> http://people.freebsd.org/~gallatin/threadlock.tgz
> > > > >>
> > > > I use this test case.
> > >
> > >Are you on an SMP?  Do you use an 'ssh $HOST skill -u $USER -9' to
> > >send the signal?
> > >
> > >Julian, you can reproduce it, right?
> > >
> > 
> > not yet..
> > 
> > am setting up a SMP test machine to try again..
>
>So far I've only had a chance to test under RELENG_5.
>Maybe some change you made recently fixed it..
>
>Drew
>

while you are about it.. try this:

diff -u -r1.199 kern_thread.c
--- kern/kern_thread.c  25 Sep 2004 00:53:46 -0000      1.199
+++ kern/kern_thread.c  29 Sep 2004 19:45:56 -0000
@@ -282,13 +282,13 @@
 * Initialize type-stable parts of a ksegrp (when newly created).
 */
static int
-ksegrp_init(void *mem, int size, int flags)
+ksegrp_ctor(void *mem, int size, int flags)
{
       struct ksegrp   *kg;

       kg = (struct ksegrp *)mem;
+       bzero(mem, size);
       kg->kg_sched = (struct kg_sched *)&kg[1];
-       /* sched_newksegrp(kg); */
       return (0);
}

@@ -369,7 +369,7 @@
       tid_zone = uma_zcreate("TID", sizeof(struct tid_bitmap_part),
           NULL, NULL, NULL, NULL, UMA_ALIGN_CACHE, 0);
       ksegrp_zone = uma_zcreate("KSEGRP", sched_sizeof_ksegrp(),
-           NULL, NULL, ksegrp_init, NULL,
+           ksegrp_ctor, NULL, NULL, NULL,
           UMA_ALIGN_CACHE, 0);
       kseinit();      /* set up kse specific stuff  e.g. upcall zone*/
}




More information about the freebsd-threads mailing list