[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [RFC] Overriding MSR values via xl.cfg



Sometimes, it is helpful to persuade a guest OS that it is running on
a particular CPU model, or that a CPU has (or does not have)
particular features.  For example, this may ease migrating guests
across a heterogeneous pool of systems.  Currently, via an xl.cfg file
you can specify specific masks or values to be returned for the CPUID
instruction.  This is an example of the syntax being used:

cpuid = [ '0:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0',
           '1:eax=0x06b1,
              ecx=xxxxxxxxxx0000xx00xxx0000000xx0,
              edx=xx00000xxxxxxx0xxxxxxxxx0xxxxxx',
           '4:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0',
  '0x80000000:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0']

MSRs provide another mechanism for a guest to collect information
about the system on which it is running.  For much the same reasons it
can be useful to change CPUID values returned to a guest, it could
also be useful to be able to override and specify particular MSR
values to be returned to a guest, and for this to be done via an
xl.cfg.  This would only affect RDMSR return values, and would not
affect WRMSR behavior.  The syntax in xl.cfg could be simlar to what
is used for CPUID.

Additionally, it seems like this capability would be useful for debug,
development, and testing of guest operating systems, or the Xen
hypervisor itself.

I think the current implementation for the CPUID instruction, both in
the hypervisor and toolchain, provides a reasonable prototype for
implementing the above functionality.  However, before I pursue this,
I wanted to gauge the acceptability of and interest in adding this
capability to Xen.

Thanks,
Eric

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.