IA64 7.2-RC2 in HP Integrity Virtual Machine

Marcel Moolenaar xcllnt at mac.com
Wed May 6 16:22:28 UTC 2009


On May 6, 2009, at 7:30 AM, Zahemszky Gábor wrote:

>> I believe there's a problem with mpt(4) that relates to
>> its error recovery, or lack thereof.
>>
>> Can you send a backtrace so that we can confirm or de-
>> bunk that statement?
>
> Hi!
>
> here it is. (sorry for the ESC-sequences, it is the virtual machine's
> EFI boot loader)
>
> Attached.

Ok. It's not mpt(4). It looks like it's the VM itself
that's the problem. The page fault is the result of a
clobbered r17.

Looking at the registers and the source code, as well
as the assembly I conclude that writes to the region
registers (which are virtualized) cause a trap in the
VM and the context is not properly saved or restored.
I conclude this based on r16 being 1 (we've had 1
iteration of the loop on line 2220 in file
sys/ia64/ia64/pmap.c (assuming r16 is not clobbered).
This means we had at least 1 write to the region
register.
r17 is initialized to (&pm->pm_rid[0]) and since the
load has a post-increment of 4, it "walks" the pm_rid
array. It never has a value of 1. So, r17 must have
been clobbered, because it's never assigned 1 in the
program.

So either the VM is buggy, or you need explicit support
for the VM in the guest OS by design.

FYI,

-- 
Marcel Moolenaar
xcllnt at mac.com





More information about the freebsd-stable mailing list