On Mon, 17 Jul 2000, Zhihui Zhang wrote:

> 
> I am writing a KLD that gives me kernel fault each time I run 'ps' command
> after 'make unload'.  The KLD has a system call to create several kernel
> threads by calling kthread_create(). During unload, I set flags to each
> threads so that they will call exit1() upon wakeup (sleep on a timeout).  
> Before the last thread calls exit1(), it wakeup the kld unload process so
> that make 'unload' can finish. Is there anything wrong or better
> solutions?
> 
> I also use vm_zone to allocate some data structes within the KLD. When
> unloading, I can use zfree() to free them except the zone header that I
> can not free(some_zone, M_ZONE).  This is because M_ZONE is defined as
> *static* in vm_zone.c I wonder if this will cause memory leak after
> several loading and unloading the KLD.
> 
> Finally, I want to know how to save the panic screen without hand writing
> it down.  Any info on debugging under db> after fault?
> 
> Any help is appreciated.

Thanks to those who have helped me privately.  It is not a good idea to
use zone allocator with KLD.  You must clear everything before unloading
the KLD. Any kernel threads can be reparented to initproc to avoid 'ps'
panic.

-Zhihui



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

Reply via email to