|
|
4bff0a |
From c95026c6979bb6f8dc52a6392318bc16615ace77 Mon Sep 17 00:00:00 2001
|
|
|
4bff0a |
From: Jan Synacek <jsynacek@redhat.com>
|
|
|
4bff0a |
Date: Wed, 30 Jan 2019 10:36:53 +0100
|
|
|
4bff0a |
Subject: [PATCH] rules: implement new memory hotplug policy
|
|
|
4bff0a |
|
|
|
4bff0a |
Our new policy is based on following motivations (assumptions),
|
|
|
4bff0a |
* we want to allow the system to use hotplugged memory
|
|
|
4bff0a |
* we want memory ballon inflation to work as expected in VMs (going for small
|
|
|
4bff0a |
to big in terms of memory footprint)
|
|
|
4bff0a |
* we want to allow memory hotplug and memory hot-unplug on high-end
|
|
|
4bff0a |
enterprise server (we assume that node0 will have sufficient memory
|
|
|
4bff0a |
resources and marking all memory as movable shouldn't be a problem)
|
|
|
4bff0a |
|
|
|
4bff0a |
Policy:
|
|
|
4bff0a |
* nevert online memory on s390 (on both physical and z/VM)
|
|
|
4bff0a |
* mark memory as "online_movable" on physical machines
|
|
|
4bff0a |
* mark memory as "online" in VMs
|
|
|
4bff0a |
|
|
|
4bff0a |
If you have the feeling that all this is very wrong and we shouldn't
|
|
|
4bff0a |
encode complex policies in udev rules you are absolutely right. However,
|
|
|
4bff0a |
for now, we don't have any better place where to put it. In ideal world
|
|
|
4bff0a |
we would have a user-space daemon that would be able to configure the
|
|
|
4bff0a |
system wrt. to currently present HW and user-defined policy.
|
|
|
4bff0a |
|
|
|
4bff0a |
Resolves: #1670728
|
|
|
4bff0a |
---
|
|
|
4bff0a |
rules/40-redhat.rules | 10 +++++++++-
|
|
|
4bff0a |
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
|
4bff0a |
|
|
|
4bff0a |
diff --git a/rules/40-redhat.rules b/rules/40-redhat.rules
|
|
|
4bff0a |
index 8ac96933c3..17b33682bd 100644
|
|
|
4bff0a |
--- a/rules/40-redhat.rules
|
|
|
4bff0a |
+++ b/rules/40-redhat.rules
|
|
|
4bff0a |
@@ -4,7 +4,15 @@
|
|
|
4bff0a |
SUBSYSTEM=="cpu", ACTION=="add", TEST=="online", ATTR{online}=="0", ATTR{online}="1"
|
|
|
4bff0a |
|
|
|
4bff0a |
# Memory hotadd request
|
|
|
4bff0a |
-SUBSYSTEM=="memory", ACTION=="add", PROGRAM=="/bin/uname -p", RESULT!="s390*", ATTR{state}=="offline", ATTR{state}="online"
|
|
|
4bff0a |
+SUBSYSTEM!="memory", GOTO="memory_hotplug_end"
|
|
|
4bff0a |
+ACTION!="add", GOTO="memory_hotplug_end"
|
|
|
4bff0a |
+PROGRAM="/bin/uname -p", RESULT=="s390*", GOTO="memory_hotplug_end"
|
|
|
4bff0a |
+
|
|
|
4bff0a |
+ENV{.state}="online"
|
|
|
4bff0a |
+PROGRAM="/bin/systemd-detect-virt", RESULT=="none", ENV{.state}="online_movable"
|
|
|
4bff0a |
+ATTR{state}=="offline", ATTR{state}="$env{.state}"
|
|
|
4bff0a |
+
|
|
|
4bff0a |
+LABEL="memory_hotplug_end"
|
|
|
4bff0a |
|
|
|
4bff0a |
# reload sysctl.conf / sysctl.conf.d settings when the bridge module is loaded
|
|
|
4bff0a |
ACTION=="add", SUBSYSTEM=="module", KERNEL=="bridge", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/proc/sys/net/bridge"
|