Subject: Re: Kernel Exception "Page Not Present"
To: Marcel Moolenaar <firstname.lastname@example.org>
From: Cherry George Mathew <email@example.com>
Date: 02/27/2006 19:26:07
>>>>> "Marcel" == Marcel Moolenaar <firstname.lastname@example.org> writes:
Marcel> pmap_enter_vhpt() is a bit weird in that it really doesn't
Marcel> put the translation in the TC. It just adds the
Marcel> translation to the VHPT and takes a second trap to put it
Marcel> in the TC. This is really bogus as it just adds
Marcel> overhead. It's simpler though. In any case:
Hmm... I also just thought of the case where a VHPT entry may have
been entered in the VHPT, but really was not referenced. Saves
precious TLB entries.
Marcel> pmap_enter_vhpt() may have done its job, but the second
Sadly no... I wrote some printf() dump code and discovered that the
VHPT is empty.... so I think have a hot trail to pursue tonight.
Marcel> trap may not have found the translation in the VHPT. I
Marcel> don't know if exception.S has been taken verbatim...
Yes, I haven't added or removed anything from exception.S
Marcel> VHPT itself (i.e. region 7). Put differently region 5 is
Marcel> where VM managed memory comes from, while region 6 and 7
Marcel> are used by the machine dependent implementation to
Marcel> support the MI functionality.
I see some nominal savings ( like throwing out ia64_kptedir )
if we just managed everything within RR7. Maybe I don't see something
critically important here.
Marcel> Looking at pmap.c, I can't see any obvious clues. The
Marcel> first thing to do is figure out if the trap is normal or
Marcel> not. If it is, then the problem is in handling the trap
Marcel> and not in having the trap itself. Unfortunately, I can't
You're right. I haven't pulled in all the FreeBSD trap.c code. I've
deliberately not added the "Page Not Present" code, to stop the fault
in its tracks... don't want very complicated recursive faults when
things are very trackable at this stage of boot. I think of it as a
debug "feature" :-)
Marcel> The advantage of using SKI is that you can set breakpoints
Do you know if ski implements the VHPT walker at all ?
Marcel> I need to dig into the code more before I can be more
Marcel> helpful, I fear.
Would you like to have access to CVS ? Or shall I just put everything
up for download in a tarball release ?
Very Much, yes!
Marcel> You're in a perfect position right now to switch to 16KB
Marcel> pages. Just a thought.
Thats a great tip! Ultimately, I want to go one step ahead, and
provide true multipage size support, but looking at the rate things
are going, it may be a while before I get to it :-)