From: Jan Kiszka <jan.kiszka@siemens.com>
To: lidong chen <chen.lidong.kernel@gmail.com>
Cc: kvm@vger.kernel.org
Subject: Re: collect some information when qemu-kvm exit
Date: Fri, 24 Jun 2011 10:55:17 +0200 [thread overview]
Message-ID: <4E0450F5.80809@siemens.com> (raw)
In-Reply-To: <BANLkTinj1dzyypKsp4DA+0xUaVwO86qeWw@mail.gmail.com>
On 2011-06-24 10:24, lidong chen wrote:
> 2011/6/23 Jan Kiszka <jan.kiszka@web.de>:
>> On 2011-06-23 15:56, lidong chen wrote:
>>>>> is it safe to register another signal handler?
>>>>> if somebody know the reason, please tell me.
>>>>>
>>>>> and is it worth to do this?
>>>>
>>> because the core dump file is too big, and the time of core dump is too long.
>>> I do a test, for a guest which have 9.7G memory, the coredump file is
>>> 9.7G, and the time of core dump is 1 minute.
>>>
>>> for the compute node in my system, there are a lot of cpu and memory
>>> resource, but no disk.
>>>
>>>
>>> total 4.5G
>>> -rw------- 1 root root 9.7G Jun 23 21:31 core-qemu-kvm-24090-1308835893
>>> -rw------- 1 root root 3.9G Jun 23 21:34 core-qemu-kvm-24098-1308835996
>>
>> ulimit -c allows you to restrict the core file size so that it fits on
>> your ram disk. That will at least collect enough information to do a
>> proper post-mortem backtrace in gdb, including register states. It also
>> allows to inspect variables on the stacks and the heap. No need to add a
>> singe line or code to qemu for this.
>>
>
> if i use 'ulimit -c 6000' to restrict the core file, the backtrace
> can't work correctly.
I've granted a few hundred megs, and it worked for me.
>
> 26:/corefile # gdb /usr/bin/qemu-kvm core-qemu-kvm-9979-1308888098
> GNU gdb (GDB) SUSE (7.0-0.4.16)
> Copyright (C) 2009 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-suse-linux".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from /usr/bin/qemu-kvm...done.
> BFD: Warning: /corefile/core-qemu-kvm-9979-1308888098 is truncated:
> expected core file size >= 10583695360, found: 10051584.
> [New Thread 9981]
> [New Thread 9980]
> Cannot access memory at address 0x7fb26cac1108
> (gdb) backtrace
> Cannot access memory at address 0x7fff489c03b0
>
> if i use 'ulimit -c unlimited', it work correctly.
> Core was generated by `qemu-kvm -hda
> /var/lib/libvirt/images/sles11-4.img -boot dc -m 9999 -vnc *:0 -k'.
> Program terminated with signal 11, Segmentation fault.
> #0 0x00007f6ba768cb93 in select () from /lib64/libc.so.6
> (gdb) bt
> #0 0x00007f6ba768cb93 in select () from /lib64/libc.so.6
> #1 0x0000000000431b8a in main_loop_wait (timeout=1000)
> at /usr/src/packages/BUILD_chen/qemu-kvm-0.12.5/vl.c:4006
> #2 0x0000000000455a50 in kvm_main_loop ()
> at /usr/src/packages/BUILD_chen/qemu-kvm-0.12.5/qemu-kvm.c:2129
> #3 0x00000000004322bc in main_loop () at
> /usr/src/packages/BUILD_chen/qemu-kvm-0.12.5/vl.c:4231
> #4 0x0000000000435fb3 in main (argc=11, argv=0x7fffadc777d8,
> envp=0x7fffadc77838)
> at /usr/src/packages/BUILD_chen/qemu-kvm-0.12.5/vl.c:6356
> (gdb)
>
> I google how could gdb handle truncated core files,
> http://sourceware.org/ml/gdb/2008-08/msg00276.html
>
> there are two potential way to support gdb handle truncated core files:
> 1.modify the code of linux kernel, to support for prioritisation of
> what is dumped.
What we basically need to avoid playing with ulimit is a way to tell the
kernel "do not dump this region", and apply that on the guest memory at
least.
> 2.used coredumper, http://code.google.com/p/google-coredumper/
>
> i read the code of function elf_core_dump in linux kernel, it write
> each vma in sequence.
...optionally prioritized by size - or that way. Though we wouldn't need
it given a proper kernel interface. Don't know why such thing does not
exist yet.
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2011-06-24 8:55 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-22 12:27 collect some information when qemu-kvm exit lidong chen
2011-06-23 9:05 ` lidong chen
2011-06-23 10:13 ` Jan Kiszka
2011-06-23 13:56 ` lidong chen
2011-06-23 14:51 ` Jan Kiszka
2011-06-24 8:24 ` lidong chen
2011-06-24 8:55 ` Jan Kiszka [this message]
2011-06-24 8:58 ` Jan Kiszka
2011-06-24 13:26 ` lidong chen
2011-07-02 11:22 ` lidong chen
2011-07-07 1:20 ` lidong chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E0450F5.80809@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=chen.lidong.kernel@gmail.com \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox