freebsd-dev/sys/x86
Konstantin Belousov 83a288f434 Fix automatic eventtimer hardware selection when ARAT
(APIC-Timer-always-running) is not implemented.

If machine has ncpus >= 8 and non-FSB interrupt routing from HPET,
default HPET eventtimer quality 450 is reduced by 100, i.e. it is
350. On the other hand, LAPIC default quality is 600 and it is reduced
by 200 if ARAT is not reported. We end up with HPET quality 350 <
LAPIC quality 400, despite ARAT is not set.  Then, since deep Cx
states are active by default, eventtimer fail.

E.g., on Nehalem Core i7 CPU and X58 chipset, LAPIC only works in
C0/C1/C1E and HPET does not implement FSB mode, which otherwise
requires manual switch to HPET to get working system.

Set LAPIC eventtimer quality to 100 if no ARAT.
While there, do not ignore deadlint TSC mode for LAPIC timer if ARAT
is not implemented.  If user manually selected LAPIC eventtimer on
such CPU, there is no reason to not use deadline if available and not
disabled administratively.

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2016-11-26 10:33:53 +00:00
..
acpica Merge ACPICA 20160930. 2016-10-04 20:27:15 +00:00
bios
cpufreq Add powerd(8) support for several families of AMD CPUs. 2016-10-27 21:31:56 +00:00
include MFamd64: Add bounds checks on addresses used with /dev/mem. 2016-10-27 21:23:14 +00:00
iommu Add additional constants. 2016-08-09 19:02:14 +00:00
isa Add an EARLY_AP_STARTUP option to start APs earlier during boot. 2016-05-14 18:22:52 +00:00
pci Convert rman to use rman_res_t instead of u_long 2016-01-27 02:23:54 +00:00
x86 Fix automatic eventtimer hardware selection when ARAT 2016-11-26 10:33:53 +00:00
xen Fix improper use of "its". 2016-11-08 23:59:41 +00:00