[Top][All Lists]

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

[Qemu-devel] [PATCH 2/2] docs: add memory-hotplug.txt

From: Luiz Capitulino
Subject: [Qemu-devel] [PATCH 2/2] docs: add memory-hotplug.txt
Date: Thu, 26 Feb 2015 14:49:16 -0500

This document describes how to use memory hotplug in QEMU.

Signed-off-by: Luiz Capitulino <address@hidden>
 docs/memory-hotplug.txt | 77 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)
 create mode 100644 docs/memory-hotplug.txt

diff --git a/docs/memory-hotplug.txt b/docs/memory-hotplug.txt
new file mode 100644
index 0000000..e821449
--- /dev/null
+++ b/docs/memory-hotplug.txt
@@ -0,0 +1,77 @@
+QEMU memory hotplug
+This document explains how to use the memory hotplug feature in QEMU,
+which is present since v2.1.0.
+Please, note that memory hot unplug is not supported yet. This means
+that you're able to add memory, but you're not able to remove it.
+Also, proper proper guest support is required for memory hotplug
+to work.
+Basic RAM hotplug
+In order to be able to hotplug memory, QEMU has to be told how many
+hotpluggable memory slots to create and what is the maximum amount of
+memory the guest can grow. This is done at startup time by means of
+the -m command-line option, which has the following format:
+ -m [size=]megs[,slots=n,maxmem=size]
+ - "megs" is the startup RAM. It is the RAM the guest will boot with
+ - "slots" is the number of hotpluggable memory slots
+ - "maxmem" is the maximum RAM size the guest can grow
+For example, the following command-line:
+ qemu [...] 1G,slots=3,maxmem=4G
+Creates a guest with 1GB of memory and three hotpluggable memory slots.
+The hotpluggable memory slots are empty when the guest is booted, so all
+memory the guest will see after boot is 1GB. The maximum memory the
+guest can reach is 4GB. This means that three additional gigas can be
+hotplugged by using any combination of the available memory slots.
+Two monitor commands are used to hotplug memory:
+ - "object_add": creates a memory backend object
+ - "device_add": creates the front-end pc-dimm device and inserts it
+                 into an empty slot
+For example, the following commands add another 1GB to the guest
+discussed earlier:
+  (qemu) object_add memory-backend-ram,id=mem1,size=1G
+  (qemu) device_add pc-dimm,id=dimm1,memdev=mem1
+Using the file backend
+Besides basic RAM hotplug, QEMU also supports using files as a memory
+backend. This is useful for using hugetlbfs in Linux, which provides
+access to bigger page sizes.
+For example, assuming that the host has 1GB hugepages available in
+the /mnt/hugepages-1GB directory, a 1GB hugepage could be hotplugged
+into the guest from the previous section with the following commnands:
+  (qemu) object_add 
+  (qemu) device_add pc-dimm,id=dimm1,memdev=mem1
+It's also possible to start a guest with memory plugged into the
+hotpluggable memory slots. This might seem counterintuitive at first,
+but this allows for a lot of flexibility when using the file backend.
+In the following command-line example, a 8GB guest is created where 6GB
+comes from regular RAM, 1GB is a 1GB hugepage page and 256MB is from
+2MB pages. Also, the guest has additional memory slots to hotplug more
+2GB if needed:
+ qemu [...] -m 6GB,slots=4,maxmem=10G \
+   -object memory-backend-file,id=mem1,size=1G,mem-path=/mnt/hugepages-1G \
+   -device pc-dimm,id=dimm1,memdev=mem1 \
+   -object memory-backend-file,id=mem2,size=256M,mem-path=/mnt/hugepages-2MB \
+   -device pc-dimm,id=dimm2,memdev=mem2

reply via email to

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