1. 03 5月, 2007 37 次提交
    • R
      [PATCH] i386: Use per-cpu GDT immediately upon boot · bf504672
      Rusty Russell 提交于
      Now we are no longer dynamically allocating the GDT, we don't need the
      "cpu_gdt_table" at all: we can switch straight from "boot_gdt_table" to the
      per-cpu GDT.  This means initializing the cpu_gdt array in C.
      
      The boot CPU uses the per-cpu var directly, then in smp_prepare_cpus() it
      switches to the per-cpu copy just allocated.  For secondary CPUs, the
      early_gdt_descr is set to point directly to their per-cpu copy.
      
      For UP the code is very simple: it keeps using the "per-cpu" GDT as per SMP,
      but we never have to move.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      bf504672
    • R
      [PATCH] i386: Use per-cpu variables for GDT, PDA · ae1ee11b
      Rusty Russell 提交于
      Allocating PDA and GDT at boot is a pain.  Using simple per-cpu variables adds
      happiness (although we need the GDT page-aligned for Xen, which we do in a
      followup patch).
      
      [akpm@linux-foundation.org: build fix]
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      ae1ee11b
    • I
      [PATCH] i386: Allow i386 crash kernels to handle x86_64 dumps · 79e03011
      Ian Campbell 提交于
      The specific case I am encountering is kdump under Xen with a 64 bit
      hypervisor and 32 bit kernel/userspace.  The dump created is 64 bit due to
      the hypervisor but the dump kernel is 32 bit for maximum compatibility.
      
      It's possibly less likely to be useful in a purely native scenario but I
      see no reason to disallow it.
      
      [akpm@linux-foundation.org: build fix]
      Signed-off-by: NIan Campbell <ian.campbell@xensource.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Acked-by: NVivek Goyal <vgoyal@in.ibm.com>
      Cc: Horms <horms@verge.net.au>
      Cc: Magnus Damm <magnus.damm@gmail.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      79e03011
    • R
      [PATCH] x86-64: Introduce load_TLS to the "for" loop. · eab0c72a
      Rusty Russell 提交于
      GCC (4.1 at least) unrolls it anyway, but I can't believe this code
      was ever justifiable.  (I've also submitted a patch which cleans up
      i386, which is even uglier).
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      eab0c72a
    • R
      [PATCH] i386: Initialize esp0 properly all the time · 692174b9
      Rusty Russell 提交于
      Whenever we schedule, __switch_to calls load_esp0 which does:
      
      	tss->esp0 = thread->esp0;
      
      This is never initialized for the initial thread (ie "swapper"), so when we're
      scheduling that, we end up setting esp0 to 0.  This is fine: the swapper never
      leaves ring 0, so this field is never used.
      
      lguest, however, gets upset that we're trying to used an unmapped page as our
      kernel stack.  Rather than work around it there, let's initialize it.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      692174b9
    • D
      [PATCH] x86-64: configurable fake numa node sizes · 8b8ca80e
      David Rientjes 提交于
      Extends the numa=fake x86_64 command-line option to allow for configurable
      node sizes.  These nodes can be used in conjunction with cpusets for coarse
      memory resource management.
      
      The old command-line option is still supported:
        numa=fake=32	gives 32 fake NUMA nodes, ignoring the NUMA setup of the
      		actual machine.
      
      But now you may configure your system for the node sizes of your choice:
        numa=fake=2*512,1024,2*256
      		gives two 512M nodes, one 1024M node, two 256M nodes, and
      		the rest of system memory to a sixth node.
      
      The existing hash function is maintained to support the various node sizes
      that are possible with this implementation.
      
      Each node of the same size receives roughly the same amount of available
      pages, regardless of any reserved memory with its address range.  The total
      available pages on the system is calculated and divided by the number of equal
      nodes to allocate.  These nodes are then dynamically allocated and their
      borders extended until such time as their number of available pages reaches
      the required size.
      
      Configurable node sizes are recommended when used in conjunction with cpusets
      for memory control because it eliminates the overhead associated with scanning
      the zonelists of many smaller full nodes on page_alloc().
      
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Paul Jackson <pj@sgi.com>
      Cc: Christoph Lameter <clameter@engr.sgi.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      8b8ca80e
    • J
      [PATCH] x86: Log reason why TSC was marked unstable · 5a90cf20
      john stultz 提交于
      Change mark_tsc_unstable() so it takes a string argument, which holds the
      reason the TSC was marked unstable.
      
      This is then displayed the first time mark_tsc_unstable is called.
      
      This should help us better debug why the TSC was marked unstable on certain
      systems and allow us to make sure we're not being overly paranoid when
      throwing out this troublesome clocksource.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      5a90cf20
    • V
      [PATCH] i386: modpost apic related warning fixes · 1833d6bc
      Vivek Goyal 提交于
      o Modpost generates warnings for i386 if compiled with CONFIG_RELOCATABLE=y
      
      WARNING: vmlinux - Section mismatch: reference to .init.text:find_unisys_acpi_oem_table from .text between 'acpi_madt_oem_check' (at offset 0xc0101eda) and 'enable_apic_mode'
      WARNING: vmlinux - Section mismatch: reference to .init.text:acpi_get_table_header_early from .text between 'acpi_madt_oem_check' (at offset 0xc0101ef0) and 'enable_apic_mode'
      WARNING: vmlinux - Section mismatch: reference to .init.text:parse_unisys_oem from .text between 'acpi_madt_oem_check' (at offset 0xc0101f2e) and 'enable_apic_mode'
      WARNING: vmlinux - Section mismatch: reference to .init.text:setup_unisys from .text between 'acpi_madt_oem_check' (at offset 0xc0101f37) and 'enable_apic_mode'WARNING: vmlinux - Section mismatch: reference to .init.text:parse_unisys_oem from .text between 'mps_oem_check' (at offset 0xc0101ec7) and 'acpi_madt_oem_check'
      WARNING: vmlinux - Section mismatch: reference to .init.text:es7000_sw_apic from .text between 'enable_apic_mode' (at offset 0xc0101f48) and 'check_apicid_present'
      
      o Some functions which are inline (acpi_madt_oem_check) are not inlined by
        compiler as these functions are accessed using function pointer. These
        functions are put in .text section and they in-turn access __init type
        functions hence modpost generates warnings.
      
      o Do not iniline acpi_madt_oem_check, instead make it __init.
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Len Brown <lenb@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      1833d6bc
    • R
      [PATCH] x86-64: Set HASHDIST_DEFAULT to 1 for x86_64 NUMA · e073ae1b
      Ravikiran G Thirumalai 提交于
      Enable system hashtable memory to be distributed among nodes on x86_64 NUMA
      
      Forcing the kernel to use node interleaved vmalloc instead of bootmem for
      the system hashtable memory (alloc_large_system_hash) reduces the memory
      imbalance on node 0 by around 40MB on a 8 node x86_64 NUMA box:
      
      Before the following patch, on bootup of a 8 node box:
      
      Node 0 MemTotal:      3407488 kB
      Node 0 MemFree:       3206296 kB
      Node 0 MemUsed:        201192 kB
      Node 0 Active:           7012 kB
      Node 0 Inactive:          512 kB
      Node 0 Dirty:               0 kB
      Node 0 Writeback:           0 kB
      Node 0 FilePages:        1912 kB
      Node 0 Mapped:            420 kB
      Node 0 AnonPages:        5612 kB
      Node 0 PageTables:        468 kB
      Node 0 NFS_Unstable:        0 kB
      Node 0 Bounce:              0 kB
      Node 0 Slab:             5408 kB
      Node 0 SReclaimable:      644 kB
      Node 0 SUnreclaim:       4764 kB
      
      After the patch (or using hashdist=1 on the kernel command line):
      
      Node 0 MemTotal:      3407488 kB
      Node 0 MemFree:       3247608 kB
      Node 0 MemUsed:        159880 kB
      Node 0 Active:           3012 kB
      Node 0 Inactive:          616 kB
      Node 0 Dirty:               0 kB
      Node 0 Writeback:           0 kB
      Node 0 FilePages:        2424 kB
      Node 0 Mapped:            380 kB
      Node 0 AnonPages:        1200 kB
      Node 0 PageTables:        396 kB
      Node 0 NFS_Unstable:        0 kB
      Node 0 Bounce:              0 kB
      Node 0 Slab:             6304 kB
      Node 0 SReclaimable:     1596 kB
      Node 0 SUnreclaim:       4708 kB
      
      I guess it is a good idea to keep HASHDIST_DEFAULT "on" for x86_64 NUMA
      since x86_64 has no dearth of vmalloc space?  Or maybe enable hash
      distribution for all 64bit NUMA arches?  The following patch does it only
      for x86_64.
      
      I ran a HPC MPI benchmark -- 'Ansys wingsolid', which takes up quite a bit of
      memory and uses up tlb entries.  This was on a 4 way, 2 socket
      Tyan AMD box (non vsmp), with 8G total memory (4G pernode).
      
      The results with and without hash distribution are:
      
      1. Vanilla - runtime of 1188.000s
      2. With hashdist=1 runtime of 1154.000s
      
      Oprofile output for the duration of run is:
      
      1. Vanilla:
      PU: AMD64 processors, speed 2411.16 MHz (estimated)
      Counted L1_AND_L2_DTLB_MISSES events (L1 and L2 DTLB misses) with a unit
      mask of 0x00 (No unit mask) count 500
      samples  %        app name                 symbol name
      163054    6.5513  libansys1.so             MultiFront::decompose(int, int,
      Elemset *, int *, int, int, int)
      162061    6.5114  libansys3.so             blockSaxpy6L_fd
      162042    6.5107  libansys3.so             blockInnerProduct6L_fd
      156286    6.2794  libansys3.so             maxb33_
      87879     3.5309  libansys1.so             elmatrixmultpcg_
      84857     3.4095  libansys4.so             saxpy_pcg
      58637     2.3560  libansys4.so             .st4560
      46612     1.8728  libansys4.so             .st4282
      43043     1.7294  vmlinux-t                copy_user_generic_string
      41326     1.6604  libansys3.so             blockSaxpyBackSolve6L_fd
      41288     1.6589  libansys3.so             blockInnerProductBackSolve6L_fd
      
      2. With hashdist=1
      CPU: AMD64 processors, speed 2411.13 MHz (estimated)
      Counted L1_AND_L2_DTLB_MISSES events (L1 and L2 DTLB misses) with a unit
      mask of 0x00 (No unit mask) count 500
      samples  %        app name                 symbol name
      162993    6.9814  libansys1.so             MultiFront::decompose(int, int,
      Elemset *, int *, int, int, int)
      160799    6.8874  libansys3.so             blockInnerProduct6L_fd
      160459    6.8729  libansys3.so             blockSaxpy6L_fd
      156018    6.6826  libansys3.so             maxb33_
      84700     3.6279  libansys4.so             saxpy_pcg
      83434     3.5737  libansys1.so             elmatrixmultpcg_
      58074     2.4875  libansys4.so             .st4560
      46000     1.9703  libansys4.so             .st4282
      41166     1.7632  libansys3.so             blockSaxpyBackSolve6L_fd
      41033     1.7575  libansys3.so             blockInnerProductBackSolve6L_fd
      35762     1.5318  libansys1.so             inner_product_sub
      35591     1.5245  libansys1.so             inner_product_sub2
      28259     1.2104  libansys4.so             addVectors
      Signed-off-by: NPravin B. Shelar <pravin.shelar@calsoftinc.com>
      Signed-off-by: NRavikiran Thirumalai <kiran@scalex86.org>
      Signed-off-by: NShai Fultheim <shai@scalex86.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Acked-by: NChristoph Lameter <clameter@engr.sgi.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      e073ae1b
    • A
      [PATCH] x86-64: fix x86_64-mm-sched-clock-share · 184c44d2
      Andrew Morton 提交于
      Fix for the following patch. Provide dummy cpufreq functions when
      CPUFREQ is not compiled in.
      
      Cc: Andi Kleen <ak@suse.de>
      Cc: Dave Jones <davej@codemonkey.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      184c44d2
    • V
      [PATCH] x86-64: build-time checking · 6a50a664
      Vivek Goyal 提交于
      o X86_64 kernel should run from 2MB aligned address for two reasons.
      	- Performance.
      	- For relocatable kernels, page tables are updated based on difference
      	  between compile time address and load time physical address.
      	  This difference should be multiple of 2MB as kernel text and data
      	  is mapped using 2MB pages and PMD should be pointing to a 2MB
      	  aligned address. Life is simpler if both compile time and load time
      	  kernel addresses are 2MB aligned.
      
      o Flag the error at compile time if one is trying to build a kernel which
        does not meet alignment restrictions.
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      6a50a664
    • V
      [PATCH] x86-64: Relocatable Kernel Support · 1ab60e0f
      Vivek Goyal 提交于
      This patch modifies the x86_64 kernel so that it can be loaded and run
      at any 2M aligned address, below 512G.  The technique used is to
      compile the decompressor with -fPIC and modify it so the decompressor
      is fully relocatable.  For the main kernel the page tables are
      modified so the kernel remains at the same virtual address.  In
      addition a variable phys_base is kept that holds the physical address
      the kernel is loaded at.  __pa_symbol is modified to add that when
      we take the address of a kernel symbol.
      
      When loaded with a normal bootloader the decompressor will decompress
      the kernel to 2M and it will run there.  This both ensures the
      relocation code is always working, and makes it easier to use 2M
      pages for the kernel and the cpu.
      
      AK: changed to not make RELOCATABLE default in Kconfig
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      1ab60e0f
    • V
      [PATCH] x86: __pa and __pa_symbol address space separation · 0dbf7028
      Vivek Goyal 提交于
      Currently __pa_symbol is for use with symbols in the kernel address
      map and __pa is for use with pointers into the physical memory map.
      But the code is implemented so you can usually interchange the two.
      
      __pa which is much more common can be implemented much more cheaply
      if it is it doesn't have to worry about any other kernel address
      spaces.  This is especially true with a relocatable kernel as
      __pa_symbol needs to peform an extra variable read to resolve
      the address.
      
      There is a third macro that is added for the vsyscall data
      __pa_vsymbol for finding the physical addesses of vsyscall pages.
      
      Most of this patch is simply sorting through the references to
      __pa or __pa_symbol and using the proper one.  A little of
      it is continuing to use a physical address when we have it
      instead of recalculating it several times.
      
      swapper_pgd is now NULL.  leave_mm now uses init_mm.pgd
      and init_mm.pgd is initialized at boot (instead of compile time)
      to the physmem virtual mapping of init_level4_pgd.  The
      physical address changed.
      
      Except for the for EMPTY_ZERO page all of the remaining references
      to __pa_symbol appear to be during kernel initialization.  So this
      should reduce the cost of __pa in the common case, even on a relocated
      kernel.
      
      As this is technically a semantic change we need to be on the lookout
      for anything I missed.  But it works for me (tm).
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      0dbf7028
    • V
      [PATCH] x86-64: Remove the identity mapping as early as possible · cfd243d4
      Vivek Goyal 提交于
      With the rewrite of the SMP trampoline and the early page
      allocator there is nothing that needs identity mapped pages,
      once we start executing C code.
      
      So add zap_identity_mappings into head64.c and remove
      zap_low_mappings() from much later in the code.  The functions
       are subtly different thus the name change.
      
      This also kills boot_level4_pgt which was from an earlier
      attempt to move the identity mappings as early as possible,
      and is now no longer needed.  Essentially I have replaced
      boot_level4_pgt with trampoline_level4_pgt in trampoline.S
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      cfd243d4
    • V
      [PATCH] x86-64: wakeup.S rename registers to reflect right names · 7db681d7
      Vivek Goyal 提交于
      o Use appropriate names for 64bit regsiters.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      7db681d7
    • V
      [PATCH] x86-64: Add EFER to the register set saved by save_processor_state · 3c321bce
      Vivek Goyal 提交于
      EFER varies like %cr4 depending on the cpu capabilities, and which cpu
      capabilities we want to make use of.  So save/restore it make certain
      we have the same EFER value when we are done.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      3c321bce
    • V
      [PATCH] x86-64: cleanup segments · 30f47289
      Vivek Goyal 提交于
      Move __KERNEL32_CS up into the unused gdt entry.  __KERNEL32_CS is
      used when entering the kernel so putting it first is useful when
      trying to keep boot gdt sizes to a minimum.
      
      Set the accessed bit on all gdt entries.  We don't care
      so there is no need for the cpu to burn the extra cycles,
      and it potentially allows the pages to be immutable.  Plus
      it is confusing when debugging and your gdt entries mysteriously
      change.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      30f47289
    • V
      [PATCH] x86-64: Clean up the early boot page table · 67dcbb6b
      Vivek Goyal 提交于
      - Merge physmem_pgt and ident_pgt, removing physmem_pgt.  The merge
        is broken as soon as mm/init.c:init_memory_mapping is run.
      - As physmem_pgt is gone don't export it in pgtable.h.
      - Use defines from pgtable.h for page permissions.
      - Fix the physical memory identity mapping so it is at the correct
        address.
      - Remove the physical memory mapping from wakeup_level4_pgt it
        is at the wrong address so we can't possibly be usinging it.
      - Simply NEXT_PAGE the work to calculate the phys_ alias
        of the labels was very cool.  Unfortuantely it was a brittle
        special purpose hack that makes maitenance more difficult.
        Instead just use label - __START_KERNEL_map like we do
        everywhere else in assembly.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      67dcbb6b
    • V
      [PATCH] x86-64: Assembly safe page.h and pgtable.h · 9d291e78
      Vivek Goyal 提交于
      This patch makes pgtable.h and page.h safe to include
      in assembly files like head.S.  Allowing us to use
      symbolic constants instead of hard coded numbers when
      refering to the page tables.
      
      This patch copies asm-sparc64/const.h to asm-x86_64 to
      get a definition of _AC() a very convinient macro that
      allows us to force the type when we are compiling the
      code in C and to drop all of the type information when
      we are using the constant in assembly.  Previously this
      was done with multiple definition of the same constant.
      const.h was modified slightly so that it works when given
      CONFIG options as arguments.
      
      This patch adds #ifndef __ASSEMBLY__ ... #endif
      and _AC(1,UL) where appropriate so the assembler won't
      choke on the header files.  Otherwise nothing
      should have changed.
      
      AK: added const.h to exported headers to fix headers_check
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      9d291e78
    • S
      [PATCH] x86-64: dma_ops as const · e6584504
      Stephen Hemminger 提交于
      The dma_ops structure can be const since it never changes
      after boot.
      Signed-off-by: NStephen Hemminger <shemminger@linux-foundation.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      e6584504
    • J
      [PATCH] x86-64: fix cpu MHz reporting on constant_tsc cpus · 6b37f5a2
      Joerg Roedel 提交于
      This patch fixes the reporting of cpu_mhz in /proc/cpuinfo on CPUs with
      a constant TSC rate and a kernel with disabled cpufreq.
      Signed-off-by: NMark Langsdorf <mark.langsdorf@amd.com>
      Signed-off-by: NJoerg Roedel <joerg.roedel@amd.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      
       arch/x86_64/kernel/apic.c     |    2 -
       arch/x86_64/kernel/time.c     |   58 +++++++++++++++++++++++++++++++++++++++---
       arch/x86_64/kernel/tsc.c      |   12 +++++---
       arch/x86_64/kernel/tsc_sync.c |    2 -
       include/asm-x86_64/proto.h    |    1
       5 files changed, 65 insertions(+), 10 deletions(-)
      6b37f5a2
    • G
      [PATCH] x86-64: Remove duplicated code for reading control registers · fbc16f2c
      Glauber de Oliveira Costa 提交于
      On Tue, Mar 13, 2007 at 05:33:09AM -0700, Randy.Dunlap wrote:
      > On Tue, 13 Mar 2007, Glauber de Oliveira Costa wrote:
      >
      > > Tiny cleanup:
      > >
      > > In x86_64, the same functions for reading cr3 and writing cr{3,4} are
      > > defined in tlbflush.h and system.h, whith just a name change.
      > > The only difference is the clobbering of memory, which seems a safe, and
      > > even needed change for the write_cr4. This patch removes the duplicate.
      > > write_cr3() is moved to system.h for consistency.
      >
      > missing patch.....
      >
      thanks. Attached now
      
      --
      Glauber de Oliveira Costa
      Red Hat Inc.
      "Free as in Freedom"
      Signed-off-by: NAndi Kleen <ak@suse.de>
      fbc16f2c
    • R
      [PATCH] x86-64: Remove unused set_seg_base · f9d09645
      Rusty Russell 提交于
      The set_seg_base function isn't used anywhere (2.6.21-rc3-git1)
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      f9d09645
    • J
      [PATCH] i386: clean up mach_reboot_fixups · 973efae2
      Jeremy Fitzhardinge 提交于
      The reboot_fixups stuff seems to be a bit of a mess, specifically the
      header is in linux/ when its a purely i386-specific piece of code.  I'm
      not sure why it has its config option; its only currently needed for
      "geode-gx1/cs5530a", so perhaps whatever config option controls that
      hardware should enable this?
      Signed-off-by: NJeremy Fitzhardinge <jeremy@xensource.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      973efae2
    • A
      [PATCH] i386: Update __copy_to_user_inatomic linuxdoc description · 6d1c4261
      Aneesh Kumar K.V 提交于
      Explicity specify that the caller should pin the user memory
      otherwise the function will sleep
      Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@gmail.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      6d1c4261
    • P
      [PATCH] i386: Change sysenter_setup to __cpuinit & improve __INIT, __INITDATA · 86c0baf1
      Prarit Bhargava 提交于
      Change sysenter_setup to __cpuinit.
      Change __INIT & __INITDATA to be cpu hotplug aware.
      
      Resolve MODPOST warnings similar to:
      
      WARNING: vmlinux - Section mismatch: reference to .init.text:sysenter_setup from
       .text between 'identify_cpu' (at offset 0xc040a380) and 'detect_ht'
      
      and
      
      WARNING: vmlinux - Section mismatch: reference to .init.data:vsyscall_int80_end
      from .text between 'sysenter_setup' (at offset 0xc041a269) and 'enable_sep_cpu'
      WARNING: vmlinux - Section mismatch: reference to
      .init.data:vsyscall_int80_start from .text between 'sysenter_setup' (at offset
      0xc041a26e) and 'enable_sep_cpu'
      WARNING: vmlinux - Section mismatch: reference to
      .init.data:vsyscall_sysenter_end from .text between 'sysenter_setup' (at offset
      0xc041a275) and 'enable_sep_cpu'
      WARNING: vmlinux - Section mismatch: reference to
      .init.data:vsyscall_sysenter_start from .text between 'sysenter_setup' (at
      offset 0xc041a27a) and 'enable_sep_cpu'
      Signed-off-by: NPrarit Bhargava <prarit@redhat.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      86c0baf1
    • A
      [PATCH] x86-64: Some cleanup in time.c · 803d80f6
      Andi Kleen 提交于
      Move prototypes into header files
      Remove unneeded includes.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      803d80f6
    • S
      [PATCH] i386: Add an option for the VIA C7 which sets appropriate L1 cache · 0949be35
      Simon Arlott 提交于
      The VIA C7 is a 686 (with TSC) that supports MMX, SSE and SSE2, it also has
      a cache line length of 64 according to
      http://www.digit-life.com/articles2/cpu/rmma-via-c7.html.  This patch sets
      gcc to -march=686 and select s the correct cache shift.
      Signed-off-by: NSimon Arlott <simon@fire.lp0.eu>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Dave Jones <davej@codemonkey.org.uk>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      0949be35
    • T
      [PATCH] i386: pit_latch_buggy has no effect · f5e88615
      takada 提交于
      Eliminated the arch/i386/kernel/timers in 2.6.18, use clocksoures instead.
      pit_latch_buggy was referred in timers/timer_tsc.c, and currently removed.
      Therefore nobody refer it.
      
      Until 2.6.17, MediaGX's TSC works correctly.  after 2.6.18, warned "TSC
      appears to be running slowly.  Marking it as unstable".  So marked unstable
      TSC when CS55x0.
      
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      f5e88615
    • J
      [PATCH] i386: No need to use -traditional for processing asm in i386/kernel/ · f76c3923
      Jeremy Fitzhardinge 提交于
      No need to use -traditional for processing asm in i386/kernel/
      Signed-off-by: NJeremy Fitzhardinge <jeremy@xensource.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      f76c3923
    • J
      [PATCH] x86: consolidate smp_send_stop() · 9964cf7d
      Jan Beulich 提交于
      Synchronize i386's smp_send_stop() with x86-64's in only try-locking
      the call lock to prevent deadlocks when called from panic().
      In both version, disable interrupts before clearing the CPU off the
      online map to eliminate races with IRQ handlers inspecting this map.
      Also in both versions, save/restore interrupts rather than disabling/
      enabling them.
      On x86-64, eliminate one function used here by folding it into its
      single caller, convert to static, and rename for consistency with i386
      (lkcd may like this).
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      9964cf7d
    • J
      [PATCH] x86-64: adjust inclusion of asm/vsyscall32.h · b0354795
      Jan Beulich 提交于
      Avoid including asm/vsyscall32.h in virtually every source file.
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      b0354795
    • J
      [PATCH] x86: adjust inclusion of asm/fixmap.h · 00f1ea69
      Jan Beulich 提交于
      Move inclusion of asm/fixmap.h to where it is really used rather than
      where it may have been used long ago (requires a few other adjustments
      to includes due to previous implicit dependencies).
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      00f1ea69
    • I
      [PATCH] x86: default to physical mode on hotplug CPU kernels · 3c43f039
      Ingo Molnar 提交于
      Default to physical mode on hotplug CPU kernels.  Furher simplify and clean up
      the APIC initialization code.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: "Li, Shaohua" <shaohua.li@intel.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      3c43f039
    • I
      [PATCH] x86-64: always use physical delivery mode on > 8 CPUs · 07c7c474
      Ingo Molnar 提交于
      Remove clustered APIC mode.  There's little point in the use of clustered APIC
      mode, broadcasting is limited to within the cluster only, and chipsets have
      bugs in this area as well.  So default to physical APIC mode when the CPU
      count is large, and default to logical APIC mode when the CPU count is 8 or
      smaller.
      
      (this patch only removes the use of genapic_cluster and cleans up the
      resulting genapic.c file - removal of all remaining traces of clustered
      mode will be done by another patch.)
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: "Li, Shaohua" <shaohua.li@intel.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      07c7c474
    • A
      [PATCH] x86: revert x86_64-mm-fix-the-irqbalance-quirk-for-e7320-e7520-e7525 · a86f34b4
      Andrew Morton 提交于
      Obsoleted by Ingo's genapic stuff.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: "Li, Shaohua" <shaohua.li@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      a86f34b4
    • A
      [PATCH] x86-64: revert x86_64-mm-add-genapic_force · 3dc68d9b
      Andrew Morton 提交于
      This is obsoleted by new Ingo genapic patches.
      
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: "Li, Shaohua" <shaohua.li@intel.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      3dc68d9b
  2. 01 5月, 2007 3 次提交