Lines Matching +full:system +full:- +full:on +full:- +full:module
1 .\" Copyright (c) 2003-2008 Joseph Koshy
26 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
39 .Bd -ragged -offset indent
44 .Bd -ragged -offset indent
48 To load the driver as a module at boot time:
49 .Bd -literal -offset indent
54 .Bd -ragged -offset indent
62 .Bd -ragged -offset indent
75 The driver supports multi-processor systems.
83 Subsequent operations on the allocated PMC use this handle to denote
88 PMCs may be allocated with process or system scope.
89 .Bl -tag -width ".Em Process-scope"
90 .It Em "Process-scope"
92 to a process it is attached to is scheduled on a CPU.
93 .It Em "System-scope"
95 measures hardware events for the system as a whole.
99 .Bl -tag -width ".Em Counting"
104 system call on all architectures.
117 .Bl -tag -width indent
118 .It Process-scope, counting
120 scheduled on a CPU.
128 .It Process-scope, sampling
139 .It System-scope, counting
142 The current count on these PMCs can be read using the
149 .It System-scope, sampling
151 they are allocated on, and will write the sample to a log for further
160 System-wide statistical sampling can only be enabled by a process with
161 super-user privileges.
166 Processes may mix allocations of system-wide and process-private
178 Process-private PMCs need to be attached to a target process before
189 operation on an as yet unattached PMC will cause it to be attached
193 .Bl -bullet -compact
195 A non-jailed process with super-user privileges is allowed to attach
196 to any other process in the system.
213 .Bl -tag -width indent
222 This modifier is valid only for a PMC being allocated in process-private
227 This modifier is valid only for a PMC being allocated in process-private
232 seen by the target process when it was scheduled on the CPU.
234 This modifier is valid only for a PMC being allocated in process-private
238 will maintain per-process counts for each target process attached to
241 the accumulated per-process count for that process will be written to the
261 .Bl -tag -width ".Dv SIGBUS"
265 operation was attempted on a process-private PMC that does not have
274 address in the CPUs in a system.
279 .Bl -tag -width ".Dv PMC_DISP_STANDALONE" -compact
282 either of system scope or process scope allocation requests.
288 disabled or are in use by system scope PMCs.
289 Non-disabled hardware counters in such a row may be used
290 for satisfying system scope allocation requests.
304 driver operates using a system call number that is dynamically
310 .Bl -tag -width indent
329 Retrieve information about the highest possible CPU number for the system,
332 Retrieve module statistics (for analyzing the behavior of
338 Retrieve information about the current state of the PMCs on a
355 scheduled on a CPU.
386 system call.
387 .Bl -tag -width indent
392 The PMC needs to be in process-private mode and allocated without the
405 system call.
406 .Bl -tag -width indent
411 The PMC needs to be in process-private mode and allocated without the
424 .Bl -tag -width indent
425 .It Va kern.hwpmc.callchaindepth Pq integer, read-only
428 .It Va kern.hwpmc.debugflags Pq string, read-write
436 .It Va kern.hwpmc.hashsize Pq integer, read-only
440 .It Va kern.hwpmc.logbuffersize Pq integer, read-only
445 .It Va kern.hwpmc.mincount Pq integer, read-write
448 .It Va kern.hwpmc.mtxpoolsize Pq integer, read-only
451 .It Va kern.hwpmc.nbuffers_pcpu Pq integer, read-only
456 .It Va kern.hwpmc.nsamples Pq integer, read-only
457 The number of entries in the per-CPU ring buffer used during sampling.
459 .It Va security.bsd.unprivileged_syspmcs Pq boolean, read-write
460 If set to non-zero, allow unprivileged processes to allocate system-wide
463 .It Va security.bsd.unprivileged_proc_debug Pq boolean, read-write
477 The kernel driver requires all physical CPUs in an SMP system to have
480 On platforms that sparsely number CPUs and which support hot-plugging
481 of CPUs, requests that specify non-existent or disabled CPUs will fail
483 Applications allocating system-scope PMCs need to be aware of
486 Historically, on the x86 architecture,
495 only a subset of hardware events on a per-logical CPU basis.
496 Consequently, if HTT is enabled on a system with Intel Pentium P4
499 driver will reject allocation requests for process-private PMCs that
503 .Bl -diag
511 .It "hwpmc: kernel version (0x%x) does not match module version (0x%x)."
512 The module loading process failed because a version mismatch was detected
513 between the currently executing kernel and the module being loaded.
515 The module loading process failed because the currently executing kernel
535 module can be configured to record trace entries using the
543 module after adding the following to the kernel config:
544 .Bd -literal -offset indent
554 variable, which provides fine-grained control over which types of events are
561 .Bl -tag -width "sampling" -compact -offset indent
569 Machine-dependent/class-dependent events
570 .It module
584 .Bd -ragged -offset indent
622 The string should contain a space-separated list of event specifiers.
624 (=), followed by a comma-separated list of minor event types.
631 .Bd -literal -offset indent
636 .Bd -literal -offset indent
641 .Bd -literal -offset indent
647 and can be inspected at run-time using the
656 .Bl -tag -width Er
669 process-private PMCs.
673 operation was requested on an active system mode PMC.
682 request writing a new value was issued on a PMC that was active.
686 request was issued on a PMC that was active.
699 operation was requested on a system-wide sampling PMC without a log
723 request to de-configure a log file was issued without a log file
758 request for a process-private PMC.
764 request for a system-wide PMC.
775 request for a process-private PMC was issued for an event that does
776 not support counting on a per-logical CPU basis.
778 A PMC allocated for system-wide operation was specified with a
804 operation was requested for a PMC not in process-virtual mode, or
814 The system was not able to allocate kernel memory.
828 operation specified allocation of a system-wide PMC on an absent or
835 request was issued for a system-wide PMC that was allocated on a CPU
844 A sampling mode PMC was requested on a CPU lacking an APIC.
848 request was issued by a process without super-user
849 privilege or by a jailed super-user process.
859 operation was issued on a PMC whose MSR has been retrieved using
872 request specified a non-existent process ID.
904 at the time of initialization (i.e., at module load time).
909 On the i386 architecture, the driver requires that the local APIC on the
911 Many single-processor motherboards keep the APIC disabled in BIOS; on
916 PMCs may be used to monitor the actual behavior of the system on hardware.
919 .Bl -enum
926 This ensures that unprivileged processes cannot allocate system-wide
927 PMCs and thus cannot observe the hardware behavior of the system
947 System administrators should note that on IA-32 platforms
949 makes the content of the IA-32 TSC counter available to all processes