Hi all,
I am receiving an error on a VT HVM, which appears
to be located in the function xc_translate_foreign_address.
Running the xenctx tool on a VT HVM (xen-testing
3.0.2) it returns:
# ./xenctx -f 1
eip: c027b646
esp:
c0441ed4
eax: 000000c4 ebx: c0495300 ecx:
000001f7 edx: 000001f7
esi: c0495394 edi:
00000000 ebp: c027fec0
cs: 00000060 ds:
0000007b fs: 00000000 gs:
00000033
Stack:
failed to map PT
failed to map
page.
Upon inspection, the value of cr3 in
xc_translate_foreign_address (after the line cr3 = ctx.ctrlreg[3]) is set to be
0 if the xenctx tool is run immediately after the system is booted and a domU is
created. However, if I wait until after I see the second "(XEN) HVM_PIT:
guest freq in cycles="<some value> in the xen dmesg, the value of cr3 is
then set to a value. However, the error shown above remains the
same.
Running the same command on a non-VT machine (32bit
non-PAE) (xen-testing 3.0.2) it returns:
# ./xenctx -f 1
eip: b7e4a547
esp:
bfc26164
eax: 080f6968 ebx: b7bdcff4 ecx:
b7f16ff4 edx: 080f6968
esi: b7dec6a0 edi:
00000000 ebp: bfc26164
cs: 00000073 ds:
0000007b fs: 00000000 gs:
00000033
Stack:
bfc26184 b7bd8551 080f6968 b7bdbb2d
bfc2618c b7bdcff4 b7dec6a0 b7f19098
......
etc.
Cr3 is immediately set on this machine and the
xenctx command completes successfully.
It appears that this stems from a problem of
mapping the CR3 register to the mfn on the VT HVM -- this operation
successfully completes on the non-VT machine, however, it doesn't resolve
correctly for VT HVM.
Does anyone else have this issue?
Thanks,
~Chris