From acb5affd0b2cd7466705dce392544307f4f53867 Mon Sep 17 00:00:00 2001 From: Mingqiang Chi Date: Wed, 27 Nov 2019 11:24:16 +0800 Subject: [PATCH] doc:update acrn-shell.rst update this doc related with dump host & guest memory. Signed-off-by: Mingqiang Chi --- doc/user-guides/acrn-shell.rst | 35 +++++++++++++++++++---- doc/user-guides/images/shell_image19.png | Bin 0 -> 3813 bytes doc/user-guides/images/shell_image20.png | Bin 0 -> 25248 bytes 3 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 doc/user-guides/images/shell_image19.png create mode 100644 doc/user-guides/images/shell_image20.png diff --git a/doc/user-guides/acrn-shell.rst b/doc/user-guides/acrn-shell.rst index 7437e0527..45857a4de 100644 --- a/doc/user-guides/acrn-shell.rst +++ b/doc/user-guides/acrn-shell.rst @@ -21,9 +21,12 @@ The ACRN hypervisor shell supports the following commands: - List all vCPUs in all VMs * - vcpu_dumpreg - Dump registers for a specific vCPU - * - dumpmem - - Dump host memory, starting at a given address, and for a given length - (in bytes) + * - dump_host_mem + - Dump the host memory region as specified by the start of the region ``hva`` (in hexadecimal) + and its length ``length`` (in bytes, decimal number). + * - dump_guest_mem + - Dump a User VM (guest) memory region based on the VM ID (``vm_id``, in decimal), + the start of the memory region ``gva`` (in hexadecimal) and its length ``length`` (in bytes, decimal number). * - vm_console - Switch to the VM's console. Use :kbd:`Ctrl+Spacebar` to return to the ACRN shell console @@ -104,10 +107,10 @@ function ``acpi_idle_do_entry``. system map information -dumpmem -======= +dump_host_mem +============= -``dumpmem mem_address`` provides the specified memory target data such as +``dump_host_mem hva length`` provides the specified memory target data such as the physical CPU (pCPU) number, etc. In this example, we know the pCPU active bitmap and physical CPU number @@ -129,6 +132,26 @@ pCPU number is 0x0000000000000004. acrn map information +dump_guest_mem +============== + +The ``dump_guest_mem`` command can dump guest memory according to the given +VM ID and guest virtual address (``gva``). + +In this example, we know the starting address of kernel text segment +in guest console or through the ``system.map`` (Note that the path for +``system.map`` depends on how we build the kernel) + +.. figure:: images/shell_image19.png + :align: center + + guest virtual address + +.. figure:: images/shell_image20.png + :align: center + + guest memory information + vm_console =========== diff --git a/doc/user-guides/images/shell_image19.png b/doc/user-guides/images/shell_image19.png new file mode 100644 index 0000000000000000000000000000000000000000..6120127b8c25e30275faf0bd0763f4999b6c8b33 GIT binary patch literal 3813 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 b9!4LXK+6_Q69n!j(|e2!Ec8(~UE}@(-6gFE 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 literal 0 HcmV?d00001