26 Sep, 2006

1 commit

  • kexec: Avoid overwriting the current pgd (V4, i386)

    This patch upgrades the i386-specific kexec code to avoid overwriting the
    current pgd. Overwriting the current pgd is bad when CONFIG_CRASH_DUMP is used
    to start a secondary kernel that dumps the memory of the previous kernel.

    The code introduces a new set of page tables. These tables are used to provide
    an executable identity mapping without overwriting the current pgd.

    Signed-off-by: Magnus Damm
    Signed-off-by: Andi Kleen

    Magnus Damm
     

11 Jan, 2006

3 commits

  • Fixes a compilation warning message in i386

    Signed-off-by: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • - 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: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • - 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: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     

26 Jun, 2005

2 commits