freebsd-dev/sys/dev/hwpmc
Matt Macy 6161b98c99 hwpmc: Implement per-thread counters for PMC sampling
This implements per-thread counters for PMC sampling. The thread
descriptors are stored in a list attached to the process descriptor.
These thread descriptors can store any per-thread information necessary
for current or future features. For the moment, they just store the counters
for sampling.

The thread descriptors are created when the process descriptor is created.
Additionally, thread descriptors are created or freed when threads
are started or stopped. Because the thread exit function is called in a
critical section, we can't directly free the thread descriptors. Hence,
they are freed to a cache, which is also used as a source of allocations
when needed for new threads.

Approved by:	sbruno
Obtained from:	jtl
Sponsored by:	Juniper Networks, Limelight Networks
Differential Revision:	https://reviews.freebsd.org/D15335
2018-05-16 22:29:20 +00:00
..
hwpmc_amd.c hwpmc(9): Make pmclog buffer pcpu and update constants 2018-05-12 01:26:34 +00:00
hwpmc_amd.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_arm64_md.c
hwpmc_arm64.c
hwpmc_arm64.h
hwpmc_arm.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_armv7.c
hwpmc_armv7.h
hwpmc_core.c hwpmc(9): Make pmclog buffer pcpu and update constants 2018-05-12 01:26:34 +00:00
hwpmc_core.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_e500.c hwpmc(9): Make pmclog buffer pcpu and update constants 2018-05-12 01:26:34 +00:00
hwpmc_intel.c hwpmc(9): Make pmclog buffer pcpu and update constants 2018-05-12 01:26:34 +00:00
hwpmc_logging.c hwpmc: don't reference domain index with no memory backing it 2018-05-14 06:11:25 +00:00
hwpmc_mips24k.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_mips74k.c
hwpmc_mips.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_mod.c hwpmc: Implement per-thread counters for PMC sampling 2018-05-16 22:29:20 +00:00
hwpmc_mpc7xxx.c hwpmc(9): Make pmclog buffer pcpu and update constants 2018-05-12 01:26:34 +00:00
hwpmc_octeon.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_pentium.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_pentium.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_piv.c hwpmc(9): Make pmclog buffer pcpu and update constants 2018-05-12 01:26:34 +00:00
hwpmc_piv.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_powerpc.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_powerpc.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_ppc970.c hwpmc(9): Make pmclog buffer pcpu and update constants 2018-05-12 01:26:34 +00:00
hwpmc_ppro.c hwpmc(9): Make pmclog buffer pcpu and update constants 2018-05-12 01:26:34 +00:00
hwpmc_ppro.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_riscv.h
hwpmc_soft.c hwpmc(9): Make pmclog buffer pcpu and update constants 2018-05-12 01:26:34 +00:00
hwpmc_soft.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_sparc64.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_tsc.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_tsc.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_uncore.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_uncore.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_x86.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_xscale.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_xscale.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
pmc_events.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00