On 03/06/2012 01:34 AM, Eric Blake wrote:
Output is still in kibibytes, but input can now be in different
scales for ease of typing.
* src/conf/domain_conf.c (virDomainParseMemory): New helper.
(virDomainDefParseXML): Use it when parsing.
* docs/schemas/domaincommon.rng: Expand XML; rename memoryKBElement
to memoryElement and update callers.
* docs/formatdomain.html.in (elementsMemoryAllocation): Document
scaling.
* tests/qemuxml2argvdata/qemuxml2argv-memtune.xml: Adjust test.
* tests/qemuxml2xmltest.c: Likewise.
* tests/qemuxml2xmloutdata/qemuxml2xmlout-memtune.xml: New file.
---
v2: reuse code introduced earlier in series, add tests
docs/formatdomain.html.in | 42 +++++++--
docs/schemas/domaincommon.rng | 23 ++----
src/conf/domain_conf.c | 93 +++++++++++++++----
tests/qemuxml2argvdata/qemuxml2argv-memtune.xml | 6 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-memtune.xml | 31 +++++++
tests/qemuxml2xmltest.c | 2 +-
6 files changed, 147 insertions(+), 50 deletions(-)
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-memtune.xml
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 0855c7f..1e4a990 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -415,8 +415,8 @@
<pre>
<domain>
...
-<memory>524288</memory>
-<currentMemory>524288</currentMemory>
+<memory unit='KiB'>524288</memory>
+<currentMemory unit='KiB'>524288</currentMemory>
...
</domain>
</pre>
@@ -424,12 +424,30 @@
<dl>
<dt><code>memory</code></dt>
<dd>The maximum allocation of memory for the guest at boot time.
- The units for this value are kibibytes (i.e. blocks of 1024 bytes)</dd>
+ The units for this value are determined by the optional
+ atttribute<code>unit</code>, which defaults to "KiB"
+ (kibibytes, 2<sup>10</sup> or blocks of 1024 bytes). Valid
+ units are "b" or "bytes" for bytes, "KB" for
kilobytes
+ (10<sup>3</sup> or 1,000), "k" or "KiB" for
kibibytes (1024),
+ "MB" for megabytes (10<sup>6</sup> or 1,000,000),
"M" or "MiB"
+ for mebibytes (2<sup>20</sup> or 1,048,576), "GB" for
As in the previous similar sections, I'd explicitly specify that the
numbers are bytes here.
+ gigabytes (10<sup>9</sup> or 1,000,000,000),
"G" or "GiB" for
+ gibibytes (2<sup>30</sup> or 1,073,741,824), "TB" for
+ terabytes (10<sup>12</sup> or 1,000,000,000,000), or "T"
or
+ "TiB" for tebibytes (2<sup>40</sup> or
1,099,511,627,776).
+ However, the value will be rounded up to the nearest kibibyte
+ by libvirt, and may be further rounded to the granularity
+ supported by the hypervisor. Some hypervisors also enforce a
+ minimum, such as
This patch clears everything I was afraid in 05/15.
ACK,
Peter