diff options
Diffstat (limited to 'static/freebsd/man4/eventtimers.4 3.html')
| -rw-r--r-- | static/freebsd/man4/eventtimers.4 3.html | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/static/freebsd/man4/eventtimers.4 3.html b/static/freebsd/man4/eventtimers.4 3.html deleted file mode 100644 index 098d782e..00000000 --- a/static/freebsd/man4/eventtimers.4 3.html +++ /dev/null @@ -1,130 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">EVENTTIMERS(4)</td> - <td class="head-vol">Device Drivers Manual</td> - <td class="head-rtitle">EVENTTIMERS(4)</td> - </tr> -</table> -<div class="manual-text"> -<section class="Sh"> -<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> -<p class="Pp"><code class="Nm">eventtimers</code> — - <span class="Nd">kernel event timers subsystem</span></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> -<p class="Pp">Kernel uses several types of time-related devices, such as: real - time clocks, time counters and event timers. Real time clocks responsible - for tracking real world time, mostly when system is down. Time counters are - responsible for generation of monotonically increasing timestamps for - precise uptime tracking purposes, when system is running. Event timers are - responsible for generating interrupts at specified time or periodically, to - run different time-based events. This page is about the last.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">Kernel uses time-based events for many different purposes: - scheduling, statistics, time keeping, profiling and many other things, based - on <a class="Xr">callout(9)</a> mechanism. These purposes now grouped into - three main callbacks:</p> -<dl class="Bl-tag"> - <dt id="hardclock"><a class="permalink" href="#hardclock"><code class="Fn">hardclock</code></a>()</dt> - <dd><a class="Xr">callout(9)</a> and timekeeping events entry. Called with - frequency defined by <var class="Va">hz</var> variable, usually - 1000Hz.</dd> - <dt id="statclock"><a class="permalink" href="#statclock"><code class="Fn">statclock</code></a>()</dt> - <dd>statistics and scheduler events entry. Called with frequency about - 128Hz.</dd> - <dt id="profclock"><a class="permalink" href="#profclock"><code class="Fn">profclock</code></a>()</dt> - <dd>profiler events entry. When enabled, called with frequency about - 8KHz.</dd> -</dl> -<p class="Pp">Different platforms provide different kinds of timer hardware. The - goal of the event timers subsystem is to provide unified way to control that - hardware, and to use it, supplying kernel with all required time-based - events.</p> -<p class="Pp">Each driver implementing event timers, registers them at the - subsystem. It is possible to see the list of present event timers, like - this, via <var class="Va">kern.eventtimer</var> sysctl:</p> -<div class="Bd Pp Li"> -<pre>kern.eventtimer.choice: HPET(550) LAPIC(400) i8254(100) RTC(0) -kern.eventtimer.et.LAPIC.flags: 15 -kern.eventtimer.et.LAPIC.frequency: 0 -kern.eventtimer.et.LAPIC.quality: 400 -kern.eventtimer.et.i8254.flags: 1 -kern.eventtimer.et.i8254.frequency: 1193182 -kern.eventtimer.et.i8254.quality: 100 -kern.eventtimer.et.RTC.flags: 17 -kern.eventtimer.et.RTC.frequency: 32768 -kern.eventtimer.et.RTC.quality: 0 -kern.eventtimer.et.HPET.flags: 7 -kern.eventtimer.et.HPET.frequency: 14318180 -kern.eventtimer.et.HPET.quality: 550</pre> -</div> -<p class="Pp">where:</p> -<dl class="Bl-inset"> - <dt id="kern.eventtimer.et."><var class="Va">kern.eventtimer.et.</var><var class="Ar">X</var><var class="Va">.flags</var></dt> - <dd>is a bitmask, defining event timer capabilities: - <div class="Bd-indent"> - <dl class="Bl-tag Bl-compact"> - <dt>1</dt> - <dd>periodic mode supported,</dd> - <dt>2</dt> - <dd>one-shot mode supported,</dd> - <dt>4</dt> - <dd>timer is per-CPU,</dd> - <dt>8</dt> - <dd>timer may stop when CPU goes to sleep state,</dd> - <dt>16</dt> - <dd>timer supports only power-of-2 divisors.</dd> - </dl> - </div> - </dd> - <dt id="kern.eventtimer.et.~2"><var class="Va">kern.eventtimer.et.</var><var class="Ar">X</var><var class="Va">.frequency</var></dt> - <dd>is a timer base frequency,</dd> - <dt id="kern.eventtimer.et.~3"><var class="Va">kern.eventtimer.et.</var><var class="Ar">X</var><var class="Va">.quality</var></dt> - <dd>is an integral value, defining how good is this timer, comparing to - others.</dd> -</dl> -<p class="Pp">Timers management code of the kernel chooses one timer from that - list. Current choice can be read and affected via - <var class="Va">kern.eventtimer.timer</var> tunable/sysctl. Several other - tunables/sysctls are affecting how exactly this timer is used:</p> -<dl class="Bl-inset"> - <dt id="kern.eventtimer.periodic"><var class="Va">kern.eventtimer.periodic</var></dt> - <dd>allows to choose periodic and one-shot operation mode. In periodic mode, - periodic interrupts from timer hardware are taken as the only source of - time for time events. One-shot mode instead uses currently selected time - counter to precisely schedule all needed events and programs event timer - to generate interrupt exactly in specified time. Default value depends of - chosen timer capabilities, but one-shot mode is preferred, until other is - forced by user or hardware.</dd> - <dt id="kern.eventtimer.singlemul"><var class="Va">kern.eventtimer.singlemul</var></dt> - <dd>in periodic mode specifies how much times higher timer frequency should - be, to not strictly alias - <a class="permalink" href="#hardclock~2"><code class="Fn" id="hardclock~2">hardclock</code></a>() - and - <a class="permalink" href="#statclock~2"><code class="Fn" id="statclock~2">statclock</code></a>() - events. Default values are 1, 2 or 4, depending on configured HZ - value.</dd> - <dt id="kern.eventtimer.idletick"><var class="Va">kern.eventtimer.idletick</var></dt> - <dd>makes each CPU to receive every timer interrupt independently of whether - they busy or not. By default this options is disabled. If chosen timer is - per-CPU and runs in periodic mode, this option has no effect - all - interrupts are always generating.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE - ALSO</a></h1> -<p class="Pp"><a class="Xr">apic(4)</a>, <a class="Xr">atrtc(4)</a>, - <a class="Xr">attimer(4)</a>, <a class="Xr">hpet(4)</a>, - <a class="Xr">timecounters(4)</a>, <a class="Xr">eventtimers(9)</a></p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">March 13, 2012</td> - <td class="foot-os">FreeBSD 15.0</td> - </tr> -</table> |
