summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_pmc.c
Commit message (Collapse)AuthorAgeFilesLines
* Add software PMC support.fabient2012-03-281-0/+161
| | | | | | | | | | | | | New kernel events can be added at various location for sampling or counting. This will for example allow easy system profiling whatever the processor is with known tools like pmcstat(8). Simultaneous usage of software PMC and hardware PMC is possible, for example looking at the lock acquire failure, page fault while sampling on instructions. Sponsored by: NETASQ MFC after: 1 month
* Commit the support for removing cpumask_t and replacing it directly withattilio2011-05-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cpuset_t objects. That is going to offer the underlying support for a simple bump of MAXCPU and then support for number of cpus > 32 (as it is today). Right now, cpumask_t is an int, 32 bits on all our supported architecture. cpumask_t on the other side is implemented as an array of longs, and easilly extendible by definition. The architectures touched by this commit are the following: - amd64 - i386 - pc98 - arm - ia64 - XEN while the others are still missing. Userland is believed to be fully converted with the changes contained here. Some technical notes: - This commit may be considered an ABI nop for all the architectures different from amd64 and ia64 (and sparc64 in the future) - per-cpu members, which are now converted to cpuset_t, needs to be accessed avoiding migration, because the size of cpuset_t should be considered unknown - size of cpuset_t objects is different from kernel and userland (this is primirally done in order to leave some more space in userland to cope with KBI extensions). If you need to access kernel cpuset_t from the userland please refer to example in this patch on how to do that correctly (kgdb may be a good source, for example). - Support for other architectures is going to be added soon - Only MAXCPU for amd64 is bumped now The patch has been tested by sbruno and Nicholas Esborn on opteron 4 x 12 pack CPUs. More testing on big SMP is expected to came soon. pluknet tested the patch with his 8-ways on both amd64 and i386. Tested by: pluknet, sbruno, gianni, Nicholas Esborn Reviewed by: jeff, jhb, sbruno
* Add some FEATURE macros for various features (AUDIT/CAM/IPC/KTR/MAC/NFS/NTP/netchild2011-02-251-0/+2
| | | | | | | | | | | | | PMC/SYSV/...). No FreeBSD version bump, the userland application to query the features will be committed last and can serve as an indication of the availablility if needed. Sponsored by: Google Summer of Code 2010 Submitted by: kibab Reviewed by: arch@ (parts by rwatson, trasz, jhb) X-MFC after: to be determined in last commit with code from this project
* Support sparsely numbered CPUs.jkoshy2008-09-221-7/+84
| | | | Requested by: obrien, alfred (long ago)
* Kernel and hwpmc(4) support for callchain capture.jkoshy2007-12-071-3/+15
| | | | Sponsored by: FreeBSD Foundation and Google Inc.
* Fix -Wundef.ru2005-12-041-1/+1
|
* Fail the module loading process if the currently executing kerneljkoshy2005-07-301-7/+14
| | | | | | | | was not compiled with 'options HWPMC_HOOKS' or if the compiled-in version numbers of the kernel and module are out of sync. Reported by: cracauer MFC after: 3 days
* MFP4:jkoshy2005-06-091-1/+8
| | | | | | | | | | | | | | | | - Implement sampling modes and logging support in hwpmc(4). - Separate MI and MD parts of hwpmc(4) and allow sharing of PMC implementations across different architectures. Add support for P4 (EMT64) style PMCs to the amd64 code. - New pmcstat(8) options: -E (exit time counts) -W (counts every context switch), -R (print log file). - pmc(3) API changes, improve our ability to keep ABI compatibility in the future. Add more 'alias' names for commonly used events. - bug fixes & documentation.
* Kernel hooks to support PMC sampling modes.jkoshy2005-05-301-2/+4
| | | | Reviewed by: alc
* Do not conditionally compile the contents of this file upon whethermarcel2005-04-201-5/+0
| | | | | | | | | | | | HWPMC_HOOKS is defined. The pmc_cpu_is_*() functions in this file are referenced unconditionally by hwpmc(4). This is mostly a stop-gap. The pmc_cpu_is*() function should probably be declared inline in <sys/pmc.h> or <sys/pmckern.h> and the function pointers with corresponding SX lock should probably be moved to another file and compiled conditionally upon HWPMC_HOOKS. Ok'd by: jkoshy@
* Bring a working snapshot of hwpmc(4), its associated libraries, userland ↵jkoshy2005-04-191-0/+82
utilities and documentation into -CURRENT. Bump FreeBSD_version. Reviewed by: alc, jhb (kernel changes)
OpenPOWER on IntegriCloud