* [Qemu-devel] How does qemu know the virtual memory of the guest os?
@ 2014-11-29 0:17 Jidong Xiao
2014-11-30 23:28 ` Richard W.M. Jones
0 siblings, 1 reply; 2+ messages in thread
From: Jidong Xiao @ 2014-11-29 0:17 UTC (permalink / raw)
To: qemu-devel, KVM
Hi,
I notice that Qemu supports dump virtual memory of Guest OS. As this
page suggests:
========
http://doc.opensuse.org/products/draft/SLES/SLES-kvm_sd_draft/cha.qemu.monitor.html
To save the content of the virtual machine memory to a disk or console
output, use the following commands:
memsave addr size filename
Saves virtual memory dump starting at addr of size size to file filename
pmemsave addr size filename
Saves physical memory dump starting at addr of size size to file filename
=========
I understand that hypervisors certainly know the physical memory of
virtual machine, but how does it know the virtual memory of the Guest
OS? I think the hypervisor has no semantic knowledge of the Guest OS,
and such knowledge should be different for different OS (e.g., Windows
vs Linux), so I am really surprised that Qemu can dump the virtual
memory of the Guest OS. Can someone kindly give me some explanation?
Thank you very much!!
Also, when we say "saves virtual memory dump", which process does
those memory belongs to?
-Jidong
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] How does qemu know the virtual memory of the guest os?
2014-11-29 0:17 [Qemu-devel] How does qemu know the virtual memory of the guest os? Jidong Xiao
@ 2014-11-30 23:28 ` Richard W.M. Jones
0 siblings, 0 replies; 2+ messages in thread
From: Richard W.M. Jones @ 2014-11-30 23:28 UTC (permalink / raw)
To: Jidong Xiao; +Cc: qemu-devel, KVM
On Fri, Nov 28, 2014 at 04:17:10PM -0800, Jidong Xiao wrote:
> Hi,
>
> I notice that Qemu supports dump virtual memory of Guest OS. As this
> page suggests:
>
> ========
> http://doc.opensuse.org/products/draft/SLES/SLES-kvm_sd_draft/cha.qemu.monitor.html
>
> To save the content of the virtual machine memory to a disk or console
> output, use the following commands:
>
> memsave addr size filename
>
> Saves virtual memory dump starting at addr of size size to file filename
>
> pmemsave addr size filename
>
> Saves physical memory dump starting at addr of size size to file filename
> =========
>
> I understand that hypervisors certainly know the physical memory of
> virtual machine, but how does it know the virtual memory of the Guest
> OS? I think the hypervisor has no semantic knowledge of the Guest OS,
> and such knowledge should be different for different OS (e.g., Windows
> vs Linux), so I am really surprised that Qemu can dump the virtual
> memory of the Guest OS. Can someone kindly give me some explanation?
> Thank you very much!!
It's different for each *architecture*, but not for each OS.
For example on x86 it starts by reading the CR* control registers, and
then the page tables (see target-i386/helper.c:
x86_cpu_get_phys_page_debug).
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages. http://libguestfs.org
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-11-30 23:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-29 0:17 [Qemu-devel] How does qemu know the virtual memory of the guest os? Jidong Xiao
2014-11-30 23:28 ` Richard W.M. Jones
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).