Каков аппаратный источник Kernel Clock?

360
Dzmitry Sankouski

Согласно документам моего Южного моста (ICH9M) он имеет 4 HPET. Как я должен найти линию прерывания, из которой получены системные часы (или ядра ядра, программные часы)?

Кажется, что это LOC, но какой процесс это обрабатывает?

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 

Вот мои процессы IRQ на ядре RT:

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 ответ на вопрос

0
dirkt

Я предполагаю, что вы имеете в виду тики ядра (блок jiffies ). Источником для них обычно является LAPIC, даже если HPET доступны. И если я правильно понимаю, у каждого процессора есть свой таймер. Посмотрите на вывод, cat /proc/timer_listчтобы увидеть конфигурацию вашей системы ( Tick Deviceв конце).

Вы можете получить доступ к HPET через /dev/hpetпользовательское пространство, если они вам нужны.

И мне действительно любопытно, что вы намереваетесь делать с информацией о том, какую линию прерывания использует конкретный таймер.

Похожие вопросы