1. 12 Jan, 2006 1 commit
  2. 10 Jan, 2006 2 commits
    • Vivek Goyal's avatar
      [PATCH] kdump: save registers early (inline functions) · e996e581
      Vivek Goyal authored
      
      
      - If system panics then cpu register states are captured through funciton
        crash_get_current_regs().  This is not a inline function hence a stack frame
        is pushed on to the stack and then cpu register state is captured.  Later
        this frame is popped and new frames are pushed (machine_kexec).
      
      - In theory this is not very right as we are capturing register states for a
        frame and that frame is no more valid.  This seems to have created back
        trace problems for ppc64.
      
      - This patch fixes it up.  The very first thing it does after entering
        crash_kexec() is to capture the register states.  Anyway we don't want the
        back trace beyond crash_kexec().  crash_get_current_regs() has been made
        inline
      
      - crash_setup_regs() is the top architecture dependent function which should
        be responsible for capturing the register states as well as to do some
        architecture dependent tricks.  For ex.  fixing up ss and esp for i386.
        crash_setup_regs() has also been made inline to ensure no new call frame is
        pushed onto stack.
      Signed-off-by: default avatarVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      e996e581
    • Vivek Goyal's avatar
      [PATCH] kdump: dynamic per cpu allocation of memory for saving cpu registers · cc571658
      Vivek Goyal authored
      
      
      - In case of system crash, current state of cpu registers is saved in memory
        in elf note format.  So far memory for storing elf notes was being allocated
        statically for NR_CPUS.
      
      - This patch introduces dynamic allocation of memory for storing elf notes.
        It uses alloc_percpu() interface.  This should lead to better memory usage.
      
      - Introduced based on Andi Kleen's and Eric W. Biederman's suggestions.
      
      - This patch also moves memory allocation for elf notes from architecture
        dependent portion to architecture independent portion.  Now crash_notes is
        architecture independent.  The whole idea is that size of memory to be
        allocated per cpu (MAX_NOTE_BYTES) can be architecture dependent and
        allocation of this memory can be architecture independent.
      Signed-off-by: default avatarVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      cc571658
  3. 30 Oct, 2005 1 commit
    • Hugh Dickins's avatar
      [PATCH] mm: split page table lock · 4c21e2f2
      Hugh Dickins authored
      
      
      Christoph Lameter demonstrated very poor scalability on the SGI 512-way, with
      a many-threaded application which concurrently initializes different parts of
      a large anonymous area.
      
      This patch corrects that, by using a separate spinlock per page table page, to
      guard the page table entries in that page, instead of using the mm's single
      page_table_lock.  (But even then, page_table_lock is still used to guard page
      table allocation, and anon_vma allocation.)
      
      In this implementation, the spinlock is tucked inside the struct page of the
      page table page: with a BUILD_BUG_ON in case it overflows - which it would in
      the case of 32-bit PA-RISC with spinlock debugging enabled.
      
      Splitting the lock is not quite for free: another cacheline access.  Ideally,
      I suppose we would use split ptlock only for multi-threaded processes on
      multi-cpu machines; but deciding that dynamically would have its own costs.
      So for now enable it by config, at some number of cpus - since the Kconfig
      language doesn't support inequalities, let preprocessor compare that with
      NR_CPUS.  But I don't think it's worth being user-configurable: for good
      testing of both split and unsplit configs, split now at 4 cpus, and perhaps
      change that to 8 later.
      
      There is a benefit even for singly threaded processes: kswapd can be attacking
      one part of the mm while another part is busy faulting.
      Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      4c21e2f2
  4. 28 Oct, 2005 1 commit
  5. 28 Jun, 2005 1 commit
  6. 25 Jun, 2005 4 commits