lkml.org 
[lkml]   [2008]   [Mar]   [26]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 26 Mar 2008 07:53:17 +0100
FromIngo Molnar <>
SubjectRe: [PATCH 09/10] x86: oprofile: remove NR_CPUS arrays in arch/x86/oprofile/nmi_int.c
* Mike Travis <travis@sgi.com> wrote:

> Change the following arrays sized by NR_CPUS to be PERCPU variables:
> 
> 	static struct op_msrs cpu_msrs[NR_CPUS];
> 	static unsigned long saved_lvtpc[NR_CPUS];
> 
> Also some minor complaints from checkpatch.pl fixed.

thanks, applied.

> All changes were transparent except for:
> 
>  static void nmi_shutdown(void)
>  {
> +	struct op_msrs *msrs = &__get_cpu_var(cpu_msrs);
>  	nmi_enabled = 0;
>  	on_each_cpu(nmi_cpu_shutdown, NULL, 0, 1);
>  	unregister_die_notifier(&profile_exceptions_nb);
> -	model->shutdown(cpu_msrs);
> +	model->shutdown(msrs);
>  	free_msrs();
>  }
> 
> The existing code passed a reference to cpu 0's instance of struct 
> op_msrs to model->shutdown, whilst the other functions are passed a 
> reference to <this cpu's> instance of a struct op_msrs.  This seemed 
> to be a bug to me even though as long as cpu 0 and <this cpu> are of 
> the same type it would have the same effect...?

i dont think this has any real effect in practice (the model pointers 
are not expected to change across cpus on the same system) - but in any 
case i've promoted your observation to the main portion of the changelog 
so that we'll have notice of this.

(someone might want to play with simulating a weaker CPU on a secondary 
core, but we've got tons of other assumptions on CPU type symmetry.)

	Ingo


\
 
 \ /
  Last update: 2008-03-26 07:55    [from the cache]
©2003-2008