Wie, um zu bestimmen, timer-Frequenz in linux
Schreiben brauche ich ein kernel-Modul zu berechnen, Linux-Kernel-Timer (Interrupt) Frequenz .
jemand sagte mir, ich muss verwenden Sie einen timer in mein Modul aber ich weiß nicht, wie zu tun, dass Sie klar 🙁
Mein Ziel ist, die schreiben das Ergebnis (die Frequenz) in eine Datei ( z.B.: /proc/osfreq/) .
=)
- Die kernel-timer-interrupt-Frequenz ist bereits definiert als
HZ
im<asm/param.h>
- Ich muss zu log-It ' s real-time Wert es in eine Datei
- dein Ziel ist mir nicht klar, wollen Sie schreiben ein Modul, das verwendet kernel timer oder wollen Sie mal wie oft einige interrupt Auftritt?
- Sie sollte nicht sehen, variation in der Anzahl der Zyklen pro Zeitraum angegeben, sondern nur jitter-das heißt die variable interrupt-Latenzzeit. Wenn Sie wollen, experimentelle Messungen, Sie müssen etwas zu Messen. Oft ist dies mit einer Plattform-spezifische Referenz, zum Beispiel eine CPU-Zyklus-Zähler. Natürlich werden solche Metriken hängt von Taktrate und den Energiesparmodus, so dass Sie nur benutzt werden können, unter kontrollierten Umständen, mit vollem Bewusstsein von den system state.
- Ich will ein Kernelmodul schreiben, so berechnen Sie den aktuellen kernel timer Frequenz. Nur, dass
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es viele Möglichkeiten, um die cpu-Zeit, Frequenz:
bedeutet 250 Hz
bedeutet, es sind 4 logische CPUs, deren Frequenz: 43986424 - 43986173 ~=250.
Außerdem können Sie den Wert von var cpu_khz in proc.c im kernel-space.
grep Timer
stattgrep LOC
.Können Sie einfach drucken Sie die Globale variable HZ den Wert in das Modul
Verwendung von printk, und überprüfen Sie die kernel-log nach dem laden des Moduls mit $dmesg, dann finden Sie den Wert von HZ.