On Wed, May 07, 2014 at 07:35:13PM -0300, Marcelo Tosatti wrote:
On Tue, May 06, 2014 at 03:27:20PM +0200, Ján Tomko wrote:
> Not yet merged in upstream QEMU:
>
https://lists.gnu.org/archive/html/qemu-devel/2014-04/msg05024.html
>
> Add support for invariant TSC timer running at constant rate in
> all ACPI P-, C- and T-states.
>
> It can be enabled by specifying:
> <clock>
> <timer name='invtsc' present='yes'/>
> </clock>
> in the domain XML.
>
> Migration and saving the domain does not work with this timer.
>
> The support for this timer is indicated by bit 8 of EDX after calling
> CPUID with 0x80000007. It does not show up in /proc/cpuinfo [1]
> and since we're calling qemu without 'enforce', it doesn't error
> out if the host doesn't support this.
It is not a timer, really, but a CPU flag.
> Alternatively, we could expose it in libvirt as a cpu flag:
> <cpu mode='custom' match='exact'>
> <model fallback='forbid'>qemu64</model>
> <feature policy='require' name='invtsc'/>
> </cpu>
Would prefer that option. Can't one modify QEMU's "-cpu" parameters,
via
libvirt XML?
> or maybe add +invtsc to qemu args when the 'nonstop_tsc' flag is
> requested?
No, since it blocks migration better not condition "+invtsc" on
presence of 'nonstop_tsc' flag.
Simply adding
<feature name='invtsc'>
<cpuid function='0x80000007' edx='0x00000100'/>
</feature>
To cpu_map.xml is sufficient to allow users to enable
this feature on demand ?
Haven't thought about all the corner cases, though.