[<prev] [next>] [day] [month] [year] [list]
Message-ID: <OFB812AC35.7E514449-ONC125727C.0029AA85-C125727C.002B65DA@ra.rockwell.com>
Date: Thu, 8 Feb 2007 08:55:01 +0100
From: Milan Svoboda <msvoboda@...rockwell.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: linux-kernel@...r.kernel.org
Subject: Re: posix-timers overrun broken?
> On Wed, 2007-02-07 at 14:36 +0100, Milan Svoboda wrote:
> > But if the next interrupt arrives before function collect_signal is
called
> > to actually deliver the
> > siginfo_t to userspace, the si.overrun is cleared in posix_timer_event
and
> > we have just forgotten
> > one overrun...
> >
> > Am I wrong?
>
> Yes. posix_timer_event() is only called when the timer expires the first
> time. When the signal has been queued, the timer is not rearmed and the
> overrun is calculated in the actual signal delivery path, which calls
> do_schedule_next_timer().
Ok understand.
So it seems to me that drivers/char/mmtimer.c is wrong. It is
driver to additional hardware timers and mmtimer exports them as a posix
timer.
When interrupt happens, they call posix_timer_event and set hardware
interrupt
to the next tick. I use the same practise in my driver and found
that overruns are reported wrongly.
How to plug "external" source of ticks to the posix timers?
As far as I know current HRT doesn't allow us to use more sources of
ticks together, only one is selected, correct?
Milan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists