tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: LOCKDEBUG_BARRIER in mi_userret (was: Re: Another force unmount failure)
Date: Fri, 17 Jul 2015 21:17:43 +0200
From: manu%netbsd.org@localhost (Emmanuel Dreyfus)
Taylor R Campbell <campbell+netbsd-tech-kern%mumble.net@localhost> wrote:
> Since this is in genfs_lock, what happened here is almost certainly
> that you locked a vnode but didn't unlock it. Unfortunately,
> lockdebug does not provide a full stack trace, so you'll have to guess
> where the relevant vn_lock was.
If there any change to at least get the syscall number?
In theory, yes -- it is put on the stack when control enters the
syscall vector, and the `SPL NOT LOWERED AFTER EXIT' error gets at it,
in, e.g., arch/amd64/amd64/locore.S. But I'm not sure there's an easy
way to get at it otherwise. From a core dump, you could perhaps
grovel through the stack to find it, if you were dedicated enough.
As an alternative, I could imagine putting another LOCKDEBUG_BARRIER
inside sy_invoke, and modifying LOCKDEBUG_BARRIER to take a formatted
string which, in this case, would be used to show the syscall number.
Home |
Main Index |
Thread Index |
Old Index