[RFC][PATCH 6/8] sched,idle: Avoid spurious wakeup IPIs
James Hogan
james.hogan at imgtec.com
Thu May 15 02:17:10 PDT 2014
Hi Peter,
On 09/05/14 15:51, James Hogan wrote:
> On 09/05/14 15:15, Peter Zijlstra wrote:
>> Most archs have (x86) hlt or (arm) wfi like idle instructions, and if
>> that is your only possible idle function, you'll require the interrupt
>> to wake up and there's really no point to having the POLLING bit.
>>
>> Lastly, having the POLLING bit and not needing it is similarly non-fatal.
>>
>
> Thanks. I think the flag can go for Metag then. I suggest the following
> patch.
This is still bust in linux-next. What's the status of this patch?
Thanks
James
>
> From 15dd3f9cc18bdb1c8c4d2c395778421022250aa8 Mon Sep 17 00:00:00 2001
> From: James Hogan <james.hogan at imgtec.com>
> Date: Fri, 9 May 2014 15:36:21 +0100
> Subject: [PATCH] metag: Remove TIF_POLLING_NRFLAG
>
> The Meta idle function jumps into the interrupt handler which
> efficiently blocks waiting for the next interrupt when it reads the
> interrupt status register (TXSTATI). No other (polling) idle functions
> can be used, therefore TIF_POLLING_NRFLAG is unnecessary, so lets remove
> it.
>
> Peter Zijlstra said:
>> Most archs have (x86) hlt or (arm) wfi like idle instructions, and if
>> that is your only possible idle function, you'll require the interrupt
>> to wake up and there's really no point to having the POLLING bit.
>
> Signed-off-by: James Hogan <james.hogan at imgtec.com>
> Cc: Peter Zijlstra <peterz at infradead.org>
> ---
> arch/metag/include/asm/thread_info.h | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/metag/include/asm/thread_info.h b/arch/metag/include/asm/thread_info.h
> index b19e9c588a16..47711336119e 100644
> --- a/arch/metag/include/asm/thread_info.h
> +++ b/arch/metag/include/asm/thread_info.h
> @@ -117,10 +117,8 @@ static inline int kstack_end(void *addr)
> #define TIF_SECCOMP 5 /* secure computing */
> #define TIF_RESTORE_SIGMASK 6 /* restore signal mask in do_signal() */
> #define TIF_NOTIFY_RESUME 7 /* callback before returning to user */
> -#define TIF_POLLING_NRFLAG 8 /* true if poll_idle() is polling
> - TIF_NEED_RESCHED */
> -#define TIF_MEMDIE 9 /* is terminating due to OOM killer */
> -#define TIF_SYSCALL_TRACEPOINT 10 /* syscall tracepoint instrumentation */
> +#define TIF_MEMDIE 8 /* is terminating due to OOM killer */
> +#define TIF_SYSCALL_TRACEPOINT 9 /* syscall tracepoint instrumentation */
>
>
> #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
>
More information about the linux-arm-kernel
mailing list