]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
domain_conf, qemu: move virDomainNVDimmAlignSizePseries to qemu_domain.c
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Fri, 4 Dec 2020 19:08:56 +0000 (16:08 -0300)
committerDaniel Henrique Barboza <danielhb413@gmail.com>
Fri, 4 Dec 2020 19:08:56 +0000 (16:08 -0300)
Since the function is now only used in qemu_domain.c, move it from
domain_conf.c and rename it.

This reverts the work done in commit ace5931553c87beebb6b3cd994061742b3f88238
(conf, qemu: move qemuDomainNVDimmAlignSizePseries to domain_conf.c).

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/conf/domain_conf.c
src/conf/domain_conf.h
src/libvirt_private.syms
src/qemu/qemu_domain.c

index a513b72a385ee6fb625b905c69960bd123f5fa7c..66ee658e7b32a0be0997ca66588938c05d9290d0 100644 (file)
@@ -16817,41 +16817,6 @@ virDomainSEVDefParseXML(xmlNodePtr sevNode,
     return NULL;
 }
 
-int
-virDomainNVDimmAlignSizePseries(virDomainMemoryDefPtr mem)
-{
-    /* For NVDIMMs in ppc64 in we want to align down the guest
-     * visible space, instead of align up, to avoid writing
-     * beyond the end of file by adding a potential 256MiB
-     * to the user specified size.
-     *
-     * The label-size is mandatory for ppc64 as well, meaning that
-     * the guest visible space will be target_size-label_size.
-     *
-     * Finally, target_size must include label_size.
-     *
-     * The above can be summed up as follows:
-     *
-     * target_size = AlignDown(target_size - label_size) + label_size
-     */
-    unsigned long long ppc64AlignSize =  256 * 1024;
-    unsigned long long guestArea = mem->size - mem->labelsize;
-
-    /* Align down guest_area. 256MiB is the minimum size. Error
-     * out if target_size is smaller than 256MiB + label_size,
-     * since aligning it up will cause QEMU errors. */
-    if (mem->size < (ppc64AlignSize + mem->labelsize)) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("minimum target size for the NVDIMM "
-                         "must be 256MB plus the label size"));
-        return -1;
-    }
-
-    guestArea = (guestArea/ppc64AlignSize) * ppc64AlignSize;
-    mem->size = guestArea + mem->labelsize;
-
-    return 0;
-}
 
 static virDomainMemoryDefPtr
 virDomainMemoryDefParseXML(virDomainXMLOptionPtr xmlopt,
index 5853e3b290329be14dc1c8f720fcd096dc30cf08..cdf08de60aeac92001583abf679fa90c52affc8c 100644 (file)
@@ -3912,9 +3912,6 @@ bool
 virDomainBlockIoTuneInfoEqual(const virDomainBlockIoTuneInfo *a,
                               const virDomainBlockIoTuneInfo *b);
 
-int
-virDomainNVDimmAlignSizePseries(virDomainMemoryDefPtr mem);
-
 bool
 virHostdevIsSCSIDevice(const virDomainHostdevDef *hostdev)
     ATTRIBUTE_NONNULL(1);
index 2f640ef1c4152b4779248e4ebee43ef9dcad2339..5cf39bdf6c7cf6fabaad65cd03f76bb4e322c5dc 100644 (file)
@@ -546,7 +546,6 @@ virDomainNetTypeToString;
 virDomainNetUpdate;
 virDomainNostateReasonTypeFromString;
 virDomainNostateReasonTypeToString;
-virDomainNVDimmAlignSizePseries;
 virDomainObjAssignDef;
 virDomainObjBroadcast;
 virDomainObjCheckActive;
index dcc68f486d0101892264f3283069016775f49e6a..2275c83aa8516f938a7b0ac6f0b6fb5df91918c8 100644 (file)
@@ -5341,6 +5341,43 @@ qemuDomainTPMDefPostParse(virDomainTPMDefPtr tpm,
 }
 
 
+static int
+qemuDomainNVDimmAlignSizePseries(virDomainMemoryDefPtr mem)
+{
+    /* For NVDIMMs in ppc64 in we want to align down the guest
+     * visible space, instead of align up, to avoid writing
+     * beyond the end of file by adding a potential 256MiB
+     * to the user specified size.
+     *
+     * The label-size is mandatory for ppc64 as well, meaning that
+     * the guest visible space will be target_size-label_size.
+     *
+     * Finally, target_size must include label_size.
+     *
+     * The above can be summed up as follows:
+     *
+     * target_size = AlignDown(target_size - label_size) + label_size
+     */
+    unsigned long long ppc64AlignSize =  256 * 1024;
+    unsigned long long guestArea = mem->size - mem->labelsize;
+
+    /* Align down guest_area. 256MiB is the minimum size. Error
+     * out if target_size is smaller than 256MiB + label_size,
+     * since aligning it up will cause QEMU errors. */
+    if (mem->size < (ppc64AlignSize + mem->labelsize)) {
+        virReportError(VIR_ERR_XML_ERROR, "%s",
+                       _("minimum target size for the NVDIMM "
+                         "must be 256MB plus the label size"));
+        return -1;
+    }
+
+    guestArea = (guestArea/ppc64AlignSize) * ppc64AlignSize;
+    mem->size = guestArea + mem->labelsize;
+
+    return 0;
+}
+
+
 static int
 qemuDomainMemoryDefPostParse(virDomainMemoryDefPtr mem, virArch arch,
                              unsigned int parseFlags)
@@ -5362,7 +5399,7 @@ qemuDomainMemoryDefPostParse(virDomainMemoryDefPtr mem, virArch arch,
             unsigned long long ppc64MemModuleAlign = 256 * 1024;
 
             if (mem->model == VIR_DOMAIN_MEMORY_MODEL_NVDIMM) {
-                if (virDomainNVDimmAlignSizePseries(mem) < 0)
+                if (qemuDomainNVDimmAlignSizePseries(mem) < 0)
                     return -1;
             } else {
                 mem->size = VIR_ROUND_UP(mem->size, ppc64MemModuleAlign);
@@ -8129,7 +8166,7 @@ qemuDomainAlignMemorySizes(virDomainDefPtr def)
     for (i = 0; i < def->nmems; i++) {
         if (def->mems[i]->model == VIR_DOMAIN_MEMORY_MODEL_NVDIMM &&
             ARCH_IS_PPC64(def->os.arch)) {
-            if (virDomainNVDimmAlignSizePseries(def->mems[i]) < 0)
+            if (qemuDomainNVDimmAlignSizePseries(def->mems[i]) < 0)
                 return -1;
         } else {
             align = qemuDomainGetMemoryModuleSizeAlignment(def, def->mems[i]);
@@ -8166,7 +8203,7 @@ qemuDomainMemoryDeviceAlignSize(virDomainDefPtr def,
 {
     if (mem->model == VIR_DOMAIN_MEMORY_MODEL_NVDIMM &&
         ARCH_IS_PPC64(def->os.arch)) {
-        return virDomainNVDimmAlignSizePseries(mem);
+        return qemuDomainNVDimmAlignSizePseries(mem);
     } else {
         mem->size = VIR_ROUND_UP(mem->size,
                                  qemuDomainGetMemorySizeAlignment(def));