1. 11 9月, 2009 1 次提交
  2. 05 9月, 2009 1 次提交
    • H
      x86, msr: change msr-reg.o to obj-y, and export its symbols · b19ae399
      H. Peter Anvin 提交于
      Change msr-reg.o to obj-y (it will be included in virtually every
      kernel since it is used by the initialization code for AMD processors)
      and add a separate C file to export its symbols to modules, so that
      msr.ko can use them; on uniprocessors we bypass the helper functions
      in msr.o and use the accessor functions directly via inlines.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      LKML-Reference: <20090904140834.GA15789@elte.hu>
      Cc: Borislav Petkov <petkovbb@googlemail.com>
      b19ae399
  3. 04 9月, 2009 6 次提交
    • Y
      x86: Use hard_smp_processor_id() to get apic id for AMD K8 cpus · 0d96b9ff
      Yinghai Lu 提交于
      Otherwise, system with apci id lifting will have wrong apicid in
      /proc/cpuinfo.
      
      and use that in srat_detect_node().
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Cc: Andreas Herrmann <andreas.herrmann3@amd.com>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Cyrill Gorcunov <gorcunov@openvz.org>
      LKML-Reference: <4A998CCA.1040407@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0d96b9ff
    • A
      x86, sched: Workaround broken sched domain creation for AMD Magny-Cours · 5a925b42
      Andreas Herrmann 提交于
      Current sched domain creation code can't handle multi-node processors.
      When switching to power_savings scheduling errors show up and
      system might hang later on (due to broken sched domain hierarchy):
      
        # echo 0  >> /sys/devices/system/cpu/sched_mc_power_savings
        CPU0 attaching sched-domain:
         domain 0: span 0-5 level MC
          groups: 0 1 2 3 4 5
          domain 1: span 0-23 level NODE
           groups: 0-5 6-11 18-23 12-17
        ...
        # echo 1  >> /sys/devices/system/cpu/sched_mc_power_savings
        CPU0 attaching sched-domain:
         domain 0: span 0-11 level MC
          groups: 0 1 2 3 4 5 6 7 8 9 10 11
        ERROR: parent span is not a superset of domain->span
          domain 1: span 0-5 level CPU
        ERROR: domain->groups does not contain CPU0
           groups: 6-11 (__cpu_power = 12288)
        ERROR: groups don't span domain->span
           domain 2: span 0-23 level NODE
            groups:
        ERROR: domain->cpu_power not set
      
        ERROR: groups don't span domain->span
        ...
      
      Fixing all aspects of power-savings scheduling for Magny-Cours needs
      some larger changes in the sched domain creation code.
      
      As a short-term and temporary workaround avoid the problems by
      extending "the worst possible hack" ;-(
      and always use llc_shared_map on AMD Magny-Cours when MC domain span
      is calculated.
      
      With this I get:
      
        # echo 1  >> /sys/devices/system/cpu/sched_mc_power_savings
        CPU0 attaching sched-domain:
         domain 0: span 0-5 level MC
          groups: 0 1 2 3 4 5
          domain 1: span 0-5 level CPU
           groups: 0-5 (__cpu_power = 6144)
           domain 2: span 0-23 level NODE
            groups: 0-5 (__cpu_power = 6144) 6-11 (__cpu_power = 6144) 18-23 (__cpu_power = 6144) 12-17 (__cpu_power = 6144)
        ...
      
      I.e. no errors during sched domain creation, no system hangs, and also
      mc_power_savings scheduling works to a certain extend.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NAndreas Herrmann <andreas.herrmann3@amd.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      5a925b42
    • A
      x86, mcheck: Use correct cpumask for shared bank4 · cb9805ab
      Andreas Herrmann 提交于
      This fixes threshold_bank4 support on multi-node processors.
      
      The correct mask to use is llc_shared_map, representing an internal
      node on Magny-Cours.
      
      We need to create 2 sets of symlinks for sibling shared banks -- one
      set for each internal node, symlinks of each set should target the
      first core on same internal node.
      
      Currently only one set is created where all symlinks are targeting
      the first core of the entire socket.
      Signed-off-by: NAndreas Herrmann <andreas.herrmann3@amd.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      cb9805ab
    • A
      x86, cacheinfo: Fixup L3 cache information for AMD multi-node processors · a326e948
      Andreas Herrmann 提交于
      L3 cache size, associativity and shared_cpu information need to be
      adapted to show information for an internal node instead of the
      entire physical package.
      Signed-off-by: NAndreas Herrmann <andreas.herrmann3@amd.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      a326e948
    • A
      x86: Fix CPU llc_shared_map information for AMD Magny-Cours · 4a376ec3
      Andreas Herrmann 提交于
      Construct entire NodeID and use it as cpu_llc_id. Thus internal node
      siblings are stored in llc_shared_map.
      Signed-off-by: NAndreas Herrmann <andreas.herrmann3@amd.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      4a376ec3
    • I
      x86, msr: Fix msr-reg.S compilation with gas 2.16.1, on 32-bit too · 8adf65cf
      Ingo Molnar 提交于
      The macro was defined in the 32-bit path as well - breaking the
      build on 32-bit platforms:
      
        arch/x86/lib/msr-reg.S: Assembler messages:
        arch/x86/lib/msr-reg.S:53: Error: Bad macro parameter list
        arch/x86/lib/msr-reg.S:100: Error: invalid character '_' in mnemonic
        arch/x86/lib/msr-reg.S:101: Error: invalid character '_' in mnemonic
      
      Cc: Borislav Petkov <petkovbb@googlemail.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      LKML-Reference: <tip-f6909f39@git.kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8adf65cf
  4. 02 9月, 2009 2 次提交
    • H
      x86: Move kernel_fpu_using to irq_fpu_usable in asm/i387.h · ae4b688d
      Huang Ying 提交于
      This function measures whether the FPU/SSE state can be touched in
      interrupt context. If the interrupted code is in user space or has no
      valid FPU/SSE context (CR0.TS == 1), FPU/SSE state can be used in IRQ
      or soft_irq context too.
      
      This is used by AES-NI accelerated AES implementation and PCLMULQDQ
      accelerated GHASH implementation.
      
      v3:
       - Renamed to irq_fpu_usable to reflect the purpose of the function.
      
      v2:
       - Renamed to irq_is_fpu_using to reflect the real situation.
      Signed-off-by: NHuang Ying <ying.huang@intel.com>
      CC: H. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      ae4b688d
    • H
      x86, msr: fix msr-reg.S compilation with gas 2.16.1 · f6909f39
      H. Peter Anvin 提交于
      msr-reg.S used the :req option on a macro argument, which wasn't
      supported by gas 2.16.1 (but apparently by some earlier versions of
      gas, just to be confusing.)  It isn't necessary, so just remove it.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Cc: Borislav Petkov <petkovbb@googlemail.com>
      f6909f39
  5. 01 9月, 2009 10 次提交
  6. 23 8月, 2009 2 次提交
  7. 22 8月, 2009 7 次提交
  8. 21 8月, 2009 11 次提交