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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to