lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 19 Dec 2006 20:56:51 +0100
From:	Ingo Molnar <mingo@...e.hu>
To:	Tilman Schmidt <tilman@...p.cc>
Cc:	Andrew Morton <akpm@...l.org>, linux-kernel@...r.kernel.org,
	Thomas Gleixner <tglx@...utronix.de>
Subject: [patch] hrtimers: add state tracking, fix


* Tilman Schmidt <tilman@...p.cc> wrote:

> I tried kernel 2.6.20-rc1-mm1 with the "tickless" option on my P3/933 
> but it has now for the second time in a row caused a system freeze as 
> soon as I left the system idle for a couple of hours. The second time 
> I was warned and switched to a text console before I left the system, 
> and was able to collect this BUG message (copied manually, beware of 
> typos):
> 
> EFLAGS: 00200082   (2.6.20-rc1-mm1-noinitrd #0)
> EIP is at __rb_rotate_right+0x1/0x54
[...]
> Call Trace:
>  [<c021d049>] rb_insert_color+0x55/0xbe
>  [<c012d15b>] enqueue_hrtimer+0x10a/0x116
>  [<c012d9b4>] hrtimer_start+0x78/0x93

thanks for the report - this made me review the hrtimer state engine 
logic, and bingo, it indeed has a nasty typo! Could you try the fix 
below, does it fix your problem? It might explain the crash you are 
seeing, because the typo means we'd ignore HRTIMER_STATE_PENDING state 
(which is rare but possible).

	Ingo

-------------------------->
Subject: [patch] hrtimers: add state tracking, fix
From: Ingo Molnar <mingo@...e.hu>

fix bug in hrtimer_is_queued(), introduced by a cleanup during
the recent refactoring.

Signed-off-by: Ingo Molnar <mingo@...e.hu>
---
 kernel/hrtimer.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/kernel/hrtimer.c
===================================================================
--- linux.orig/kernel/hrtimer.c
+++ linux/kernel/hrtimer.c
@@ -157,7 +157,7 @@ static void hrtimer_get_softirq_time(str
 static inline int hrtimer_is_queued(struct hrtimer *timer)
 {
 	return timer->state &
-		(HRTIMER_STATE_ENQUEUED || HRTIMER_STATE_PENDING);
+		(HRTIMER_STATE_ENQUEUED | HRTIMER_STATE_PENDING);
 }
 
 /*
-
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ