On Tue, 23 Jul 2002, Peter Wemm wrote:

   [snip]

> Thanks for the independent confirmation.  Here's a workaround patch
> that you might like to try:
> 
> --- kern_thread.c       17 Jul 2002 23:43:55 -0000      1.8
> +++ kern_thread.c       22 Jul 2002 23:31:06 -0000
> @@ -198,7 +198,7 @@
>  
>         thread_zone = uma_zcreate("THREAD", sizeof (struct thread),
>             thread_ctor, thread_dtor, thread_init, thread_fini,
> -           UMA_ALIGN_CACHE, 0);
> +           UMA_ALIGN_CACHE, UMA_ZONE_NOFREE);
>  }
>  
>  /*
> 
> I haven't paniced yet with that change. :-) For some unknown reason,
> selwakeup() is dereferencing pointers to threads that have long gone and
> the backing store has been freed.  The patch above is a bandaid, not a
> solution.  It basically prevents threads ever being freed back to the
> general pool, even though everything here supposedly does not need that.
> (unlike struct proc and socket, for example).

   Thanks a lot, patch applied, and all is going fine. Peter: I knew you
   would come up with a solution :) 
   (well, feel free to call it bandaid, but it solves the problem BTW)

   - yann

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to