qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Question] dump memory when host pci device is used by


From: Jan Kiszka
Subject: Re: [Qemu-devel] [Question] dump memory when host pci device is used by guest
Date: Tue, 18 Oct 2011 12:28:52 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

On 2011-10-18 11:43, Wen Congyang wrote:
> At 10/18/2011 04:36 PM, Jan Kiszka Write:
>> On 2011-10-18 10:34, Richard W.M. Jones wrote:
>>
>> Yeah, I see. Could also be solved via gdb scripts, but crash is already
>> there.
>>
>> But let's see if the formats actually differ. In the end, crash is just
>> parsing the same information that also gdb sees.
> 
> I think the format can be similar with diskdump/kdump/netdump:
> 
> dump_header:     1 block
> sub header:      n blocks(n is stored in dump_header)
> bitmap:          m blocks(2m is stored in dump_header)
> dumpable bitmap: m blocks
> memory data(We can know whether a page is stored in the core by bitmap and 
> dumpable bitmap)
> 
> The format of dump header(It's like kdump/diskdump):
> struct disk_dump_header {
>       char                    signature[SIG_LEN];     /* = "QEMU    " */
>       int                     header_version; /* Dump header version */
>       struct new_utsname      utsname;        /* copy of system_utsname */
>       struct timeval          timestamp;      /* Time stamp */
>       unsigned int            status;
>       int                     block_size;     /* Size of a block in byte */
>       int                     sub_hdr_size;   /* Size of arch dependent
>                                                  header in blocks */
>       unsigned int            bitmap_blocks;  /* Size of Memory bitmap in
>                                                  block */
>       unsigned int            max_mapnr;      /* = max_mapnr */
>       unsigned int            total_ram_blocks;/* Number of blocks should be
>                                                  written */
>       unsigned int            device_blocks;  /* Number of total blocks in
>                                                * the dump device */
>       unsigned int            written_blocks; /* Number of written blocks */
>       unsigned int            current_cpu;    /* CPU# which handles dump */
>       int                     nr_cpus;        /* Number of CPUs */
> };
> 
> The sub header can contains all registers's value on each vcpu, and other 
> information,
> for example:
> struct qemu_sub_header {
>       unsigned long   start_pfn;
>       unsigned long   end_pfn;
>       off_t           offset_note;
>       unsigned long   size_note;
> };

So is this a standard format or only "similar" to something? Which tools
will understand it out-of-the-box? If it's not standard, why?

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux



reply via email to

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