Re: Why can't my serial driver can't keep up?
- From: Bob Hauck <postmaster@xxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 28 Dec 2005 11:44:59 -0500
On Tue, 27 Dec 2005 21:36:37 +0100, Kasper Dupont
<64459405747538527765@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> "ryan.stowell@xxxxxxxxx" wrote:
>>
>> The problem is when data is missing I see a point where it took 345ms
>> to respond to the ISR. I know that Linux is not a RTOS but should it
>> ever take that long to respond to an interrupt?
That's a third of a second! The kernel should never disable interrupts
for that long. For one thing, he'll miss hundreds of timer ticks.
> Clearly that shouldn't be happening. Typical Linux systems handle
> timer interrupts every 1-10ms.
> If the kernel doesn't start servicing an IRQ within a few
> microseconds, they must be disabled somehow. They could be disabled in
> the CPU or in the IRQ controller.
Or somewhere in the BIOS SMI or ACPI code, if there is some sort of
power management activated. Also, things like "legacy USB" support in
the BIOS may result in SMI taking over the machine once in a while,
depending on how they're implemented. The RTAI folk have documented
some instances where the SMI/ACPI effect causes delays in the range of
tens of milliseconds every few seconds.
Could also be a priority thing. Is a higher-priority interrupt
preventing yours from being serviced? Is your interrup shared with any
other device that may not be working correctly if the IRQ is shared?
Just to point out that the problem may not be in the kernel.
>> What could the kernel be doing that would change the response time
>> from tens of microseconds to hundreds of milliseconds?
>
> The kernel does disable interrupts in certain critical parts
> of the code. But those shouldn't be spending lots of time.
Yeah, 345 ms is just ridiculous. Even the old problems with IDE masking
interrupts weren't that bad.
--
-| Bob Hauck
-| A proud member of the reality-based community.
-| http://www.haucks.org/
.
- Follow-Ups:
- Re: Why can't my serial driver can't keep up?
- From: ryan.stowell@xxxxxxxxx
- Re: Why can't my serial driver can't keep up?
- References:
- Why can't my serial driver can't keep up?
- From: ryan.stowell@xxxxxxxxx
- Re: Why can't my serial driver can't keep up?
- From: ryan.stowell@xxxxxxxxx
- Why can't my serial driver can't keep up?
- Prev by Date: Re: process switch...
- Next by Date: Re: determining return address of a function
- Previous by thread: Re: Why can't my serial driver can't keep up?
- Next by thread: Re: Why can't my serial driver can't keep up?
- Index(es):
Relevant Pages
|
|