Patch for nvidia-driver on current (panic: spin locks can only use
msleep_spin)
Craig Boston
cb at severious.net
Tue Oct 2 13:48:59 PDT 2007
Hi all, I did some more investigating and found what was causing the
nvidia driver to occasionally panic on my machine. It calls cv_wait(9)
using a spin mutex, which according to the man page is a no-no.
I simply changed the os_*_sema interfaces to use a standard mutex
instead. Tried running a bunch of glxgears and xscreensaver GL demos in
parallel and haven't been able to reproduce a panic since. As a bonus,
the 5 second pause I would sometimes get when a GL-based xscreensaver
process terminates seems to be gone as well.
There doesn't appear to be any documentation that I could find as to
what contexts those functions may be called from. I'm not a locking
guru, so I can't say for certain why a spin mutex was being used. Wild
guess: an artifact from the 4.x or 5.x code that may be obsoleted by
adaptive mutexes.
Patch is attached; cc danfe@ in case others report this problem to him.
Craig
More information about the freebsd-current
mailing list