1. 21 4月, 2009 1 次提交
    • J
      x86/uv: fix for no memory at paddr 0 · fc61e663
      Jack Steiner 提交于
      Fix endcase where the memory at physical address 0 does not really
      exist AND one of the sockets on blade 0 has no active cpus.
      
      The memory that _appears_ to be at physical address 0 is actually
      memory that located at a different address but has been remapped by
      the chipset so that it appears to be at physical address 0.
      
      When determining the UV pnode, the algorithm for determining the pnode
      incorrectly used the relocated physical address instead of the actual
      (global) address.
      
      [ Impact: boot failure on partitioned systems ]
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      LKML-Reference: <20090420132530.GA23156@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      fc61e663
  2. 19 4月, 2009 1 次提交
  3. 18 4月, 2009 4 次提交
    • J
      x86: mm/numa_32.c calculate_numa_remap_pages should use __init · a81b6314
      Jaswinder Singh Rajput 提交于
      calculate_numa_remap_pages() is called only by __init initmem_init()
      further calculate_numa_remap_pages is calling:
      	__init find_e820_area() and __init reserve_early()
      
      So calculate_numa_remap_pages() should be __init calculate_numa_remap_pages().
      
       WARNING: arch/x86/built-in.o(.text+0x82ea3): Section mismatch in reference from the function calculate_numa_remap_pages() to the function .init.text:find_e820_area()
       The function calculate_numa_remap_pages() references
       the function __init find_e820_area().
       This is often because calculate_numa_remap_pages lacks a __init
       annotation or the annotation of find_e820_area is wrong.
      
       WARNING: arch/x86/built-in.o(.text+0x82f5f): Section mismatch in reference from the function calculate_numa_remap_pages() to the function .init.text:reserve_early()
       The function calculate_numa_remap_pages() references
       the function __init reserve_early().
       This is often because calculate_numa_remap_pages lacks a __init
       annotation or the annotation of reserve_early is wrong.
      
      [ Impact: save memory, address Section mismatch warning ]
      Signed-off-by: NJaswinder Singh Rajput <jaswinderrajput@gmail.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      LKML-Reference: <1239991281.3153.4.camel@ht.satnam>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a81b6314
    • H
      x86, kbuild: make "make install" not depend on vmlinux · 1648e4f8
      H. Peter Anvin 提交于
      It is common to use "make install" in restricted environments which
      differ from the one which was actually used to build the kernel.  In
      such environments it is highly undesirable to trigger a rebuild of any
      part of the system.  Worse, the rebuild may be spurious, triggered by
      differences in the environment.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      LKML-Reference: <20090415234642.GA28531@uranus.ravnborg.org>
      1648e4f8
    • J
      x86/uv: fix init of cpu-less nodes · 27229ca6
      Jack Steiner 提交于
      Fix an endcase in the UV initialization code for the "UV large system mode"
      of apicids.  If node zero contains no cpus, cpus on another node will be the
      boot cpu.  The percpu data that contains the extra apicid bits was not
      being initialized early enough.
      
      [ Impact: fix potential boot crash on cpu-less UV nodes ]
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      LKML-Reference: <20090417142447.GA23759@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      27229ca6
    • J
      x86/uv: fix init of memory-less nodes · dc098551
      Jack Steiner 提交于
      Add support for nodes that have cpus but no memory.
      The current code was failing to add these nodes
      to the nodes_present_map.
      
      v2: Fixes case caught by David Rientjes - missed support
          for the x2apic SRAT table.
      
      [ Impact: fix potential boot crash on memory-less UV nodes. ]
      Reported-by: NDavid Rientjes <rientjes@google.com>
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      LKML-Reference: <20090417142242.GA23743@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      dc098551
  4. 17 4月, 2009 3 次提交
    • D
      x86: fix microcode driver newly spewing warnings · 0917798d
      Dmitry Adamushko 提交于
      Jeff Garzik reported this WARN_ON() noise:
      
      > Kernel: 2.6.30-rc1-00306-g8371f87c
      > Hardware: ICH10 x86-64
      >
      > This is a regression from 2.6.29.  Microcode spews the following WARNING
      > multiple times during boot:
      >
      > ------------[ cut here ]------------
      > WARNING: at fs/sysfs/group.c:138 sysfs_remove_group+0xeb/0xf0()
      > Hardware name:         sysfs group ffffffffa0209700 not found for
      >  kobject 'cpu0'
      
      Keep sysfs files around for cpus even when we failed to locate
      microcode for them at the moment of module loading. The appropriate
      microcode firmware can become available later on.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0917798d
    • P
      x86, PAT: Remove page granularity tracking for vm_insert_pfn maps · 4b065046
      Pallipadi, Venkatesh 提交于
      This change resolves the problem of too many single page entries
      in pat_memtype_list and "freeing invalid memtype" errors with i915,
      reported here:
      
        http://marc.info/?l=linux-kernel&m=123845244713183&w=2
      
      Remove page level granularity track and untrack of vm_insert_pfn.
      memtype tracking at page granularity does not scale and cleaner
      approach would be for the driver to request a type for a bigger
      IO address range or PCI io memory range for that device, either at
      mmap time or driver init time and just use that type during
      vm_insert_pfn.
      
      This patch just removes the track/untrack of vm_insert_pfn. That
      means we will be in same state as 2.6.28, with respect to these APIs.
      
      Newer APIs for the drivers to request a memtype for a bigger region
      is coming soon.
      
      [ Impact: fix Xorg startup warnings and hangs ]
      Reported-by: NArkadiusz Miskiewicz <a.miskiewicz@gmail.com>
      Tested-by: NArkadiusz Miskiewicz <a.miskiewicz@gmail.com>
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      LKML-Reference: <20090408223716.GC3493@linux-os.sc.intel.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4b065046
    • C
      x86: UV BAU distribution and payload MMRs · 4ea3c51d
      Cliff Wickman 提交于
      This patch correctly sets BAU memory mapped registers to point
      to the sending activation descriptor table and target payload table.
      
      The "Broadcast Assist Unit" is used for TLB shootdown in UV.
      
      The memory mapped registers that point to sending and receiving
      memory structures contain node numbers.
      
      In one case the __pa() function did not provide the node id of
      memory on blade zero in configurations where that id is nonzero.
      In another case, it was assumed that memory was allocated on
      the local node.  That assumption is not true in a configuration
      in which the node has no memory.
      
      Tested on the UV hardware simulator.
      
      [ Impact: fix possible runtime crash due to incorrect TLB logic ]
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      LKML-Reference: <E1LuR5Z-0007An-B8@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4ea3c51d
  5. 16 4月, 2009 1 次提交
    • I
      x86: disable X86_PTRACE_BTS for now · d45b41ae
      Ingo Molnar 提交于
      Oleg Nesterov found a couple of races in the ptrace-bts code
      and fixes are queued up for it but they did not get ready in time
      for the merge window. We'll merge them in v2.6.31 - until then
      mark the feature as CONFIG_BROKEN. There's no user-space yet
      making use of this so it's not a big issue.
      
      Cc: <stable@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d45b41ae
  6. 15 4月, 2009 3 次提交
    • L
      acpi-cpufreq: fix 'smp_call_function_many()' confusion · ea34f43a
      Linus Torvalds 提交于
      It turns out that 'smp_call_function_many()' doesn't work at all like
      'smp_call_function_single()', and my change to Andrew's patch to use it
      rather than a loop over all CPU's acpi-cpufreq doesn't work.
      
      My bad.
      
      'smp_call_function_many()' has two "features" (aka "documented bugs"):
      
       (a) it needs to be called with preemption disabled, because it uses
           smp_processor_id() without guarding the CPU lookup with 'get_cpu()'
           and 'put_cpu()' like the 'single' variant does.
      
       (b) even if the current CPU is part of the CPU mask, it won't do the
           call on that CPU.
      
      Still, we're better off trying to use 'smp_call_function_many()' than
      looping over CPU's, since it at least in theory allows us to use a
      broadcast IPI and do it all in parallel.  So let's just work around the
      silly semantic bugs in that function.
      Reported-and-tested-by: NAli Gholami Rudi <ali@rudi.ir>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Andrew Morton <akpm@linux-foundation.org>,
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Dave Jones <davej@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ea34f43a
    • H
      x86 microcode: revert some work_on_cpu · 6f66cbc6
      Hugh Dickins 提交于
      Revert part of af5c820a ("x86: cpumask:
      use work_on_cpu in arch/x86/kernel/microcode_core.c")
      
      That change is causing only one Intel CPU's microcode to be updated e.g.
      microcode: CPU3 updated from revision 0x9 to 0x17, date = 2005-04-22
      where before it announced that also for CPU0 and CPU1 and CPU2.
      
      We cannot use work_on_cpu() in the CONFIG_MICROCODE_OLD_INTERFACE code,
      because Intel's request_microcode_user() involves a copy_from_user() from
      /sbin/microcode_ctl, which therefore needs to be on that CPU at the time.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6f66cbc6
    • C
      x86: UV: BAU partition-relative distribution map · 94ca8e48
      Cliff Wickman 提交于
      This patch enables each partition's BAU distribution bit map
      to be partition-relative.
      
      The distribution bitmap had been constructed assuming 0 as the base
      node number.  That construct would not have allowed a total system of
      greater than 256 nodes.
      It also corrects an error that occurred when the first blade's nasid
      was not zero.  That nasid was stored as the base node.
      The base node number gets added by hardware to the node numbers implied
      in the distribution bitmap, resulting in invalid target nasids.
      
      Tested on the UV hardware simulator.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      LKML-Reference: <E1Ltl0C-0004Ob-37@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      94ca8e48
  7. 14 4月, 2009 3 次提交
  8. 12 4月, 2009 3 次提交
    • S
      x86: add linux kernel support for YMM state · a30469e7
      Suresh Siddha 提交于
      Impact: save/restore Intel-AVX state properly between tasks
      
      Intel Advanced Vector Extensions (AVX) introduce 256-bit vector processing
      capability. More about AVX at http://software.intel.com/sites/avx
      
      Add OS support for YMM state management using xsave/xrstor infrastructure
      to support AVX.
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      LKML-Reference: <1239402084.27006.8057.camel@localhost.localdomain>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a30469e7
    • M
      x86: fix wrong section of pat_disable & make it static · 1ee4bd92
      Marcin Slusarz 提交于
      pat_disable cannot be __cpuinit anymore because it's called from pat_init
      and the callchain looks like this:
      pat_disable [cpuinit] <- pat_init <- generic_set_all <-
       ipi_handler <- set_mtrr <- (other non init/cpuinit functions)
      
      WARNING: arch/x86/mm/built-in.o(.text+0x449e): Section mismatch in reference
      from the function pat_init() to the function .cpuinit.text:pat_disable()
      The function pat_init() references
      the function __cpuinit pat_disable().
      This is often because pat_init lacks a __cpuinit
      annotation or the annotation of pat_disable is wrong.
      
      Non CONFIG_X86_PAT version of pat_disable is static inline, so this version
      can be static too (and there are no callers outside of this file).
      Signed-off-by: NMarcin Slusarz <marcin.slusarz@gmail.com>
      Acked-by: NSam Ravnborg <sam@ravnborg.org>
      LKML-Reference: <49DFB055.6070405@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1ee4bd92
    • R
      x86: Fix section mismatches in mpparse · 57592224
      Rakib Mullick 提交于
      Impact: fix section mismatch
      
      In arch/x86/kernel/mpparse.c, smp_reserve_bootmem() has been called
      and also refers to a function which is in .init section. Thus causes
      the first warning. And check_irq_src() also requires an __init,
      because it refers to an .init section.
      Signed-off-by: NRakib Mullick <rakib.mullick@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      LKML-Reference: <b9df5fa10904102004g51265d9axc8d07278bfdb6ba0@mail.gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      57592224
  9. 11 4月, 2009 1 次提交
  10. 10 4月, 2009 9 次提交
  11. 09 4月, 2009 11 次提交