opnsense-src/sys/dev/hwpmc
Konstantin Belousov c6d31b8306 AST: rework
Make most AST handlers dynamically registered.  This allows to have
subsystem-specific handler source located in the subsystem files,
instead of making subr_trap.c aware of it.  For instance, signal
delivery code on return to userspace is now moved to kern_sig.c.

Also, it allows to have some handlers designated as the cleanup (kclear)
type, which are called both at AST and on thread/process exit.  For
instance, ast(), exit1(), and NFS server no longer need to be aware
about UFS softdep processing.

The dynamic registration also allows third-party modules to register AST
handlers if needed.  There is one caveat with loadable modules: the
code does not make any effort to ensure that the module is not unloaded
before all threads processed through AST handler in it.  In fact, this
is already present behavior for hwpmc.ko and ufs.ko.  I do not think it
is worth the efforts and the runtime overhead to try to fix it.

Reviewed by:	markj
Tested by:	emaste (arm64), pho
Discussed with:	jhb
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D35888
2022-08-02 21:11:09 +03:00
..
hwpmc_amd.c hwpmc: Fix amd/arm64/armv7/uncore sampling overflow race 2022-01-10 14:30:05 +00:00
hwpmc_amd.h hwpmc : fix AMD perf counter MSR access 2019-11-07 19:54:24 +00:00
hwpmc_arm.c pmc_save_user_callchain: eliminate write only td variable 2022-04-04 22:29:33 -06:00
hwpmc_arm64.c Support of optional PMC classes. 2022-06-26 08:55:09 +03:00
hwpmc_arm64.h arm64: Fix finding the pmc event ID 2021-04-08 07:52:21 +00:00
hwpmc_arm64_md.c hwpmc_arm64: remove write only variables and the computations they do 2022-04-05 21:42:05 -06:00
hwpmc_armv7.c hwpmc: Use __diagused for variables only used in KASSERT(). 2022-04-13 16:08:22 -07:00
hwpmc_armv7.h
hwpmc_cmn600.c hwpmc: further fix build (__diagused/debug/missing files entries) 2022-06-27 01:36:52 +00:00
hwpmc_cmn600.h Allocate event for DMC-620 and CMN-600 controllers PMU. Add events supported by DMC-620 and CMN-600 controllers PMU. 2022-06-26 21:52:26 +03:00
hwpmc_core.c hwpmc: Reenable PME before reenabling counters. 2022-06-15 11:48:38 -04:00
hwpmc_core.h hwpmc: Bump Intel's IA32_PERFEVTSELx width to 64 bits. 2022-06-02 13:08:55 -04:00
hwpmc_dmc620.c hwpmc: further fix build (__diagused/debug/missing files entries) 2022-06-27 01:36:52 +00:00
hwpmc_dmc620.h pmc: unhide struct pmc_md_dmc620_pmu_op_pmcallocate 2022-06-27 00:37:23 +00:00
hwpmc_e500.c hwpmc: consistently validate PMC class in allocation method 2021-08-30 16:12:59 -03:00
hwpmc_intel.c hwpmc: Add IDs for few more Intel Atom CPUs. 2022-06-02 22:55:42 -04:00
hwpmc_logging.c Adjust pcmlog_{initialize,shutdown}() definitions to avoid clang 15 warning 2022-07-21 21:05:50 +02:00
hwpmc_mod.c Fix unused variable warnings in hwpmc_mod.c 2022-07-21 21:05:51 +02:00
hwpmc_mpc7xxx.c ppc hwpmc: Remove unused variables. 2022-04-12 14:58:58 -07:00
hwpmc_power8.c hwpmc: consistently validate PMC class in allocation method 2021-08-30 16:12:59 -03:00
hwpmc_powerpc.c hwpmc: Make powerpc memory allocation alike to x86. 2022-06-01 14:53:04 -04:00
hwpmc_powerpc.h hwpmc: Make powerpc memory allocation alike to x86. 2022-06-01 14:53:04 -04:00
hwpmc_ppc970.c ppc hwpmc: Remove unused variables. 2022-04-12 14:58:58 -07:00
hwpmc_riscv.h Welcome the RISC-V 64-bit kernel. 2016-01-29 15:12:31 +00:00
hwpmc_soft.c AST: rework 2022-08-02 21:11:09 +03:00
hwpmc_soft.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_tsc.c hwpmc: don't validate capabilities in allocation method 2021-08-30 16:12:59 -03:00
hwpmc_tsc.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
hwpmc_uncore.c hwpmc: Skip GLOBAL_CTRL updates on stop_pmc(). 2022-06-02 18:35:55 -04:00
hwpmc_uncore.h hwpmc: Bump Intel's IA32_PERFEVTSELx width to 64 bits. 2022-06-02 13:08:55 -04:00
hwpmc_x86.c Adjust pcm_md_initialize() definition to avoid clang 15 warning 2022-07-21 21:05:50 +02:00
pmc_events.h Allocate event for DMC-620 and CMN-600 controllers PMU. Add events supported by DMC-620 and CMN-600 controllers PMU. 2022-06-26 21:52:26 +03:00
pmu_dmc620.c The Arm CoreLink DMC-620 Dynamic Memory Controller PMU driver 2022-06-26 21:57:56 +03:00
pmu_dmc620_reg.h Allocate event for DMC-620 and CMN-600 controllers PMU. Add events supported by DMC-620 and CMN-600 controllers PMU. 2022-06-26 21:52:26 +03:00