Re: [PATCH -mm v4 6/9] atmel_serial: Split the interrupt handler

From: michael
Date: Thu Feb 14 2008 - 02:31:20 EST


Hi,
Remy Bohmer wrote:
Hello All,

All works now for me with preempt-rt. The problem is using hrtimer.
I think that hrtimer are executed with interrupts disabled so, if
this happen when I must receive a char, i have an overrun.

No, they share the same interrupt line...
I think that the hrtimer use and other interrupt line. The AT91SAM9260_ID_TC2.
So, while the timer interrupt handler is running, the serial handler
has to wait until the timer interrupt handler has finished.
Notice that the HRT interrupt handler is quite heavy and takes a long
time to complete.
The problem is the heavy of HRT interrupt handler of course.
And, as I already mentioned, related to the 1 byte FIFO and a
interrupt latency of about 85us (without HRT), it is logical that you
can get an overrun at the higher serial speeds... (>=115200bps)

I don't have the same problem without the hrtimer, I suppose the the timer latency
is not so heavy.
The only solution was the dma support to serial device.

Or, use flow control?


Yes :)

Michael

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/