Check out my first novel, midnight's simulacra!
X86 timing: Difference between revisions
From dankwiki
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
* Linux clocksources vs clockevents | |||
* PIT -- Programmable Interval Timer (eg [http://en.wikipedia.org/wiki/Intel_8253 Intel 8253]) | * PIT -- Programmable Interval Timer (eg [http://en.wikipedia.org/wiki/Intel_8253 Intel 8253]) | ||
* [[ACPI]] counter | * [[ACPI]] counter | ||
Line 7: | Line 8: | ||
[recombinator](0) $ </pre> | [recombinator](0) $ </pre> | ||
* TSC since Pentium | * TSC since Pentium | ||
* | ==Real Time Clocks== | ||
* [http://fxr.watson.org/fxr/source/Documentation/rtc.txt?v=linux-2.6 Linux docs] | |||
** [[ACPI]] standardized the <tt>cmos-rtc</tt> type, extending the Motorola MC146818 ([http://cateee.net/lkddb/web-lkddb/RTC_DRV_CMOS.html CONFIG_RTC_DRV_CMOS at the LKDD]) | ** [[ACPI]] standardized the <tt>cmos-rtc</tt> type, extending the Motorola MC146818 ([http://cateee.net/lkddb/web-lkddb/RTC_DRV_CMOS.html CONFIG_RTC_DRV_CMOS at the LKDD]) | ||
<pre>[recombinator](0) $ cat /proc/driver/rtc | <pre>[recombinator](0) $ cat /proc/driver/rtc | ||
Line 24: | Line 26: | ||
batt_status : okay | batt_status : okay | ||
[recombinator](0) $ </pre> | [recombinator](0) $ </pre> | ||
* Linux | * Multiple RTC's might exist in a machine, thus Linux's "RTC Class" | ||
** Each RTC gets a device node (by default, <tt>/dev/rtc*</tt> | |||
** If [sysfs] is enabled, each gets an entry at <tt>/sys/class/rtc/*/</tt>: | |||
<pre>[recombinator](0) $ ls /sys/class/rtc/rtc0/ | <pre>[recombinator](0) $ ls /sys/class/rtc/rtc0/ | ||
date device name since_epoch time wakealarm | date device name since_epoch time wakealarm | ||
dev max_user_freq power subsystem uevent | dev max_user_freq power subsystem uevent | ||
[recombinator](0) $ </pre> | [recombinator](0) $ </pre> |
Revision as of 07:51, 27 June 2009
- Linux clocksources vs clockevents
- PIT -- Programmable Interval Timer (eg Intel 8253)
- ACPI counter
- LAPIC counter
- HPET. Unprivileged programmability is limited by /proc/sys/dev/hpet/max-user-freq (in Hz):
[recombinator](1) $ cat /proc/sys/dev/hpet/max-user-freq 64 [recombinator](0) $
- TSC since Pentium
Real Time Clocks
- Linux docs
- ACPI standardized the cmos-rtc type, extending the Motorola MC146818 (CONFIG_RTC_DRV_CMOS at the LKDD)
[recombinator](0) $ cat /proc/driver/rtc rtc_time : 07:43:30 rtc_date : 2009-06-27 alrm_time : **:00:00 alrm_date : ****-**-** alarm_IRQ : no alrm_pending : no 24hr : yes periodic_IRQ : no update_IRQ : no HPET_emulated : yes DST_enable : no periodic_freq : 1024 batt_status : okay [recombinator](0) $
- Multiple RTC's might exist in a machine, thus Linux's "RTC Class"
- Each RTC gets a device node (by default, /dev/rtc*
- If [sysfs] is enabled, each gets an entry at /sys/class/rtc/*/:
[recombinator](0) $ ls /sys/class/rtc/rtc0/ date device name since_epoch time wakealarm dev max_user_freq power subsystem uevent [recombinator](0) $