exception handling in kernel code

John Baldwin jhb at freebsd.org
Mon Aug 14 18:49:43 UTC 2006


On Monday 14 August 2006 09:47, Stanislav Sedov wrote:
> On Mon, 14 Aug 2006 09:32:57 -0400
> John Baldwin <jhb at freebsd.org> mentioned:
> > 
> > You can make use of pcb_onfault to recover from a page fault, but that's
> > about it.  Kernel code is expected to not generate exceptions. :)
> > 
> 
> Thanks a lot! I'll try it.
> 
> To clarify:
> 
> I've implemented driver to allow user-level code to read MSRs (Model
> specific registers) (like linux's /dev/cpu/msr). It's required for
> some programs like x86info.
> 
> As long as not all MSRs documented and reading/writing unexistent MSR
> leads to GP fault, I need to recover in that case.

Hmm pcb_onfault won't help with this (it does PF#, not GP#).  You will have to 
hack trap() to provide some sort of fallback for your case.

-- 
John Baldwin


More information about the freebsd-hackers mailing list