On 12.09.2012 16:39, Trapp, Norbert wrote: > Hello Atsushi, Petr, Stefan et al., > Hi Norbert, > 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") Just to make sure and since I am a bit lazy: with the Xen patch the page_info structure has a member (somewhere) named domain? (or _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. I made the patch because one element in some anonymous structure/union combo was not found in newer kernels and the previous exceptions for such a thing were hard coded. But as far as the dwarf info I was looking at the named structures/unions were handled and I did not want to modify that case without a way to test. -Stefan > > 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@mxc.nes.nec.co.jp] >> Sent: Monday, September 03, 2012 7:01 AM >> To: Trapp, Norbert; petr@tesarici.cz >> Cc: kexec@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 >