I compiled the kernel for 586 and am running the PIT timer. I still get the 17000-18000 context switches per second, and now the irq0 handler is taking up 11% of the CPU instead of only 5% when the two 8000Hz tasks are loaded but delayed on events. I think that the problem isn't with pit, but with the tasks being periodic even though they are blocked.
Running in PIT mode with periodic timing on uses only 9.5% of the CPU. I show about 9000 context switches per second. (the 2 8000 hz tasks and the 1000 hz linux interrupt.) With periodic timing, it's 5.4% when the tasks idle and about 9000 context switches a second. When one of them becomes active, the irq0 handler is using 10% of the CPU and the sound task is using about 8%. These are two kernel tasks. Userspace stack size is set to 64k. I forgot to mention this to Philippe earlier. Perhaps the problem is the overhead that the timer handler introduces being able to support multiple skins with individual timebases. It sounds like in order to save some cpu cycles, I may want to turn off periodicity while threads are idle and also avoid setting threads periodic when they can be driven some other way. Steven
_______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
