Lines Matching +full:hardware +full:- +full:configured

1 .\" Copyright (c) 2003-2008 Joseph Koshy
36 .Nd "Hardware Performance Monitoring Counter support"
39 .Bd -ragged -offset indent
44 .Bd -ragged -offset indent
49 .Bd -literal -offset indent
54 .Bd -ragged -offset indent
62 .Bd -ragged -offset indent
71 driver virtualizes the hardware performance monitoring facilities in
75 The driver supports multi-processor systems.
89 .Bl -tag -width ".Em Process-scope"
90 .It Em "Process-scope"
93 .It Em "System-scope"
95 measures hardware events for the system as a whole.
99 .Bl -tag -width ".Em Counting"
101 In counting modes, the PMCs count hardware events.
107 In sampling modes, the PMCs are configured to sample the CPU
110 hardware events have been observed.
116 configured to operate in one of the following four modes:
117 .Bl -tag -width indent
118 .It Process-scope, counting
119 These PMCs count hardware events whenever a thread in their attached process is
128 .It Process-scope, sampling
130 have seen the configured number of hardware events.
136 Log files are configured using the
139 .It System-scope, counting
140 These PMCs count hardware events seen by them independent of the
149 .It System-scope, sampling
156 Log files are configured using the
160 System-wide statistical sampling can only be enabled by a process with
161 super-user privileges.
164 Processes are allowed to allocate as many PMCs as the hardware and
166 Processes may mix allocations of system-wide and process-private
178 Process-private PMCs need to be attached to a target process before
193 .Bl -bullet -compact
195 A non-jailed process with super-user privileges is allowed to attach
213 .Bl -tag -width indent
222 This modifier is valid only for a PMC being allocated in process-private
224 It signifies that the PMC will track hardware events for its
227 This modifier is valid only for a PMC being allocated in process-private
231 will log a record containing the number of hardware events
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
242 configured log file.
256 cannot be started until their owner process has configured a log file.
261 .Bl -tag -width ".Dv SIGBUS"
265 operation was attempted on a process-private PMC that does not have
273 A PMC row is defined as the set of PMC resources at the same hardware
279 .Bl -tag -width ".Dv PMC_DISP_STANDALONE" -compact
281 Hardware counters in this row are free and may be use to satisfy
284 Hardware counters in this row are in use by process scope PMCs
287 Some hardware counters in this row have been administratively
289 Non-disabled hardware counters in such a row may be used
291 No process scope PMCs will use hardware counters in this row.
310 .Bl -tag -width indent
323 to a configured output file.
330 and the number of hardware performance monitoring counters available per CPU.
342 the hardware PMCs managed by the
367 This operation is valid only for PMCs configured in counting modes.
387 .Bl -tag -width indent
392 The PMC needs to be in process-private mode and allocated without the
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
478 identical performance monitoring counter hardware.
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
495 only a subset of hardware events on a per-logical CPU basis.
499 driver will reject allocation requests for process-private PMCs that
500 request counting of hardware events that cannot be counted separately
503 .Bl -diag
516 was not configured with the required configuration option
535 module can be configured to record trace entries using the
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
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
668 request for a set of hardware resources currently in use for
669 process-private PMCs.
678 PMC using the same hardware resources attached to it.
690 operation was requested without a log file being configured for a
699 operation was requested on a system-wide sampling PMC without a log
700 file being configured.
723 request to de-configure a log file was issued without a log file
724 being configured.
728 request was issued without a log file being configured.
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
812 configured.
819 operation was requested for hardware that does not support reading
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
848 request was issued by a process without super-user
849 privilege or by a jailed super-user process.
872 request specified a non-existent process ID.
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
943 to any process other than itself and thus cannot observe the hardware
947 System administrators should note that on IA-32 platforms
949 makes the content of the IA-32 TSC counter available to all processes