qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [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).