Hi Ingo,
I think local_irq_enable() is missing in default_idle() on x86_64.
It's for recent x86 tree.
From: Hiroshi Shimamoto <[email protected]>
Subject: [PATCH] x86_64: enable irq in default_idle
local_irq_enable() is missing after sched_clock_idle_wakeup_event().
Signed-off-by: Hiroshi Shimamoto <[email protected]>
---
arch/x86/kernel/process_64.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index c6ad1a0..93ce4f3 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -119,8 +119,8 @@ void default_idle(void)
t1 = ktime_get();
t1n = ktime_to_ns(t1);
sched_clock_idle_wakeup_event(t1n - t0n);
- } else
- local_irq_enable();
+ }
+ local_irq_enable();
current_thread_info()->status |= TS_POLLING;
}
--
1.5.3.6
* Hiroshi Shimamoto <[email protected]> wrote:
> Hi Ingo,
>
> I think local_irq_enable() is missing in default_idle() on x86_64.
> It's for recent x86 tree.
>
> From: Hiroshi Shimamoto <[email protected]>
> Subject: [PATCH] x86_64: enable irq in default_idle
>
> local_irq_enable() is missing after sched_clock_idle_wakeup_event().
thanks Hiroshi, applied.
The effects of this bug should be increased latencies on 64-bit. Did you
notice these latencies, or did you find the bug in some other way (code
review)?
Ingo
Ingo Molnar wrote:
> * Hiroshi Shimamoto <[email protected]> wrote:
>
>> Hi Ingo,
>>
>> I think local_irq_enable() is missing in default_idle() on x86_64.
>> It's for recent x86 tree.
>>
>> From: Hiroshi Shimamoto <[email protected]>
>> Subject: [PATCH] x86_64: enable irq in default_idle
>>
>> local_irq_enable() is missing after sched_clock_idle_wakeup_event().
>
> thanks Hiroshi, applied.
>
> The effects of this bug should be increased latencies on 64-bit. Did you
> notice these latencies, or did you find the bug in some other way (code
> review)?
I found this when I was comparing 32-bit and 64-bit source code
for x86 unification.
Thanks,
Hiroshi Shimamoto
* Hiroshi Shimamoto <[email protected]> wrote:
> >> local_irq_enable() is missing after
> >> sched_clock_idle_wakeup_event().
> >
> > thanks Hiroshi, applied.
> >
> > The effects of this bug should be increased latencies on 64-bit. Did
> > you notice these latencies, or did you find the bug in some other
> > way (code review)?
>
> I found this when I was comparing 32-bit and 64-bit source code for
> x86 unification.
cool :) Indeed even for other code, a number of times we got bugfixes
when unifying 32-bit and 64-bit files.
Ingo