freebsd-dev/sys/dev/hwpmc
Andriy Gapon 593077d613 pmc_process_csw_out: ignore deleted counters
I see the fllowing panic on AMD when exiting pmcstat:

panic: [pmc,1473] pp_pmcval outside of expected range cpu=2 ri=17
pp_pmcval=fffffffffa529f5b pm_reloadcount=10000

It seems that at least on AMD a performance counter keeps counting after
overflowing.  When pmcstat exits it sets counters that it used to
PMC_STATE_DELETED and waits until their use count goes to zero.
amd_intr() wouldn't reload a counter in that state and, thus, a counter
would be allowed to overflow.  That means that the counter's value would
be allowed to go outside the expected range.

MFC after:	2 weeks
2016-11-10 11:12:45 +00:00
..
hwpmc_amd.c hwpmc: fix a race between amd_stop_pmc and amd_intr 2016-10-30 09:38:10 +00:00
hwpmc_amd.h
hwpmc_arm64_md.c
hwpmc_arm64.c
hwpmc_arm64.h
hwpmc_arm.c
hwpmc_armv7.c
hwpmc_armv7.h
hwpmc_core.c Apply the fix from r232612 to fixed function counters. 2016-08-03 16:52:00 +00:00
hwpmc_core.h sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
hwpmc_e500.c Remove unused e500_event_codes_size. 2016-04-20 20:37:58 +00:00
hwpmc_intel.c Add support for Intel Skylake and Intel Broadwell PMC's. The Broadwell PMC's have been 2015-11-30 17:35:49 +00:00
hwpmc_logging.c hwpmc: remove sys/capability.h backwards compatibility 2016-09-20 12:56:03 +00:00
hwpmc_mips24k.c sys: use our nitems() macro when param.h is available. 2016-04-21 19:40:10 +00:00
hwpmc_mips74k.c sys: use our nitems() macro when param.h is available. 2016-04-21 19:40:10 +00:00
hwpmc_mips.c Cleanup unnecessary semicolons from the kernel. 2016-04-10 23:07:00 +00:00
hwpmc_mod.c pmc_process_csw_out: ignore deleted counters 2016-11-10 11:12:45 +00:00
hwpmc_mpc7xxx.c Remove slightly used const values that can be replaced with nitems(). 2016-04-21 15:38:28 +00:00
hwpmc_octeon.c sys: use our nitems() macro when param.h is available. 2016-04-21 19:40:10 +00:00
hwpmc_pentium.c
hwpmc_pentium.h
hwpmc_piv.c Remove misc NULL checks after M_WAITOK allocations. 2016-05-10 10:26:07 +00:00
hwpmc_piv.h
hwpmc_powerpc.c e5500 HWPMC is identical to e500mc, so add support check for it. 2016-01-17 00:14:22 +00:00
hwpmc_powerpc.h
hwpmc_ppc970.c
hwpmc_ppro.c
hwpmc_ppro.h
hwpmc_riscv.h Welcome the RISC-V 64-bit kernel. 2016-01-29 15:12:31 +00:00
hwpmc_soft.c
hwpmc_soft.h
hwpmc_sparc64.c
hwpmc_tsc.c
hwpmc_tsc.h
hwpmc_uncore.c Remove slightly used const values that can be replaced with nitems(). 2016-04-21 15:38:28 +00:00
hwpmc_uncore.h
hwpmc_x86.c
hwpmc_xscale.c Remove slightly used const values that can be replaced with nitems(). 2016-04-21 15:38:28 +00:00
hwpmc_xscale.h
pmc_events.h sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00