1. 06 Dec, 2006 3 commits
    • Rusty Russell's avatar
      [PATCH] paravirt: Add startup infrastructure for paravirtualization · c9ccf30d
      Rusty Russell authored
      
      1) Each hypervisor writes a probe function to detect whether we are
         running under that hypervisor.  paravirt_probe() registers this
         function.
      
      2) If vmlinux is booted with ring != 0, we call all the probe
         functions (with registers except %esp intact) in link order: the
         winner will not return.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Zachary Amsden <zach@vmware.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      c9ccf30d
    • Rusty Russell's avatar
      [PATCH] paravirt: header and stubs for paravirtualisation · d3561b7f
      Rusty Russell authored
      
      Create a paravirt.h header for all the critical operations which need to be
      replaced with hypervisor calls, and include that instead of defining native
      operations, when CONFIG_PARAVIRT.
      
      This patch does the dumbest possible replacement of paravirtualized
      instructions: calls through a "paravirt_ops" structure.  Currently these are
      function implementations of native hardware: hypervisors will override the ops
      structure with their own variants.
      
      All the pv-ops functions are declared "fastcall" so that a specific
      register-based ABI is used, to make inlining assember easier.
      
      And:
      
      +From: Andy Whitcroft <apw@shadowen.org>
      
      The paravirt ops introduce a 'weak' attribute onto memory_setup().
      Code ordering leads to the following warnings on x86:
      
          arch/i386/kernel/setup.c:651: warning: weak declaration of
                      `memory_setup' after first use results in unspecified behavior
      
      Move memory_setup() to avoid this.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Zachary Amsden <zach@vmware.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarAndy Whitcroft <apw@shadowen.org>
      d3561b7f
    • bibo,mao's avatar
      [PATCH] i386: i386 create e820.c to handle standard io/mem resources · 269c2d81
      bibo,mao authored
      
      This patch creates new file named e820.c to hanle standard io/mem
      resources, moving request_standard_resources function from setup.c
      to e820.c. Also this patch modifies Makfile to compile file e820.c.
      Signed-off-by: default avatarbibo,mao <bibo.mao@intel.com>
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      
       Makefile |    2
       arch/i386/kernel/Makefile |    2
       arch/i386/kernel/e820.c   |  289 ++++++++++++++++++++++++++++++++++++++++++++++
       arch/i386/kernel/setup.c  |  276 -------------------------------------------
       3 files changed, 293 insertions(+), 274 deletions(-)
      269c2d81
  2. 26 Sep, 2006 2 commits
    • Andi Kleen's avatar
      [PATCH] i386: Do stacktracer conversion too · 2b14a78c
      Andi Kleen authored
      
      Following x86-64 patches. Reuses code from them in fact.
      
      Convert the standard backtracer to do all output using
      callbacks.   Use the x86-64 stack tracer implementation
      that uses these callbacks to implement the stacktrace interface.
      
      This allows to use the new dwarf2 unwinder for stacktrace
      and get better backtraces.
      
      Cc: mingo@elte.hu
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      2b14a78c
    • Andi Kleen's avatar
      [PATCH] i386: Redo semaphore and rwlock assembly helpers · ecaf45ee
      Andi Kleen authored
      
      - Move them to a pure assembly file. Previously they were in
      a C file that only consisted of inline assembly. Doing it in pure
      assembler is much nicer.
      - Add a frame.i include with FRAME/ENDFRAME macros to easily
      add frame pointers to assembly functions
      - Add dwarf2 annotation to them so that the new dwarf2 unwinder
      doesn't get stuck on them
      - Random cleanups
      
      Includes feedback from Jan Beulich and a UML build fix from Andrew
      Morton.
      
      Cc: jbeulich@novell.com
      Cc: jdike@addtoit.com
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      ecaf45ee
  3. 12 Sep, 2006 1 commit
  4. 31 Jul, 2006 1 commit
    • Roland McGrath's avatar
      [PATCH] vDSO hash-style fix · 0b0bf7a3
      Roland McGrath authored
      
      The latest toolchains can produce a new ELF section in DSOs and
      dynamically-linked executables.  The new section ".gnu.hash" replaces
      ".hash", and allows for more efficient runtime symbol lookups by the
      dynamic linker.  The new ld option --hash-style={sysv|gnu|both} controls
      whether to produce the old ".hash", the new ".gnu.hash", or both.  In some
      new systems such as Fedora Core 6, gcc by default passes --hash-style=gnu
      to the linker, so that a standard invocation of "gcc -shared" results in
      producing a DSO with only ".gnu.hash".  The new ".gnu.hash" sections need
      to be dealt with the same way as ".hash" sections in all respects; only the
      dynamic linker cares about their contents.  To work with older dynamic
      linkers (i.e.  preexisting releases of glibc), a binary must have the old
      ".hash" section.  The --hash-style=both option produces binaries that a new
      dynamic linker can use more efficiently, but an old dynamic linker can
      still handle.
      
      The new section runs afoul of the custom linker scripts used to build vDSO
      images for the kernel.  On ia64, the failure mode for this is a boot-time
      panic because the vDSO's PT_IA_64_UNWIND segment winds up ill-formed.
      
      This patch addresses the problem in two ways.
      
      First, it mentions ".gnu.hash" in all the linker scripts alongside ".hash".
       This produces correct vDSO images with --hash-style=sysv (or old tools),
      with --hash-style=gnu, or with --hash-style=both.
      
      Second, it passes the --hash-style=sysv option when building the vDSO
      images, so that ".gnu.hash" is not actually produced.  This is the most
      conservative choice for compatibility with any old userland.  There is some
      concern that some ancient glibc builds (though not any known old production
      system) might choke on --hash-style=both binaries.  The optimizations
      provided by the new style of hash section do not really matter for a DSO
      with a tiny number of symbols, as the vDSO has.  If someone wants to use
      =gnu or =both for their vDSO builds and worry less about that
      compatibility, just change the option and the linker script changes will
      make any choice work fine.
      Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      0b0bf7a3
  5. 03 Jul, 2006 1 commit
  6. 01 Jul, 2006 1 commit
    • Al Viro's avatar
      [PATCH] audit syscall classes · b915543b
      Al Viro authored
      
      Allow to tie upper bits of syscall bitmap in audit rules to kernel-defined
      sets of syscalls.  Infrastructure, a couple of classes (with 32bit counterparts
      for biarch targets) and actual tie-in on i386, amd64 and ia64.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      b915543b
  7. 26 Jun, 2006 5 commits
  8. 14 Apr, 2006 1 commit
  9. 23 Mar, 2006 1 commit
    • Gerd Hoffmann's avatar
      [PATCH] x86: SMP alternatives · 9a0b5817
      Gerd Hoffmann authored
      
      Implement SMP alternatives, i.e.  switching at runtime between different
      code versions for UP and SMP.  The code can patch both SMP->UP and UP->SMP.
      The UP->SMP case is useful for CPU hotplug.
      
      With CONFIG_CPU_HOTPLUG enabled the code switches to UP at boot time and
      when the number of CPUs goes down to 1, and switches to SMP when the number
      of CPUs goes up to 2.
      
      Without CONFIG_CPU_HOTPLUG or on non-SMP-capable systems the code is
      patched once at boot time (if needed) and the tables are released
      afterwards.
      
      The changes in detail:
      
        * The current alternatives bits are moved to a separate file,
          the SMP alternatives code is added there.
      
        * The patch adds some new elf sections to the kernel:
          .smp_altinstructions
      	like .altinstructions, also contains a list
      	of alt_instr structs.
          .smp_altinstr_replacement
      	like .altinstr_replacement, but also has some space to
      	save original instruction before replaving it.
          .smp_locks
      	list of pointers to lock prefixes which can be nop'ed
      	out on UP.
          The first two are used to replace more complex instruction
          sequences such as spinlocks and semaphores.  It would be possible
          to deal with the lock prefixes with that as well, but by handling
          them as special case the table sizes become much smaller.
      
       * The sections are page-aligned and padded up to page size, so they
         can be free if they are not needed.
      
       * Splitted the code to release init pages to a separate function and
         use it to release the elf sections if they are unused.
      Signed-off-by: default avatarGerd Hoffmann <kraxel@suse.de>
      Signed-off-by: default avatarChuck Ebbert <76306.1226@compuserve.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9a0b5817
  10. 08 Mar, 2006 1 commit
    • Andi Kleen's avatar
      [PATCH] i386: port ATI timer fix from x86_64 to i386 II · f9262c12
      Andi Kleen authored
      
      ATI chipsets tend to generate double timer interrupts for the local APIC
      timer when both the 8254 and the IO-APIC timer pins are enabled.  This is
      because they route it to both and the result is anded together and the CPU
      ends up processing it twice.
      
      This patch changes check_timer to disable the 8254 routing for interrupt 0.
      
      I think it would be safe on all chipsets actually (i tested it on a couple
      and it worked everywhere) and Windows seems to do it in a similar way, but
      to be conservative this patch only enables this mode on ATI (and adds
      options to enable/disable too)
      
      Ported over from a similar x86-64 change.
      
      I reused the ACPI earlyquirk infrastructure for the ATI bridge check, but
      tweaked it a bit to work even without ACPI.
      
      Inspired by a patch from Chuck Ebbert, but redone.
      
      Cc: Chuck Ebbert <76306.1226@compuserve.com>
      Cc: "Brown, Len" <len.brown@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f9262c12
  11. 24 Feb, 2006 1 commit
    • Zachary Amsden's avatar
      [PATCH] Fix topology.c location · 9c869eda
      Zachary Amsden authored
      
      When compiling a non-default subarch, topology.c is missing from the kernel
      build.  This causes builds with CONFIG_HOTPLUG_CPU to fail.  In addition,
      on Intel processors with cpuid level > 4, it causes intel_cacheinfo.c to
      reference uninitialized data that should have been set up by the initcall
      in topology.c which calls register_cpu.  This causes a kernel panic on boot
      on newer Intel processors.  Moving topology.c to arch/i386/kernel fixes
      both of these problems.
      
      Thanks to Dan Hecht for finding and fixing this problem.
      Signed-off-by: default avatarZachary Amsden <zach@vmware.com>
      Signed-off-by: default avatarDan Hecht <dhect@vmware.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9c869eda
  12. 10 Jan, 2006 1 commit
  13. 08 Jan, 2006 2 commits
  14. 05 Sep, 2005 1 commit
  15. 24 Aug, 2005 1 commit
  16. 25 Jun, 2005 1 commit
  17. 08 Jun, 2005 1 commit
  18. 01 May, 2005 1 commit
  19. 16 Apr, 2005 2 commits
    • Roland McGrath's avatar
      [PATCH] i386 vDSO: add PT_NOTE segment · c97db4a0
      Roland McGrath authored
      
      This patch adds an ELF note to the vDSO giving the LINUX_VERSION_CODE
      value.  Having this in the vDSO lets the dynamic linker avoid the `uname'
      syscall it now always does at startup to ascertain the kernel ABI
      available.
      Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c97db4a0
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4