lkml.org 
[lkml]   [2007]   [Apr]   [7]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateFri, 6 Apr 2007 23:25:00 -0700
FromAndrew Morton <>
SubjectRe: Avoid checking for cpu gone when CONFIG_HOTPLUG_CPU not defined
On Fri, 6 Apr 2007 14:41:50 -0700 "Keshavamurthy, Anil S" <anil.s.keshavamurthy@intel.com> wrote:

> Subject: Avoid checking for cpu gone when CONFIG_HOTPLUG_CPU not defined
> 
> Avoid checking for cpu gone in mm hot path when
> CONFIG_HOTPLUG_CPU is not defined.
> 
> Signed-off-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
> 
> ---
>  arch/i386/kernel/smp.c |    4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> Index: work/arch/i386/kernel/smp.c
> ===================================================================
> --- work.orig/arch/i386/kernel/smp.c
> +++ work/arch/i386/kernel/smp.c
> @@ -365,10 +365,12 @@ static void flush_tlb_others(cpumask_t c
>  	BUG_ON(cpu_isset(smp_processor_id(), cpumask));
>  	BUG_ON(!mm);
> 
> +#ifdef CONFIG_HOTPLUG_CPU
>  	/* If a CPU which we ran on has gone down, OK. */
>  	cpus_and(cpumask, cpumask, cpu_online_map);
> -	if (cpus_empty(cpumask))
> +	if (unlikely(cpus_empty(cpumask)))
>  		return;
> +#endif
> 
>  	/*
>  	 * i'm not happy about this global shared spinlock in the

Fair enough.

The code you're touching in with the original CPU-hotplug-for-i386 patches.

x86_64 doesn't do it.  It handles tlb flushing differently anyway.  But I
suspect that x86_64 is just buggy, unless all callers of flush_tlb_others()
have taken care to disable preemption prior to their calculation of the
passed-in cpumask.

Shudder.  Gautham, this is code which we can cheerfully delete when we get
the freezer stuff done.  Fortunately, Anil's patch will make it nice and
easy to find again.

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

\
 
 \ /
  Last update: 2007-04-07 06:29    [from the cache]
©2003-2008