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

Re: [Xen-devel] [QUERY] lguest64

On 08/05/2013 09:50 AM, Konrad Rzeszutek Wilk wrote:
>>> Let me iterate down what the experimental patch uses:
>>>          struct pv_init_ops pv_init_ops;                                    
>>>             [still use xen_patch, but I think that is not needed anymore]
>>>          struct pv_time_ops pv_time_ops;                                    
>>>             [we need that as we are using the PV clock source]
>>>          struct pv_cpu_ops pv_cpu_ops;                                      
>>>             [only end up using cpuid. This one is a tricky one. We could
>>>              arguable remove it but it does do some filtering - for example
>>>              THERM is turned off, or MWAIT if a certain hypercall tells us 
>>> to
>>>              disable that. Since this is now a trapped operation this could 
>>> be
>>>              handled in the hypervisor - but then it would be in charge of
>>>              filtering certain CPUID - and this is at bootup - so there is 
>>> not
>>>              user interaction. This needs a bit more of thinking]
>> read_msr/write_msr in this one make all msr accesses safe. IIRC there
>> are MSRs that Linux uses without checking cpuid bits.
>> IA32_PERF_CAPABILITIES for instance is used without checking PDCM bit.
> Right, those are needed as well. Completly forgot about them.

CPUID is not too bad.  RDMSR/WRMSR is actually worse since there are
some MSRs which are performance-critical.  The really messy pvops are
the memory-related ones, as they don't match the hardware behavior.

Similarly, beyond pvops, what new assumptions does this code add to the
code base?


Xen-devel mailing list



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