Skip to contentSkip to conversation

fix WARNING: at kernel/cpu/idle.c:96

PATCH RESEND In review James Bottomley 4 participants 7 messages Jun 14, 2013 – Jun 19, 2013

lore
Share & tools
lore
#0 lore raw

PATCH RESEND 1/1 fix WARNING: at kernel/cpu/idle.c:96

Quoted 1 line

From 48bbf44a96676ce6f520a408378730c976e9a11e Mon Sep 17 00:00:00 2001

From: James Bottomley <[email protected]>
Date: Wed, 8 May 2013 14:05:34 -0700
Subject: [PATCH] [PARISC] fix WARNING: at kernel/cpu/idle.c:96

On PA-RISC (and presumably any other arch that doesn't implement its own arch_cpu_idle), we get this spurious boot warning. The problem is that the way the idle task is selected initially using the weak arch_cpu_idle() in idle.c causes us to enter this place once with interrupts enabled. Fix this by disabling interrupts in the weak arch_cpu_idle() code.

---

Thomas, I'm getting a bit impatient: this is a clear bug in the cpu idle code and we keep getting reports of this as a boot crash on parisc. If you don't push it through your tree, I'll take it through the parisc one.

kernel/cpu/idle.c +1 -0
index d5585f5..0a4d11e 100644
@@ -58,6 +58,7 @@ void __weak arch_cpu_idle_dead(void) { }
 void __weak arch_cpu_idle(void)
 {
 	cpu_idle_force_poll = 1;
+	local_irq_enable();
 }
 
 /*
#1 lore raw
Quoted 10 lines · James Bottomley
Quoted 1 line

From 48bbf44a96676ce6f520a408378730c976e9a11e Mon Sep 17 00:00:00 2001

From: James Bottomley <[email protected]>
Date: Wed, 8 May 2013 14:05:34 -0700
Subject: [PATCH] [PARISC] fix WARNING: at kernel/cpu/idle.c:96

On PA-RISC (and presumably any other arch that doesn't implement its own arch_cpu_idle), we get this spurious boot warning. The problem is that the way the idle task is selected initially using the weak arch_cpu_idle() in idle.c causes us to enter this place once with interrupts enabled. Fix this by disabling interrupts in the weak arch_cpu_idle() code.

Is this changelog correct? It looks to me like you are enabling interrupts down there.

David Daney

Quoted 18 lines

---

Thomas, I'm getting a bit impatient: this is a clear bug in the cpu idle code and we keep getting reports of this as a boot crash on parisc. If you don't push it through your tree, I'll take it through the parisc one.

kernel/cpu/idle.c +0 -0
index d5585f5..0a4d11e 100644

kernel/cpu/idle.c void __weak arch_cpu_idle_dead(void) { } · line 61

Quoted 4 lines
kernel/cpu/idle.c +1 -0
@@ -58,6 +58,7 @@ void __weak arch_cpu_idle_dead(void) { }
  void __weak arch_cpu_idle(void)
  {
  	cpu_idle_force_poll = 1;
+	local_irq_enable();

Here ^^^^^^^^^^^^^^^^

Quoted 12 lines
kernel/cpu/idle.c +0 -1
  }
 
  /*
 
 
--

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

#2 lore raw
Quoted 6 lines · David Daney
Quoted 5 lines · James Bottomley
Quoted 1 line

From 48bbf44a96676ce6f520a408378730c976e9a11e Mon Sep 17 00:00:00 2001

From: James Bottomley <[email protected]>
Date: Wed, 8 May 2013 14:05:34 -0700
Subject: [PATCH] [PARISC] fix WARNING: at kernel/cpu/idle.c:96

Quoted 8 lines
Quoted 5 lines

On PA-RISC (and presumably any other arch that doesn't implement its own arch_cpu_idle), we get this spurious boot warning. The problem is that the way the idle task is selected initially using the weak arch_cpu_idle() in idle.c causes us to enter this place once with interrupts enabled. Fix this by disabling interrupts in the weak arch_cpu_idle() code.

Is this changelog correct? It looks to me like you are enabling interrupts down there.

Yes, obvious typo, sorry. The WARN_ON check is for disabled interrupts the fix is to enable them.

James

#3 lore raw
In reply to James Bottomley
Quoted 5 lines · James Bottomley
Quoted 1 line

From 48bbf44a96676ce6f520a408378730c976e9a11e Mon Sep 17 00:00:00 2001

From: James Bottomley <[email protected]>
Date: Wed, 8 May 2013 14:05:34 -0700
Subject: [PATCH] [PARISC] fix WARNING: at kernel/cpu/idle.c:96

Quoted 8 lines

On PA-RISC (and presumably any other arch that doesn't implement its own arch_cpu_idle), we get this spurious boot warning. The problem is that the way the idle task is selected initially using the weak arch_cpu_idle() in idle.c causes us to enter this place once with interrupts enabled. Fix this by disabling interrupts in the weak arch_cpu_idle() code.

What's the stable tag for? This code got merged in 3,10, so stable is totally irrelevant.

Quoted 8 lines

---

Thomas, I'm getting a bit impatient: this is a clear bug in the cpu idle code and we keep getting reports of this as a boot crash on parisc. If you don't push it through your tree, I'll take it through the parisc one.

Hold your breath. I was not even CC'ed on the original patch and I admit that I ignored the patch which starts with [PARISC].

If the subject line would have started with [idle], [core/idle] I definitely would have paid attention.

Aside of that the rest of the subject line is just annoyingly sloppy. We do not fix a WARNING. That's not what this patch is about. The patch fixes a problem which got introduced with the idle rework, period.

I'll pick it up and fix the changelog.

Thanks,

tglx

Quoted 16 lines
kernel/cpu/idle.c +1 -0
index d5585f5..0a4d11e 100644
@@ -58,6 +58,7 @@ void __weak arch_cpu_idle_dead(void) { }
 void __weak arch_cpu_idle(void)
 {
 	cpu_idle_force_poll = 1;
+	local_irq_enable();
 }
 
 /*
#4 lore raw
Quoted 34 lines · Thomas Gleixner
Quoted 5 lines · James Bottomley
Quoted 1 line

From 48bbf44a96676ce6f520a408378730c976e9a11e Mon Sep 17 00:00:00 2001

From: James Bottomley <[email protected]>
Date: Wed, 8 May 2013 14:05:34 -0700
Subject: [PATCH] [PARISC] fix WARNING: at kernel/cpu/idle.c:96

Quoted 8 lines

On PA-RISC (and presumably any other arch that doesn't implement its own arch_cpu_idle), we get this spurious boot warning. The problem is that the way the idle task is selected initially using the weak arch_cpu_idle() in idle.c causes us to enter this place once with interrupts enabled. Fix this by disabling interrupts in the weak arch_cpu_idle() code.

What's the stable tag for? This code got merged in 3,10, so stable is totally irrelevant.

Quoted 8 lines

---

Thomas, I'm getting a bit impatient: this is a clear bug in the cpu idle code and we keep getting reports of this as a boot crash on parisc. If you don't push it through your tree, I'll take it through the parisc one.

Hold your breath. I was not even CC'ed on the original patch and I admit that I ignored the patch which starts with [PARISC].

If the subject line would have started with [idle], [core/idle] I definitely would have paid attention.

Quoted 6 lines

Aside of that the rest of the subject line is just annoyingly sloppy. We do not fix a WARNING. That's not what this patch is about. The patch fixes a problem which got introduced with the idle rework, period.

I'll pick it up and fix the changelog.

And it needs fixing. It says:

"... way the idle task is selected initially using the weak
arch_cpu_idle() in idle.c causes us to enter this place once with interrupts enabled. Fix this by disabling interrupts in the weak arch_cpu_idle() code."

And the patch does:

void __weak arch_cpu_idle(void)

 {
        cpu_idle_force_poll = 1;

+ local_irq_enable();
}

Instead of bullying around you might consider to read Documentation/SubmittingPatches.

Thanks,

tglx

#5 lore raw
In reply to Thomas Gleixner
Quoted 13 lines · Thomas Gleixner
Quoted 11 lines · James Bottomley
Quoted 1 line

From 48bbf44a96676ce6f520a408378730c976e9a11e Mon Sep 17 00:00:00 2001

From: James Bottomley <[email protected]>
Date: Wed, 8 May 2013 14:05:34 -0700
Subject: [PATCH] [PARISC] fix WARNING: at kernel/cpu/idle.c:96

On PA-RISC (and presumably any other arch that doesn't implement its own arch_cpu_idle), we get this spurious boot warning. The problem is that the way the idle task is selected initially using the weak arch_cpu_idle() in idle.c causes us to enter this place once with interrupts enabled. Fix this by disabling interrupts in the weak arch_cpu_idle() code.

Quoted 5 lines
Quoted 2 lines

What's the stable tag for? This code got merged in 3,10, so stable is totally irrelevant.

Hm, OK, it's been so long I'm misremembering which kernel versions need it.

Quoted 11 lines
Quoted 8 lines

---

Thomas, I'm getting a bit impatient: this is a clear bug in the cpu idle code and we keep getting reports of this as a boot crash on parisc. If you don't push it through your tree, I'll take it through the parisc one.

Hold your breath. I was not even CC'ed on the original patch and I admit that I ignored the patch which starts with [PARISC].

Oh, you were ... I made sure of that. It's thread with subject

Re: [PATCH] parisc: avoid WARNING: at kernel/cpu/idle.c:96

You were cc'd from the one dated Wed, 08 May 2013 14:05:34 -0700

Quoted 9 lines

If the subject line would have started with [idle], [core/idle] I definitely would have paid attention.

Aside of that the rest of the subject line is just annoyingly sloppy. We do not fix a WARNING. That's not what this patch is about. The patch fixes a problem which got introduced with the idle rework, period.

I'll pick it up and fix the changelog.

Sure, whatever you think is best ... Given Linus' current mood I think leading with a description of the actual user visible problem being fixed is a good way to make sure he doesn't get annoyed, but it's your call.

James

#6 lore raw

[tip:core/urgent] idle: Enable interrupts in the weak arch_cpu_idle() implementation

In reply to James Bottomley
idle: Enable interrupts in the weak arch_cpu_idle() implementation
Commit-ID:  29ce3785b22da47c49f4ef6e14b9014fa5dee261
Gitweb:     http://git.kernel.org/tip/29ce3785b22da47c49f4ef6e14b9014fa5dee261
Author:     James Bottomley <[email protected]>
AuthorDate: Wed, 8 May 2013 14:05:34 -0700
Committer:  Thomas Gleixner <[email protected]>
CommitDate: Fri, 14 Jun 2013 23:01:05 +0200

idle: Enable interrupts in the weak arch_cpu_idle() implementation

PARISC bootup triggers the warning at kernel/cpu/idle.c:96. That's caused by the weak arch_cpu_idle() implementation, which is provided to avoid that architectures implement idle_poll over and over.

The switchover to polling mode happens in the first call of the weak arch_cpu_idle() implementation, but that code fails to reenable interrupts and therefor triggers the warning.

Fix this by enabling interrupts in the weak arch_cpu_idle() code.

[ tglx: Made the changelog match the patch ]

---
 kernel/cpu/idle.c | 1 +
 1 file changed, 1 insertion(+)
kernel/cpu/idle.c +1 -0
index bf2ee1a..e695c0a 100644
@@ -59,6 +59,7 @@ void __weak arch_cpu_idle_dead(void) { }
 void __weak arch_cpu_idle(void)
 {
 	cpu_idle_force_poll = 1;
+	local_irq_enable();
 }
 
 /*