From: Bo Hansen <bh@newtec.dk>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Thomas Gleixner <tglx@linutronix.de>,
john stultz <johnstul@us.ibm.com>,
rt-users <linux-rt-users@vger.kernel.org>
Subject: Re: [SOLVED, RFC] Re: hrtimer problem on AT91RM9200
Date: Wed, 16 Sep 2009 08:26:47 +0200 [thread overview]
Message-ID: <4AB08527.3030603@newtec.dk> (raw)
In-Reply-To: <20090915092934.GA2717@pengutronix.de>
Hi Uwe,
I'm happy to see you are able to reproduce the problem now.
This is a bit over my head as a newbie in the kernel, but I
will follow from the sideline ;-).
Thank you for taking care of the problem.
Best regards,
Bo
Uwe Kleine-König wrote:
> Hello,
>
> I'm able to reproduce this now. The problem is really that
> hrtimer_interrupt() tries to program the next timer event which fails 4
> times in a row, because the expiry time is already in the past when
> tick_dev_program_event is called. This happens because there are so
> much timers with small expiry times. (cyclictest -t40 on an UP machine)
>
> Addionally the fourth interation was short (probably because then there
> were no expired timers to check for) and so the try_time argument to
> hrtimer_interrupt_hanging was small and so min_delta_ns was decreased
> instead of increased.
>
> I wonder why increasing min_delta_ns is supposed to fix something here.
> Actually some pressure that results in hrtimer_interrupt_hanging being
> called can always happen independently of min_delta_ns' value.
> And moreover, is it sensible to change the value of
> force_clock_reprogram? This makes the system harder to benchmark,
> because to guarantee a certain latency now you have to check both
> situations force_clock_reprogram==1 and force_clock_reprogram==0.
>
> My suggestion is to do the following:
> - fix hrtimer_interrupt_hanging not to decrease min_delta_ns
> - in clockevents_program_event instead of
> if (delta <= 0)
> return -ETIME;
> do
> if (delta <= -dev->min_delta_ns)
> return -ETIME;
>
> I'm not sure though if -dev->min_delta_ns is the right value or if
> that is a good idea at all.
>
> Best regards
> Uwe
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2009-09-16 6:26 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-19 12:24 hrtimer problem on AT91RM9200 Bo Hansen
2009-08-19 15:33 ` Remy Bohmer
2009-08-20 19:52 ` Uwe Kleine-König
2009-08-21 12:57 ` Bo Hansen
[not found] ` <fae6a9700908232327u65fca65bt97bb8c43a91345cd@mail.gmail.com>
2009-08-24 6:30 ` Vivek Satpute
2009-09-03 14:12 ` Uwe Kleine-König
2009-09-10 6:44 ` Bo Hansen
2009-09-10 9:51 ` Uwe Kleine-König
2009-09-11 15:20 ` Uwe Kleine-König
2009-09-11 23:07 ` Uwe Kleine-König
2009-09-14 10:50 ` Bo Hansen
2009-09-14 11:10 ` Uwe Kleine-König
2009-09-15 9:29 ` [SOLVED, RFC] " Uwe Kleine-König
2009-09-15 15:29 ` Thomas Gleixner
2009-09-15 18:40 ` Uwe Kleine-König
2009-09-15 19:06 ` Thomas Gleixner
2009-09-15 20:54 ` Thomas Gleixner
2009-09-16 6:26 ` Bo Hansen [this message]
2009-09-14 9:09 ` Bo Hansen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4AB08527.3030603@newtec.dk \
--to=bh@newtec.dk \
--cc=johnstul@us.ibm.com \
--cc=linux-rt-users@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=u.kleine-koenig@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).