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