All of lore.kernel.org
 help / color / mirror / Atom feed
* [Adeos-main] ipipe_request_tickdev issue
@ 2012-02-11 18:34 Gilles Chanteperdrix
  2012-02-20 16:40 ` Philippe Gerum
  0 siblings, 1 reply; 2+ messages in thread
From: Gilles Chanteperdrix @ 2012-02-11 18:34 UTC (permalink / raw)
  To: Adeos


Hi,

I found this out a long time ago on AT91 and worked around it but am
starting to see the same issue on hardware which hardware timer does not
wrap as fast: when xenomai calls ipipe_request_tickdev, the clockevent
structure max_delta_ns member is set to ULONG_MAX, but on most ARM
platforms, the reason for max_delta_ns is not only the timer hardware
limit, it is also necessary to call eg. update_sched_clock at least once
every max_delta_ns in order to avoid the hardware counter wrapping
without the system noticing it.

What do you think is the best way to avoid this issue? I would propose
simply removing the line which does:
	evtdev->max_delta_ns = ULONG_MAX;
in ipipe_request_tickdev, but maybe someone else sees a better solution.

-- 
                                                                Gilles.


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Adeos-main] ipipe_request_tickdev issue
  2012-02-11 18:34 [Adeos-main] ipipe_request_tickdev issue Gilles Chanteperdrix
@ 2012-02-20 16:40 ` Philippe Gerum
  0 siblings, 0 replies; 2+ messages in thread
From: Philippe Gerum @ 2012-02-20 16:40 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: Adeos

On 02/11/2012 07:34 PM, Gilles Chanteperdrix wrote:
>
> Hi,
>
> I found this out a long time ago on AT91 and worked around it but am
> starting to see the same issue on hardware which hardware timer does not
> wrap as fast: when xenomai calls ipipe_request_tickdev, the clockevent
> structure max_delta_ns member is set to ULONG_MAX, but on most ARM
> platforms, the reason for max_delta_ns is not only the timer hardware
> limit, it is also necessary to call eg. update_sched_clock at least once
> every max_delta_ns in order to avoid the hardware counter wrapping
> without the system noticing it.
>
> What do you think is the best way to avoid this issue? I would propose
> simply removing the line which does:
> 	evtdev->max_delta_ns = ULONG_MAX;

Assuming we never go through clockevents_program_event() to program the 
next real-time shot, I don't see any issue killing this line in the 
current pipeline implementation. This said, it is unlikely that we would 
want to program delays larger than what the kernel defined as the 
maximum for the clock chip anyway.

> in ipipe_request_tickdev, but maybe someone else sees a better solution.
>


-- 
Philippe.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-02-20 16:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-11 18:34 [Adeos-main] ipipe_request_tickdev issue Gilles Chanteperdrix
2012-02-20 16:40 ` Philippe Gerum

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.