In message <2004...@green.homeunix.org>, Brian Fundakowski Feldma
On Tue, Jul 20, 2004 at 08:20:23PM +0200, Poul-Henning Kamp wrote:
I'm pulling hair out trying to make it guaranteed safe to unload device
driver modules, and the major pain here is to make sure there is no
thread stuck somewhere inside the code.
That gave me the idea for a simple little DIAGNOSTIC check for kldunload:
run through the proc/thread table and look for any thread with an
instruction counter inside the range of pages we are going to unload.
Any takers ?
You mean any thread with a stack trace that includes an instruction
counter inside those pages, don't you?
That would require us to unwind the stack which I think is overkill
for the purpose.
The most likely case is that the thread is sleeping on something
inside the kld so just checking the instruction pointer would be
Looking for sleep addresses inside the module might make sense too.
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
ph...@FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.