From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:49120) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RaRtM-0005a1-Qd for qemu-devel@nongnu.org; Tue, 13 Dec 2011 07:55:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RaRtJ-0008Hv-V6 for qemu-devel@nongnu.org; Tue, 13 Dec 2011 07:55:32 -0500 Received: from david.siemens.de ([192.35.17.14]:18899) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RaRtJ-0008He-IZ for qemu-devel@nongnu.org; Tue, 13 Dec 2011 07:55:29 -0500 Message-ID: <4EE74B28.9040502@siemens.com> Date: Tue, 13 Dec 2011 13:55:04 +0100 From: Jan Kiszka MIME-Version: 1.0 References: <4EE1BF66.7030602@cn.fujitsu.com> In-Reply-To: <4EE1BF66.7030602@cn.fujitsu.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC][PATCT 0/5 v2] dump memory when host pci device is used by guest List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wen Congyang Cc: HATAYAMA Daisuke , Dave Anderson , qemu-devel On 2011-12-09 08:57, Wen Congyang wrote: > Hi, all > > 'virsh dump' can not work when host pci device is used by guest. We have > discussed this issue here: > http://lists.nongnu.org/archive/html/qemu-devel/2011-10/msg00736.html > > We have determined to introduce a new command dump to dump memory. The core > file's format can be elf. > > Note: > 1. The guest should be x86 or x86_64. The other arch is not supported. > 2. If you use old gdb, gdb may crash. I use gdb-7.3.1, and it does not crash. > 3. If the OS is in the second kernel, gdb may not work well, and crash can > work by specifying '--machdep phys_addr=xxx' in the command line. The > reason is that the second kernel will update the page table, and we can > not get the page table for the first kernel. > 4. If the guest OS is 32 bit and the memory size is larger than 4G, the vmcore > is elf64 format. You should use the gdb which is built with --enable-64-bit-bfd. > > Changes from v1 to v2: > 1. fix virt addr in the vmcore. > > Wen Congyang (5): > Add API to create memory mapping list > Add API to check whether a physical address is I/O address > target-i386: implement cpu_get_memory_mapping() > Add API to get memory mapping > introduce a new monitor command 'dump' to dump guest's memory > > Makefile.target | 9 +- > cpu-all.h | 10 + > cpu-common.h | 1 + > dump.c | 722 ++++++++++++++++++++++++++++++++++++++++++++++++++ > dump.h | 6 + > exec.c | 20 ++ > hmp-commands.hx | 16 ++ > memory_mapping.c | 183 +++++++++++++ > memory_mapping.h | 30 ++ > monitor.c | 3 + > qmp-commands.hx | 24 ++ > target-i386/helper.c | 239 +++++++++++++++++ > 12 files changed, 1259 insertions(+), 4 deletions(-) > create mode 100644 dump.c > create mode 100644 dump.h > create mode 100644 memory_mapping.c > create mode 100644 memory_mapping.h A general remark regarding code organization: Please factor out the target specific bits and push them into target-*/dump.[ch] or whatever appropriate file in that folder. Ugly #ifdefs should be avoided in generic code as far as possible. Thanks, Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux