freebsd-skq/sys/dev/hwpmc
kib ac70750c65 hwpmc/core: Adopt to upcoming Skylake TSX errata.
The forthcoming microcode update will fix a TSX bug by clobbering PMC3
when TSX instructions are executed (even speculatively).  There is an
alternate mode where CPU executes all TSX instructions by aborting
them, in which case PMC3 is still available to OS.  Any code that
correctly uses TSX must be ready to handle abort anyway.

Since it is believed that FreeBSD population of hwpmc(4) users is
significantly larger than the population of TSX users, switch the
microcode into TSX abort mode whenever a pmc is allocated, and back to
bug avoidance mode when the last pmc is deallocated.

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2019-03-12 19:33:25 +00:00
..
hwpmc_amd.c Add aditional counter descriptions to AMD 0x17 2018-11-04 06:24:27 +00:00
hwpmc_amd.h Add aditional counter descriptions to AMD 0x17 2018-11-04 06:24:27 +00:00
hwpmc_arm64_md.c
hwpmc_arm64.c
hwpmc_arm64.h
hwpmc_arm.c hwpmc: remove dangling references to hwpmc_xscale 2018-06-08 20:39:49 +00:00
hwpmc_armv7.c
hwpmc_armv7.h
hwpmc_core.c hwpmc/core: Adopt to upcoming Skylake TSX errata. 2019-03-12 19:33:25 +00:00
hwpmc_core.h
hwpmc_e500.c
hwpmc_intel.c
hwpmc_logging.c Add malloc_domainset(9) and _domainset variants to other allocator KPIs. 2018-10-30 18:26:34 +00:00
hwpmc_mips24k.c
hwpmc_mips74k.c
hwpmc_mips.c
hwpmc_mod.c hwpmc: Plug memory disclosures from PMC_OP_{GETPMCINFO,GETCPUINFO}. 2019-01-21 18:07:02 +00:00
hwpmc_mpc7xxx.c
hwpmc_octeon.c
hwpmc_powerpc.c
hwpmc_powerpc.h
hwpmc_ppc970.c
hwpmc_riscv.h
hwpmc_soft.c
hwpmc_soft.h
hwpmc_sparc64.c
hwpmc_tsc.c
hwpmc_tsc.h
hwpmc_uncore.c
hwpmc_uncore.h
hwpmc_x86.c
hwpmc_xscale.h Revert r336773: it removed too much. 2018-07-27 21:25:01 +00:00
pmc_events.h Revert r336773: it removed too much. 2018-07-27 21:25:01 +00:00