[PATCHv3 0/9] Support Xen versions up to xen-4.1

Trapp, Norbert norbert.trapp at ts.fujitsu.com
Wed Sep 12 10:39:49 EDT 2012


Hello Atsushi, Petr, Stefan et al.,

When applying the makedumpfile Xen4 patches to the makedumpfile 1.5.0
version and using it for a crash file to save just the dom0 and xen pages
it again worked splendid in that makedumpfile was much faster than without
the Xen4 patches. Alas I had to remove the OFFSET_IN_UNION_INIT(page._domain,
"page_info", "domain") call because OFFSET_IN_UNION_INIT was no longer present.
It didn't matter much because the call is only needed for makedumpfile -g or when
using the /boot/xen-syms file. In the current 1.5.0  makedumpfile.c version you
see

    OFFSET_INIT(page_info._domain, "page_info", "u").

The Xen4 patch modified this because the _domain structure member is in different
unions for different version (x86, ia64) and may also not be the first entry in
the union depending on the Xen version.

    OFFSET_IN_UNION_INIT(page_info._domain, "page_info", "_domain");

As an experiment I tried to use

    OFFSET_INIT(page_info._domain, "page_info", "domain")

with makedumpfile 1.5.0. To get the correct offset I had to
modify the dwarf_info.c code:

--- ../makedumpfile-1.5.0/dwarf_info.c  2012-09-06 07:30:23.000000000 +0200
+++ dwarf_info.c        2012-09-12 15:49:23.000000000 +0200
@@ -449,8 +449,8 @@
 static int
 is_anonymous_container(Dwarf_Die *die)
 {
-       if (dwarf_diename(die))
-               return FALSE;
+       //if (dwarf_diename(die))
+       //      return FALSE;
        if (dwarf_tag(die) == DW_TAG_structure_type)
                return TRUE;
        if (dwarf_info.cmd != DWARF_INFO_GET_MEMBER_OFFSET_1ST_UNION
@@ -495,7 +495,7 @@
                 * Descend into anonymous members and search for member
                 * there.
                 */
-               if (!name) {
+               if ((!name) || (strcmp(name, dwarf_info.member_name) != 0)) {
                        if (!get_die_type(walker, &die_type))
                                continue;
                        if (is_anonymous_container(&die_type))


This is not a patch but just a description of what I modified for a test.
The underlying question is why only the anonymous unions are used and not the
ones with a name.

With kind regards

	Norbert

Norbert Trapp
PDG ES&S SWE OS 6

FUJITSU
Fujitsu Technology Solutions GmbH
Domagkstraße 28, D-80807 München, Germany
E-mail: Norbert.Trapp at ts.fujitsu.com
Web: ts.fujitsu.com
Company details: ts.fujitsu.com/imprint

> -----Original Message-----
> From: Atsushi Kumagai [mailto:kumagai-atsushi at mxc.nes.nec.co.jp]
> Sent: Monday, September 03, 2012 7:01 AM
> To: Trapp, Norbert; petr at tesarici.cz
> Cc: kexec at lists.infradead.org
> Subject: Re: [PATCHv3 0/9] Support Xen versions up to xen-4.1
> 
...
> 
> Thank you for your report, that's good.
> So, I'll review these patches for makedumpfile-1.5.1.
> 
> 
> Thanks
> Atsushi Kumagai



More information about the kexec mailing list