• Alexey Dobriyan's avatar
    rdmsr_on_cpu, wrmsr_on_cpu · b077ffb3
    Alexey Dobriyan authored
    There was OpenVZ specific bug rendering some cpufreq drivers unusable on SMP.
    In short, when cpufreq code thinks it confined itself to needed cpu by means
    of set_cpus_allowed() to execute rdmsr, some "virtual cpu" feature can migrate
    process to anywhere.  This triggers bugons and does wrong things in general.
    
    This got fixed by introducing rdmsr_on_cpu and wrmsr_on_cpu executing rdmsr
    and wrmsr on given physical cpu by means of smp_call_function_single().
    
    Dave Jones mentioned cpufreq might be not only user of rdmsr_on_cpu() and
    wrmsr_on_cpu(), so I'm putting them into arch/{i386,x86_64}/lib/ .
    Signed-off-by: default avatarAlexey Dobriyan <adobriyan@openvz.org>
    Cc: Andi Kleen <ak@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarDave Jones <davej@redhat.com>
    b077ffb3
msr-on-cpu.c 1.21 KB