qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 5/7] kdump: add vmcoreinfo ELF note


From: Marc-André Lureau
Subject: Re: [Qemu-devel] [PATCH v2 5/7] kdump: add vmcoreinfo ELF note
Date: Thu, 6 Jul 2017 19:21:15 +0200

Hi

On Thu, Jul 6, 2017 at 7:13 PM, Laszlo Ersek <address@hidden> wrote:
> On 07/06/17 12:16, Marc-André Lureau wrote:
>> kdump header provides offset and size of the vmcoreinfo ELF note,
>> append it if available.
>>
>> Signed-off-by: Marc-André Lureau <address@hidden>
>> ---
>>  dump.c | 20 ++++++++++++++++++++
>>  1 file changed, 20 insertions(+)
>>
>> diff --git a/dump.c b/dump.c
>> index f699198204..dd416ad271 100644
>> --- a/dump.c
>> +++ b/dump.c
>> @@ -839,6 +839,16 @@ static void create_header32(DumpState *s, Error **errp)
>>      kh->dump_level = cpu_to_dump32(s, DUMP_LEVEL);
>>
>>      offset_note = DISKDUMP_HEADER_BLOCKS * block_size + size;
>> +    if (s->vmcoreinfo) {
>> +        uint64_t hsize, name_size, size_vmcoreinfo_desc, offset_vmcoreinfo;
>> +
>> +        get_note_sizes(s, s->vmcoreinfo, &hsize, &name_size, 
>> &size_vmcoreinfo_desc);
>> +        offset_vmcoreinfo = offset_note + s->note_size - s->vmcoreinfo_size 
>> +
>> +            (DIV_ROUND_UP(hsize, 4) + DIV_ROUND_UP(name_size, 4)) * 4;
>> +        kh->offset_vmcoreinfo = cpu_to_dump64(s, offset_vmcoreinfo);
>> +        kh->size_vmcoreinfo = cpu_to_dump32(s, size_vmcoreinfo_desc);
>> +    }
>> +
>>      kh->offset_note = cpu_to_dump64(s, offset_note);
>>      kh->note_size = cpu_to_dump32(s, s->note_size);
>>
>> @@ -939,6 +949,16 @@ static void create_header64(DumpState *s, Error **errp)
>>      kh->dump_level = cpu_to_dump32(s, DUMP_LEVEL);
>>
>>      offset_note = DISKDUMP_HEADER_BLOCKS * block_size + size;
>> +    if (s->vmcoreinfo) {
>> +        uint64_t hsize, name_size, size_vmcoreinfo_desc, offset_vmcoreinfo;
>> +
>> +        get_note_sizes(s, s->vmcoreinfo, &hsize, &name_size, 
>> &size_vmcoreinfo_desc);
>> +        offset_vmcoreinfo = offset_note + s->note_size - s->vmcoreinfo_size 
>> +
>> +            (DIV_ROUND_UP(hsize, 4) + DIV_ROUND_UP(name_size, 4)) * 4;
>> +        kh->offset_vmcoreinfo = cpu_to_dump64(s, offset_vmcoreinfo);
>> +        kh->size_vmcoreinfo = cpu_to_dump64(s, size_vmcoreinfo_desc);
>> +    }
>> +
>>      kh->offset_note = cpu_to_dump64(s, offset_note);
>>      kh->note_size = cpu_to_dump64(s, s->note_size);
>>
>>
>
> I continue to think that this patch is unnecessary, but if you insist,
> it does look OK to me.
>
> Reviewed-by: Laszlo Ersek <address@hidden>

Without it, crash doesn't read the vmcoreinfo PT_NOTE. And for some
reason, the phys_base in the header wasn't enough (to be doubled
checked).

Any comment Dave about crash handling of vmcoreinfo in kdump files?



-- 
Marc-André Lureau



reply via email to

[Prev in Thread] Current Thread [Next in Thread]