MFC r348740-r348741, r348995r348740:Don't refer to the cpu variable in a KASSERT before initializing it.r348741:For armv6 and armv7, build hwpmc_armv7.c as well as the base hwpmc_arm.c.Submit
MFC r348740-r348741, r348995r348740:Don't refer to the cpu variable in a KASSERT before initializing it.r348741:For armv6 and armv7, build hwpmc_armv7.c as well as the base hwpmc_arm.c.Submitted by: Arnaud YSMAL <[email protected]>r348995:Don't attempt to include hwpmc support for armv6, we're missing some of thenecessary support functions in cpu-v6.h, and it may be that the only armv6platform we support (RPi, the bcm2835 SOC) is incapable of supporting hwpmc.Reported by: dim@
show more ...
hwpmc: remove unused pre-table driven bits for intelIntel now provides comprehensive tables for all performance countersand the various valid configuration permutations as text .json files.Libpmc
hwpmc: remove unused pre-table driven bits for intelIntel now provides comprehensive tables for all performance countersand the various valid configuration permutations as text .json files.Libpmc has been converted to use these and hwpmc_core has been greatlysimplified by moving to passthrough of the table values.The one gotcha is that said tables don't support pentium pro and and pentiumIV. There's very few users of hwpmc on _amd64_ kernels on new hardware. It isunlikely that anyone is doing low level optimization on 15 year old Intelhardware. Nonetheless, if someone feels strongly enough to populate thecorresponding tables for p4 and ppro I will reinstate the files in to thebuild.Code for the K8 counters and !x86 architectures remains unchanged.
sys/modules: normalize .CURDIR-relative paths to SRCTOPThis simplifies make output/logicTested with: `cd sys/modules; make ALL_MODULES=` on amd64MFC after: 1 monthSponsored by: Dell EMC Isilon
Add aarch64 files to the hwpmc(4) module buildThis was probably missed because FreeBSD/arm64 did not yet supportmodules when aarch64 support was added to hwpmc(4).Submitted by: andrew
Implement hwpmc(4) for Freescale e500 core.This supports e500v1, e500v2, and e500mc. Tested only on e500v2, but theperformance counters are identical across all, with e500mc having someadditional
Implement hwpmc(4) for Freescale e500 core.This supports e500v1, e500v2, and e500mc. Tested only on e500v2, but theperformance counters are identical across all, with e500mc having someadditional events.Relnotes: Yes
Remove ia64.This includes:o All directories named *ia64*o All files named *ia64*o All ia64-specific code guarded by __ia64__o All ia64-specific makefile logico Mention of ia64 in com
Remove ia64.This includes:o All directories named *ia64*o All files named *ia64*o All ia64-specific code guarded by __ia64__o All ia64-specific makefile logico Mention of ia64 in comments and documentationThis excludes:o Everything under contrib/o Everything under crypto/o sys/xen/interfaceo sys/sys/elf_common.hDiscussed at: BSDcan
Add missing file to Makefile.MFC after: 1 monthX-MFC-with: 261342
Refactor PowerPC hwpmc(4) driver into generic and specific. More refactoringwill likely be done as more drivers are added, since AIM-compatible processorshave similar PMC configuration logic.
Add software PMC support.New kernel events can be added at various location for sampling or counting.This will for example allow easy system profiling whatever the processor iswith known tools li
Add software PMC support.New kernel events can be added at various location for sampling or counting.This will for example allow easy system profiling whatever the processor iswith known tools like pmcstat(8).Simultaneous usage of software PMC and hardware PMC is possible, for examplelooking at the lock acquire failure, page fault while sampling oninstructions.Sponsored by: NETASQMFC after: 1 month
MFtbemd:Use MACHINE_CPUARCH in preference to MACHINE_ARCH. The former is thesource code location of the machine, the latter the binary output. Ingeneral, we want to use MACHINE_CPUARCH instead
MFtbemd:Use MACHINE_CPUARCH in preference to MACHINE_ARCH. The former is thesource code location of the machine, the latter the binary output. Ingeneral, we want to use MACHINE_CPUARCH instead of MACHINE_ARCH unlesswe're tesitng for a specific target. The isn't even moot fori386/amd64 where there's momemntum towards a MACHINE_CPUARCH == x86,although a specific cleanup for that likely would be needed...
Make kernel modules build correctly on 64-bit PowerPC.
- Support for uncore counting events: one fixed PMC with the uncore domain clock, 8 programmable PMC.- Westmere based CPU (Xeon 5600, Corei7 980X) support.- New man pages with events list for cor
- Support for uncore counting events: one fixed PMC with the uncore domain clock, 8 programmable PMC.- Westmere based CPU (Xeon 5600, Corei7 980X) support.- New man pages with events list for core and uncore.- Updated Corei7 events with Intel 253669-033US December 2009 doc. There is some removed events in the documentation, they have been kept in the code but documented in the man page as obsolete.- Offcore response events can be setup with rsp token.Sponsored by: NETASQ
- Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and model 0x1C (Atom). In these CPUs, the actual numbers, ki
- Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and model 0x1C (Atom). In these CPUs, the actual numbers, kinds and widths of PMCs present need to queried at run time. Support for specific "architectural" events also needs to be queried at run time. Model 0xE CPUs support programmable PMCs, subsequent CPUs additionally support "fixed-function" counters.- Use event names that are close to vendor documentation, taking in account that: - events with identical semantics on two or more CPUs in this family can have differing names in vendor documentation, - identical vendor event names may map to differing events across CPUs, - each type of CPU supports a different subset of measurable events. Fixed-function and programmable counters both use the same vendor names for events. The use of a class name prefix ("iaf-" or "iap-" respectively) permits these to be distinguished.- In libpmc, refactor pmc_name_of_event() into a public interface and an internal helper function, for use by log handling code.- Minor code tweaks: staticize a global, freshen a few comments.Tested by: gnn
- Separate PMC class dependent code from other kinds of machine dependencies. A 'struct pmc_classdep' structure describes operations on PMCs; 'struct pmc_mdep' contains one or more 'struct pmc_c
- Separate PMC class dependent code from other kinds of machine dependencies. A 'struct pmc_classdep' structure describes operations on PMCs; 'struct pmc_mdep' contains one or more 'struct pmc_classdep' structures depending on the CPU in question. Inside PMC class dependent code, row indices are relative to the PMCs supported by the PMC class; MI code in "hwpmc_mod.c" translates global row indices before invoking class dependent operations.- Augment the OP_GETCPUINFO request with the number of PMCs present in a PMC class.- Move code common to Intel CPUs to file "hwpmc_intel.c".- Move TSC handling to file "hwpmc_tsc.c".
Remove WARNS from here and compile with default kernel flags.
Remove Alpha remnants.
MFP4:- 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
MFP4:- 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.
Use the new path (post repo-copy) to our sources.
Bring a working snapshot of hwpmc(4), its associated libraries, userland utilitiesand documentation into -CURRENT.Bump FreeBSD_version.Reviewed by: alc, jhb (kernel changes)