From: Thomas Gleixner <tglx@linutronix.de>
To: David Brown <dmlb2000@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>,
linux-kernel@vger.kernel.org, John Stultz <johnstul@us.ibm.com>,
Lee Revell <rlrevell@joe-job.com>
Subject: Re: 2.6.16-rc6-rt7
Date: Thu, 16 Mar 2006 18:50:21 +0100 [thread overview]
Message-ID: <1142531421.29968.28.camel@localhost.localdomain> (raw)
In-Reply-To: <9c21eeae0603160939sa48bbe7i84698c8a2187ae4@mail.gmail.com>
On Thu, 2006-03-16 at 09:39 -0800, David Brown wrote:
> I've been having issues with the realtime patch set and using scp
> (specifically scp, wget, curl, git, cvs everything else works fine). I
> was wondering what extra debugging features are helpful to have built
> into the kernel that could help me nail down why this bug is
> happening.
>
> Specifically what's happening is scp is freezing my system, there
> haven't been any kernel warnings or panics upon execution of scp, it
> just freezes, every other application that uses network seems to work
> just fine, so far it's just been scp.
Just found a problem in the highres timer merge. Can you try the patch
below?
tglx
Index: linux-2.6.16-rc6/include/linux/hrtimer.h
===================================================================
--- linux-2.6.16-rc6.orig/include/linux/hrtimer.h
+++ linux-2.6.16-rc6/include/linux/hrtimer.h
@@ -114,6 +114,8 @@ extern void hrtimer_clock_notify(void);
extern void clock_was_set(void);
extern int hrtimer_interrupt(void);
+#define hrtimer_cb_get_time(t) (t)->base->get_time()
+
/*
* The resolution of the clocks. The resolution value is returned in
* the clock_getres() system call to give application programmers an
@@ -136,6 +138,8 @@ extern int hrtimer_interrupt(void);
#define clock_was_set() do { } while (0)
#define hrtimer_clock_notify() do { } while (0)
+#define hrtimer_cb_get_time(t) (t)->base->softirq_time
+
#endif
# if (BITS_PER_LONG == 64) || defined(CONFIG_KTIME_SCALAR)
Index: linux-2.6.16-rc6/kernel/hrtimer.c
===================================================================
--- linux-2.6.16-rc6.orig/kernel/hrtimer.c
+++ linux-2.6.16-rc6/kernel/hrtimer.c
@@ -970,8 +970,6 @@ static inline void run_hrtimer_hres_queu
{
spin_lock_irq(&base->lock);
- base->softirq_time = base->get_softirq_time();
-
while (!list_empty(&base->cb_pending)) {
struct hrtimer *timer;
int (*fn)(struct hrtimer *);
Index: linux-2.6.16-rc6/kernel/itimer.c
===================================================================
--- linux-2.6.16-rc6.orig/kernel/itimer.c
+++ linux-2.6.16-rc6/kernel/itimer.c
@@ -136,7 +136,7 @@ int it_real_fn(struct hrtimer *timer)
send_group_sig_info(SIGALRM, SEND_SIG_PRIV, sig->tsk);
if (sig->it_real_incr.tv64 != 0) {
- hrtimer_forward(timer, timer->base->softirq_time,
+ hrtimer_forward(timer, hrtimer_cb_get_time(timer),
sig->it_real_incr);
return HRTIMER_RESTART;
}
Index: linux-2.6.16-rc6/kernel/posix-timers.c
===================================================================
--- linux-2.6.16-rc6.orig/kernel/posix-timers.c
+++ linux-2.6.16-rc6/kernel/posix-timers.c
@@ -355,9 +355,10 @@ static int posix_timer_fn(struct hrtimer
if (timr->it.real.interval.tv64 != 0) {
timr->it_overrun +=
hrtimer_forward(timer,
- timer->base->softirq_time,
+ hrtimer_cb_get_time(timer),
timr->it.real.interval);
ret = HRTIMER_RESTART;
+ ++timr->it_requeue_pending;
}
}
next prev parent reply other threads:[~2006-03-16 17:50 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-16 9:56 2.6.16-rc6-rt7 Ingo Molnar
2006-03-16 17:39 ` 2.6.16-rc6-rt7 David Brown
2006-03-16 17:50 ` Thomas Gleixner [this message]
2006-03-17 8:20 ` 2.6.16-rc6-rt7 Ingo Molnar
2006-03-16 21:42 ` 2.6.16-rc6-rt7 Michal Piotrowski
2006-03-17 23:36 ` 2.6.16-rc6-rt7 Tom Rini
2006-03-18 8:57 ` 2.6.16-rc6-rt7 Ingo Molnar
2006-03-18 12:54 ` 2.6.16-rc6-rt7 Tom Rini
2006-03-18 10:37 ` 2.6.16-rc6-rt7 Thomas Gleixner
2006-03-18 12:54 ` 2.6.16-rc6-rt7 Tom Rini
2006-03-18 12:58 ` 2.6.16-rc6-rt7 Thomas Gleixner
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=1142531421.29968.28.camel@localhost.localdomain \
--to=tglx@linutronix.de \
--cc=dmlb2000@gmail.com \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rlrevell@joe-job.com \
/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