Dan,
This patch is intended to fully virtualize psr and ipsr on non-VTI
domain.
Following things are done in this patch.
1, previously when guest reads psr, it always get psr dt rt it equal to
1. that is because HV doesn't restore these information,
metaphysical_mode can't present all these information. I save these
information into privregs->vpsr. Thus guest can get correct information
about dt, rt and it.
2, when guest reads psr, we should only return low 32bits and 35 and 36
bits, previously return all bits.
3, when guest rsm and ssm psr, HV rsm and ssm some bits of current psr
which is used by HV, that is not correct, guest rsm and ssm should only
impact guest psr(that is regs->ipsr).
4, mistakenly uses guest DCR, guest DCR should impact guest psr when
injecting interruption into guest, but not impact guest ipsr.
When injecting interruption into guest,The current implementation is
Guest ipsr.be=guest dcr.be
Guest ipsr.pp=guest dcr.pp
Correct implementation should be,
Guest psr.be=guest dcr.be
Guest psr.pp=guest dcr.pp.
Because of above modifications, I turn off FAST_RFI, FAST_BREAK and
FAST_ACCESS_REFLECT.
Signed-off-by Anthony Xu < anthony.xu@xxxxxxxxx>
One question, why do we need to virtualize guest psr.pp and always set
guest psr.pp to 1?
Thanks
-Anthony
fullpsr.patch
Description: fullpsr.patch
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|