[GIT PULL] Please pull x86 biarch crashdump support and misc devel

Eric W. Biederman ebiederm at xmission.com
Wed Sep 8 15:44:29 EDT 2010


I thought I had x86 biarch crashdump working on x86 but it turns
out was wrong.  So I have merged crashdump-x86.c and crashdump-x86_64.c
to ensure that things will work fine.

There are a few misc cleanups in here to support biarch crashdumps.

There is a kexec bzImage load  optimization that allows me to use
a 64bit crash kernel in 20M in my setup.  Perhaps less.  Earlier
because of an alighment foulup I needed 32M and the kernel was
loaded in the middle of the reserved crashdump region.

There is also a new program vmcore-dmesg.  Functionally it is very
similar to the makedumpfile's --dmesg mode but it handles all of the
crazy multi-arch cases so I only need to keep one binary around to strip
the kernel's dmesg out of a core file.  Additionally vmcore-dmesg is
about half the size of makedumpfile and I can build it against uclibc,
which makes it much more usable in my constrained initrd setup.

I would post patches but I know I would fat finger that horribly.

git pull git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/kexec-tools-devel.git

---

commit 0320ba301f1e944fde3977df91180a538e99b9aa
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 23:19:35 2010 -0700

    x86 bzImage: Optimize the panic kernel memory layout.
    
    Load the setup sectors above the kernel in the panic case,
    to avoid wasting memory.
    
    Linux kernels frequently have a severe alignment requirment
    that can be as much as 16M.  The start of the reserved
    crash kernel region is 16M aligned.  The setup sectors
    are tiny 20k? and when we are not running the real mode code
    they can live anywhere.  Move the setup sectors from
    lower address than the kernel to higher address than the kernel
    avoids introducing a bad alignment.  Allowing the linux kernel
    to load lower.  Loading the linux kernel lower in memory ensures
    memory is used more efficiently.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit 8bd3608a761cc7734f1599945f558cdfc8ee94b3
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 15:00:10 2010 -0700

    kexec-tools: Add vmcore-dmesg
    
    vmcore-dmesg is a trivial utility to extract the dmesg from a vmcore.
    This was written in reaction to problems I was having building
    makedumpfile, and using makedumpfile for extracting dmesg.  makedumpfile
    does a whole lot of things, uses a whole lot of libraries and which
    make it hard to compile and a little bit clunky to remember the command
    line switches.
    
    So I have written the trivial vmcore-dmesg program that reads a vmcore
    either /proc/vmcore or a saved version vmcore and writes the dmesg to stdout.
    
    There is nothing to vmcore-dmesg and all of the arch dependencies are wrapped
    up in generating the core file.  Which means a vmcore-dmesg should work with
    core files of all architectures without needing a rebuild.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit 6d4b8e90bc066e79dbc8a1387fb9e32c7d0f9435
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Wed Sep 8 10:52:01 2010 -0700

    x86_64: Kill now unused crashdump-x86_64.[ch]
    
    Now we use the i386 crashdump-x86 instead we can kill
    crashdump-x86_64.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit ff053cdb05c2d95dafbcbfd4ffc079cad3c56cc8
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Wed Sep 8 10:12:09 2010 -0700

    x86_64: Use the x86 crashdump
    
    With proper biarch support in crashdump-x86, crashdump-x86_64
    is now redudant and we can use crashdump-x86 everywhere.  Using
    crashdump-x86 everywhere results in a little unnecessary i386
    logic on x86_64 but is otherwise harmless.  Removing the
    unnecessary duplication between i386 and x86_64 should make
    the code much easier to maintain going forward.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit aa0418789d8e89478044511c16a32ed4c45fefb3
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 14:11:54 2010 -0700

    x86_64: Use the i386 arch_options_t on x86_64
    
    In preparation for having a single crashdump implementation
    on i386 and x86_64 start sharing arch_options_t between
    i386 and x86_64, and don't make arch_options static on
    x86_64.
    
    i386 and x86_64 have been using identitcal defitions of
    arch_options for a while this change now reflects that
    practical reality in the code.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit 773ff64ab0ed27ca6b33c9866f89291226e86574
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 14:10:21 2010 -0700

    i386 crashdump: Preserve credits of x86_64 version
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit 9322014fbfa77b5c744d8fabd3e9adf30b751219
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 13:58:29 2010 -0700

    i386 crashdump: Compute page_offset paddr vaddr and size like x86_64.
    
    Make certain we are using the same page_offset, paddr, and vaddr
    and kernel size that the x86_64 crashdump code is using.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit 53408ce05fc411a1a5d8aee902ed0172518fc5d8
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Wed Sep 8 12:01:14 2010 -0700

    kexec elf: Handle 64bit elf executables on 32bit platforms.
    
    - Widen some types.  Why did I use unsigned long?  I guess this
      code predates the decision to support biarch.
    - Since I have made the types wider fix the statements that
      print those types out.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit f79a61460fdb6fda47b3a1b01e1b4771374b7975
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 20:31:03 2010 -0700

    kexec elf: Clean up error messages build_mem_phdrs
    
    Don't print uncondintionally print an error message about
    KCORE_ELF_HEADERS_SIZE being wrong when the elf headers
    are truncated when build_mem_phdrs fails because there
    are other reasons we could be truncated (like an
    actual damaged elf file).
    
    Instead only print an error message when either probe_debug
    is true or we are skipping the total file size checks for
    some reason.  When we do print an error message limit the
    message to the fact that we are truncated and how many
    bytes we have and how many bytes we need.  The context
    of the failure should be able to provide the rest of
    the information.
    
    For now add a comment in crashdump-x86_64.c to direct people
    to KCORE_ELF_HEADERS_SIZE so that if someone finds the
    code things can be adjusted.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit 4c4ef6506eb29cfad16546f6b8435935432d3251
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 13:34:43 2010 -0700

    i386 crashdump: pass acpi info, and generalize hack
    
    - Pass the acpi memap to the kernel.
    - Port the fix from x86_64 to not truncate the elf
      note segment to 16K, to keep large machines happy.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit d25f82619565f862e2a6104fac505b9c13c8fe4c
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 13:23:55 2010 -0700

    i386 crashdump: move crashdump debugging code under #ifdef DEBUG
    
    o Put the debug code under #ifdef DEBUG instead of #if 0.
    o Do this to match the x86_64 code.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit 672991ea2208dd478e8c52982f39a87c64a4c8a5
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 13:12:18 2010 -0700

    i386 crashdump: Unify get_crash_memory_ranges.
    
    Build a version of get_crash_memory_ranges that works the same
    on both x86_64 and x86.  Reorder the calls in load_crashdump_segments
    so we have the architectures low memory limit when we call
    get_crash_memory_ranges.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit b73411718dbf452675fa903b2db7ab58c24ef1ba
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 12:53:11 2010 -0700

    i386 crashdump: Rename and include the x86_64 constants.
    
    Unify the 32bit and the 64bit crashdump headers.  Rename
    arch specific defintions to arch specific names to be clear.
    Update users of the renamed constants.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit 8f211c7519327124bb18d9e362ac9777bf400c67
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 12:43:40 2010 -0700

    i386 crashdump: Keep elf_info on the stack.
    
    In preparation for merging crashdump-x86 and crashdump-x86_64
    move elf_info onto the stack and start filling it out dynamically
    as appropriate.
    
    Included in this change is only setting lowmem_limit and get_note_info
    when we are generating a core file for a 32bit kernel.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit c8e346688c6358427213d9d6fdb83765e365cccd
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 12:05:40 2010 -0700

    crashdump: Move kern_vaddr_start from kexec_info into crash_elf_info
    
    These fields as defined in kexec_info are not biarch safe and
    beyond that crash_elf_info is the structure for passing this kind
    of information not kexec_info.  So move them in prepartion for
    properly cleaning up biarch x86 functionality.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit d9bf000b6260ee4558b2d2eb3af08e09cd1fe794
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 11:42:39 2010 -0700

    kexec: Kill arch_init
    
    The function only had one user, the error checking was wrong,
    and the functions it performed are best done elsewhere
    so remove the tempation of a problemenatic hook.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit 3578b1f1437f8d1b569d1e30f6d4e15edd1cce53
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 11:37:21 2010 -0700

    x86_64 crashdump: Move calculation of the page offset into crashdump-x86_64.c
    
    Don't calculate page_offfset in arch_init.  Performing the work there
    badly messes up biarch support, so move the work into crashdump_x86_64.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit 3cab31db10dd74aa148ad20aaa3455723bf45138
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 11:25:30 2010 -0700

    kexec: Move kernel_version into the kexec core
    
    I'm not pleased with the hacks that we use kernel_version
    for but kernel_version itself is reasonable code and might
    be needed elsewhere, so move kernel_version into the kexec
    core.
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>

commit ebeb4da62f8b51c63a46349b219a5605ee8d79bd
Author: Eric W. Biederman <ebiederm at xmission.com>
Date:   Tue Sep 7 10:41:56 2010 -0700

    i386 elf: Correct the probe error string
    
    Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>



More information about the kexec mailing list