[PATCHv3 0/9] Support Xen versions up to xen-4.1
Stefan Bader
stefan.bader at canonical.com
Mon Sep 17 08:38:21 EDT 2012
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 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
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 897 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/kexec/attachments/20120917/4e612d99/attachment.sig>
More information about the kexec
mailing list