MFC r280134:

Report ARAT (APIC-Timer-always-running) feature for virtual CPU.

This makes FreeBSD guest to not avoid using LAPIC timer, preferring HPET
due to worries about non-existing for virtual CPUs deep sleep states.

Benchmarks of usleep(1) on guest and host show such extra latencies:
 - 51us for virtual HPET,
 - 22us for virtual LAPIC timer,
 - 22us for host HPET and
 - 3us for host LAPIC timer.
This commit is contained in:
mav 2015-03-30 07:11:49 +00:00
parent 1d0629a91f
commit 3e11976044

View File

@ -361,6 +361,12 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id,
break;
case CPUID_0000_0006:
regs[0] = CPUTPM1_ARAT;
regs[1] = 0;
regs[2] = 0;
regs[3] = 0;
break;
case CPUID_0000_000A:
/*
* Handle the access, but report 0 for