|
|
11fcb6 |
From b4469bda27e54a948f0d2750637226afc2b2be61 Mon Sep 17 00:00:00 2001
|
|
|
11fcb6 |
Message-Id: <b4469bda27e54a948f0d2750637226afc2b2be61@dist-git>
|
|
|
11fcb6 |
From: Michal Privoznik <mprivozn@redhat.com>
|
|
|
11fcb6 |
Date: Wed, 11 May 2022 16:27:18 +0200
|
|
|
11fcb6 |
Subject: [PATCH] conf: Move virDomainObj::originalMemlock into
|
|
|
11fcb6 |
qemuDomainObjPrivate
|
|
|
11fcb6 |
|
|
|
11fcb6 |
Since v1.3.0-90-gafbe1d4c56 the original value of memlock limit
|
|
|
11fcb6 |
is stored inside virDomainObj struct directly (under
|
|
|
11fcb6 |
originalMemlock member). This is needless because the value is
|
|
|
11fcb6 |
used only inside QEMU driver and thus can reside in
|
|
|
11fcb6 |
qemuDomainObjPrivate struct.
|
|
|
11fcb6 |
|
|
|
11fcb6 |
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
11fcb6 |
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
|
|
|
11fcb6 |
(cherry picked from commit 75df6d2c291c48d65c1e54dd93e3d2d3cb0712e7)
|
|
|
11fcb6 |
|
|
|
11fcb6 |
https://bugzilla.redhat.com/show_bug.cgi?id=2117272
|
|
|
11fcb6 |
|
|
|
11fcb6 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
11fcb6 |
---
|
|
|
11fcb6 |
src/conf/domain_conf.h | 3 ---
|
|
|
11fcb6 |
src/qemu/qemu_domain.c | 9 +++++----
|
|
|
11fcb6 |
src/qemu/qemu_domain.h | 3 +++
|
|
|
11fcb6 |
3 files changed, 8 insertions(+), 7 deletions(-)
|
|
|
11fcb6 |
|
|
|
11fcb6 |
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
|
|
|
11fcb6 |
index 10af94e2e4..7e3255e41a 100644
|
|
|
11fcb6 |
--- a/src/conf/domain_conf.h
|
|
|
11fcb6 |
+++ b/src/conf/domain_conf.h
|
|
|
11fcb6 |
@@ -3030,9 +3030,6 @@ struct _virDomainObj {
|
|
|
11fcb6 |
int taint;
|
|
|
11fcb6 |
size_t ndeprecations;
|
|
|
11fcb6 |
char **deprecations;
|
|
|
11fcb6 |
-
|
|
|
11fcb6 |
- unsigned long long originalMemlock; /* Original RLIMIT_MEMLOCK, zero if no
|
|
|
11fcb6 |
- * restore will be required later */
|
|
|
11fcb6 |
};
|
|
|
11fcb6 |
|
|
|
11fcb6 |
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainObj, virObjectUnref);
|
|
|
11fcb6 |
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
|
|
|
11fcb6 |
index 40fe9985e6..86d673dafa 100644
|
|
|
11fcb6 |
--- a/src/qemu/qemu_domain.c
|
|
|
11fcb6 |
+++ b/src/qemu/qemu_domain.c
|
|
|
11fcb6 |
@@ -9269,6 +9269,7 @@ int
|
|
|
11fcb6 |
qemuDomainAdjustMaxMemLock(virDomainObj *vm,
|
|
|
11fcb6 |
bool forceVFIO)
|
|
|
11fcb6 |
{
|
|
|
11fcb6 |
+ qemuDomainObjPrivate *priv = vm->privateData;
|
|
|
11fcb6 |
unsigned long long currentMemLock = 0;
|
|
|
11fcb6 |
unsigned long long desiredMemLock = 0;
|
|
|
11fcb6 |
|
|
|
11fcb6 |
@@ -9281,8 +9282,8 @@ qemuDomainAdjustMaxMemLock(virDomainObj *vm,
|
|
|
11fcb6 |
/* If this is the first time adjusting the limit, save the current
|
|
|
11fcb6 |
* value so that we can restore it once memory locking is no longer
|
|
|
11fcb6 |
* required */
|
|
|
11fcb6 |
- if (vm->originalMemlock == 0) {
|
|
|
11fcb6 |
- vm->originalMemlock = currentMemLock;
|
|
|
11fcb6 |
+ if (priv->originalMemlock == 0) {
|
|
|
11fcb6 |
+ priv->originalMemlock = currentMemLock;
|
|
|
11fcb6 |
}
|
|
|
11fcb6 |
} else {
|
|
|
11fcb6 |
/* If the limit is already high enough, we can assume
|
|
|
11fcb6 |
@@ -9295,8 +9296,8 @@ qemuDomainAdjustMaxMemLock(virDomainObj *vm,
|
|
|
11fcb6 |
} else {
|
|
|
11fcb6 |
/* Once memory locking is no longer required, we can restore the
|
|
|
11fcb6 |
* original, usually very low, limit */
|
|
|
11fcb6 |
- desiredMemLock = vm->originalMemlock;
|
|
|
11fcb6 |
- vm->originalMemlock = 0;
|
|
|
11fcb6 |
+ desiredMemLock = priv->originalMemlock;
|
|
|
11fcb6 |
+ priv->originalMemlock = 0;
|
|
|
11fcb6 |
}
|
|
|
11fcb6 |
|
|
|
11fcb6 |
if (desiredMemLock > 0 &&
|
|
|
11fcb6 |
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
|
|
|
11fcb6 |
index e5046367e3..e9497d20de 100644
|
|
|
11fcb6 |
--- a/src/qemu/qemu_domain.h
|
|
|
11fcb6 |
+++ b/src/qemu/qemu_domain.h
|
|
|
11fcb6 |
@@ -241,6 +241,9 @@ struct _qemuDomainObjPrivate {
|
|
|
11fcb6 |
GSList *dbusVMStateIds;
|
|
|
11fcb6 |
/* true if -object dbus-vmstate was added */
|
|
|
11fcb6 |
bool dbusVMState;
|
|
|
11fcb6 |
+
|
|
|
11fcb6 |
+ unsigned long long originalMemlock; /* Original RLIMIT_MEMLOCK, zero if no
|
|
|
11fcb6 |
+ * restore will be required later */
|
|
|
11fcb6 |
};
|
|
|
11fcb6 |
|
|
|
11fcb6 |
#define QEMU_DOMAIN_PRIVATE(vm) \
|
|
|
11fcb6 |
--
|
|
|
11fcb6 |
2.35.1
|
|
|
11fcb6 |
|