lkml.org 
[lkml]   [2011]   [Apr]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 3/3] x86, cpu: Change NOP selection for certain Intel CPUs
    From
    Date
    On Mon, 2011-04-18 at 15:36 -0700, H. Peter Anvin wrote:
    > Due to a decoder implementation quirk, some specific Intel CPUs
    > actually perform better with the "k8_nops" than with the
    > SDM-recommended NOPs. For runtime-selected NOPs, if we detect those
    > specific CPUs then use the k8_nops instead of the ones we would
    > normally use.
    >
    > Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    > Cc: Tejun Heo <tj@kernel.org>
    > Cc: Steven Rostedt <rostedt@goodmis.org>
    > Cc: Frederic Weisbecker <fweisbec@gmail.com>
    > Cc: Jason Baron <jbaron@redhat.com>
    > ---
    > arch/x86/kernel/alternative.c | 9 ++++++++-
    > 1 files changed, 8 insertions(+), 1 deletions(-)
    >
    > diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
    > index 2ca3f65..34bf87e 100644
    > --- a/arch/x86/kernel/alternative.c
    > +++ b/arch/x86/kernel/alternative.c
    > @@ -190,7 +190,14 @@ void __init arch_init_ideal_nops(void)
    > {
    > switch (boot_cpu_data.x86_vendor) {
    > case X86_VENDOR_INTEL:

    Please add:

    /*
    * Due to a decoder implementation quirk, some specific Intel CPUs
    * actually perform better with the "k8_nops" than with the
    * SDM-recommended NOPs. For runtime-selected NOPs, if we detect those
    * specific CPUs then use the k8_nops instead of the ones we would
    * normally use.
    */

    I tend to read comments by the code more than change logs that added the
    code.

    Thanks,

    -- Steve

    > - if (boot_cpu_has(X86_FEATURE_NOPL)) {
    > + if (boot_cpu_data.x86 == 6 &&
    > + boot_cpu_data.x86_model >= 0x0f &&
    > + boot_cpu_data.x86_model != 0x1c &&
    > + boot_cpu_data.x86_model != 0x26 &&
    > + boot_cpu_data.x86_model != 0x27 &&
    > + boot_cpu_data.x86_model < 0x30) {
    > + ideal_nops = k8_nops;
    > + } else if (boot_cpu_has(X86_FEATURE_NOPL)) {
    > ideal_nops = p6_nops;
    > } else {
    > #ifdef CONFIG_X86_64




    \
     
     \ /
      Last update: 2011-04-19 01:37    [W:0.023 / U:67.620 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site