[libvirt] [PATCHv2 10/15] xml: allow scaled memory on input

Peter Krempa pkrempa at redhat.com
Tue Mar 6 17:32:41 UTC 2012


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




More information about the libvir-list mailing list