Jump to content

poiufdsapuroiq

Full Member
  • Gesamte Inhalte

    37
  • Benutzer seit

Reputation in der Community

0 Neutral
  1. Doch, das ist der Teil, der die "system"-Last erzeugt, im Kernel. "system"-Last ist auch besonders doof, da der Kernel nicht preemptive ist. Mit 2.6 wäre das nicht so dramatisch. Mit folgendem Skript erhöht sich die Kernel last (sys) bei mir um 3-5%: while sleep 1; do cat /proc/interrupts > /dev/null done Da du vermutlich öfters pollst (ich habe den Source nicht angeschaut), wirkt sich das durchaus bemerkbar aus. /proc/interrupts ist im Kernel relativ "teuer", auch weil es durchs VFS muß. Wenn du es unbedingt im Userspace pollen willst, dann mach einen ioctl (der dann nur den Zählerstand vom interrupt 8 zurückgibt) dafür in das aviaEXT Device, das ist wesentlich billiger. Edit: selbstverständlich ist dann auch das Problem gelöst, daß avia_check sich die Rechenzeit mit shellexec & co teilen muß und deswegen fehlauslöst.
  2. Solange du /proc/interrupts pollst, wirst du die Systemlast nicht runterkriegen. Das ist einfach zu teuer. Du mußt das in die Interruptroutine des Treibers reinmachen und mit den vorhandenen Watchdogs kombinieren.
×
×
  • Neu erstellen...