exception handling in kernel code

Attilio Rao attilio at freebsd.org
Tue Aug 22 10:36:42 UTC 2006


2006/8/14, Stanislav Sedov <ssedov at mbsd.msk.ru>:
> 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.

Mmm, I think that a better approach would be refering to different
MSRs tables for pentium, p6 and Pentium 4 (if I remind correctly they
are which show differences). It is more extensible, portable and
possibly cleaner (I.E: you could port automatically to openbsd/netbsd,
adding new table and make minimum modifies, etc.)

You could find differences in the tables in the Intel manual (vol. 3)
and for undocumented MSRs (if I remind correctly) you could find
informations here:
http://www.x86.org/articles/p5msr/pentiummsrs.htm

or similar sites.


Attilio


-- 
Peace can only be achieved by understanding - A. Einstein


More information about the freebsd-hackers mailing list