Was ist die Hardwarequelle für Kernel Clock?

491
Dzmitry Sankouski

Laut den Unterlagen meiner South Bridge (ICH9M) verfügt es über 4 HPET. Wie finde ich die Interrupt-Leitung, von der die Systemuhr (auch Kernel-Uhr, Software-Uhr genannt) stammt?

Scheint, dass es LOC ist, aber welcher Prozess handhabt es?

root@debian:/home/dzmitry# cat /proc/interrupts CPU0 CPU1  0: 58199 56542 IO-APIC-edge timer 1: 217 211 IO-APIC-edge i8042 8: 0 1 IO-APIC-edge rtc0 9: 3776 3843 IO-APIC-fasteoi acpi 12: 22136 21159 IO-APIC-edge i8042 16: 420 432 IO-APIC-fasteoi uhci_hcd:usb1, snd_hda_intel 18: 28371 27353 IO-APIC-fasteoi uhci_hcd:usb8, b43 19: 0 0 IO-APIC-fasteoi uhci_hcd:usb7 20: 1 1 IO-APIC-fasteoi ehci_hcd:usb3, uhci_hcd:usb5 21: 0 0 IO-APIC-fasteoi uhci_hcd:usb2 23: 29676 29608 IO-APIC-fasteoi ehci_hcd:usb4, uhci_hcd:usb6 46: 20440 5269 PCI-MSI-edge ahci 47: 93 66 PCI-MSI-edge snd_hda_intel 48: 2 2 PCI-MSI-edge eth0 49: 538 11493 PCI-MSI-edge nvidia NMI: 81 80 Non-maskable interrupts LOC: 147328 140053 Local timer interrupts SPU: 0 0 Spurious interrupts PMI: 81 80 Performance monitoring interrupts IWI: 4 6 IRQ work interrupts RTR: 0 0 APIC ICR read retries RES: 32270 32387 Rescheduling interrupts CAL: 936 914 Function call interrupts TLB: 6434 7000 TLB shootdowns TRM: 0 0 Thermal event interrupts THR: 0 0 Threshold APIC interrupts MCE: 0 0 Machine check exceptions MCP: 2 2 Machine check polls HYP: 0 0 Hypervisor callback interrupts ERR: 0 MIS: 0 

Hier ist meine irq Prozesse auf RT Kernel:

98 FF 95 135 - [irq/23-ehci_hcd] 96 FF 85 125 - [irq/16-uhci_hcd] 94 FF 85 125 - [irq/20-ehci_hcd] 56 FF 99 139 - [irq/8-rtc0] 55 FF 80 120 - [irq/1-i8042] 54 FF 79 119 - [irq/12-i8042] 3 TS - 19 0 [ksoftirqd/0] 36 FF 50 90 - [irq/9-acpi] 361 TS - 39 -20 [kvm-irqfd-clean] 340 FF 50 90 - [irq/19-i801_smb] 2317 FF 50 90 - [irq/32-eth0] 2264 FF 50 90 - [irq/16-snd_hda_] 2263 FF 50 90 - [irq/31-snd_hda_] 21 TS - 19 0 [ksoftirqd/1] 1501 FF 50 90 - [irq/33-nvidia] 120 FF 84 124 - [irq/18-uhci_hcd] 118 FF 83 123 - [irq/19-uhci_hcd] 115 FF 80 120 - [irq/23-uhci_hcd] 11569 TS - 19 0 grep irq 113 FF 82 122 - [irq/20-uhci_hcd] 11364 FF 49 89 - [irq/18-s-b43] 11363 FF 50 90 - [irq/18-b43] 1039 TS - 19 0 /usr/sbin/irqbalance --pid=/var/run/irqbalance.pid 101 FF 50 90 - [irq/30-0000:00:] 100 FF 81 121 - [irq/21-uhci_hcd] 
1

1 Antwort auf die Frage

0
dirkt

Ich nehme an, Sie meinen Kernel-Ticks (die Einheit ist Jiffies ). Die Quelle dafür ist in der Regel die LAPIC, auch wenn HPETs verfügbar sind. Und wenn ich es richtig verstehe, hat jede CPU einen eigenen Timer. Sehen Sie sich die Ausgabe von cat /proc/timer_listan, um die Konfiguration auf Ihrem System ( Tick Deviceam Ende) zu sehen.

Sie können auf die HPETs über den /dev/hpetUserspace zugreifen, wenn Sie sie benötigen.

Und ich bin wirklich neugierig, was Sie mit den Informationen anstellen wollen, die die Interrupt-Leitung eines bestimmten Timers verwendet.