On Thu, 2007-04-12 at 10:44 -0600, Bill Anderson wrote:
Changing the HZ to 1000 would only impact on tasks running in the process context. The top-half of the interrupt handler runs in interrupt context. During the initial processing of an interrupt, the handler suspends other interrupts on the same IRQ. Remember this is character I/O, so there is going to be an interrupt for each character. The buffering of the data for a user application occurs in the bottom half of the interrupt handler. I forgot to ask if the GPS application reads the raw serial port, or uses a kernel module for gathering the data.
Depends on what you mean by raw. We use /dev/ttySx, and configure the port with termios. Then we set it up so we get a SIGIO when there is a complete line, and use a read() call to get the characters. I wonder if the interrupt is per-character. Given that the 16550 chip buffers 16 characters. I guess I could check /proc/interrupts on the serial port and see. Does the serial I/O stuff run in the kserio kernel thread? If so, I am guessing that is the bottom half sort of stuff. I looked at the serio.c source and it was not obvious to me as it seemed mainly to be a resource controller more than the actual character processor. -- Roger Oberholtzer OPQ Systems / Ramböll RST Ramböll Sverige AB Kapellgränd 7 P.O. Box 4205 SE-102 65 Stockholm, Sweden Tel: Int +46 8-615 60 20 Fax: Int +46 8-31 42 23 -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org