[Bug 2081192] Re: Cannot change MemoryKSM in systemd units
Timo Aaltonen
2081192 at bugs.launchpad.net
Fri Nov 15 16:26:56 UTC 2024
Hello Pierre-Olivier, or anyone else affected,
Accepted systemd into noble-proposed. The package will build now and be
available at
https://launchpad.net/ubuntu/+source/systemd/255.4-1ubuntu8.5 in a few
hours, and then in the -proposed repository.
Please help us by testing this new package. See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed. Your feedback will aid us getting this
update out to other Ubuntu users.
If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, what testing has been
performed on the package and change the tag from verification-needed-
noble to verification-done-noble. If it does not fix the bug for you,
please add a comment stating that, and change the tag to verification-
failed-noble. In either case, without details of your testing we will
not be able to proceed.
Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in
advance for helping!
N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.
** Changed in: systemd (Ubuntu Noble)
Status: In Progress => Fix Committed
** Tags added: verification-needed verification-needed-noble
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/2081192
Title:
Cannot change MemoryKSM in systemd units
Status in systemd package in Ubuntu:
Fix Released
Status in systemd source package in Noble:
Fix Committed
Bug description:
[Impact]
Units with MemoryKSM=yes setting will fail to start with an "Invalid
argument" error. This makes the setting unusable on Noble.
[Test Plan]
On Noble, start a systemd service with MemoryKSM=yes:
$ systemd-run -u test-memory-ksm.service --wait -p MemoryKSM=yes
/usr/bin/true
On an affected system, this will fail immediately. Inspecting the
journal will show why, e.g.:
$ journalctl -u test-memory-ksm.service
Oct 17 10:37:20 six (sleep)[1494131]: test-memory-ksm.service: Failed to set KSM: Invalid argument
Oct 17 10:37:20 six systemd[1]: Started test-memory-ksm.service - /usr/bin/sleep infinity.
Oct 17 10:37:20 six systemd[1]: test-memory-ksm.service: Main process exited, code=exited, status=245/KSM
Oct 17 10:37:20 six systemd[1]: test-memory-ksm.service: Failed with result 'exit-code'.
On a patched system, the unit should start/exit normally.
[Where problems could occur]
This patch simply adds missing arguments to the prctl call for
PR_SET_MEMORY_MERGE. Problems would be isolated to the MemoryKSM=
setting.
[Other information]
The patch is from upstream:
https://github.com/systemd/systemd/commit/9bb89a55a235a3c64ec099bb86296d7fd1bb3302
[Original Description]
In one of my working unit (service), I try to toggle the MemoryKSM
boolean setting.
Using any of:
MemoryKSM=yes
MemoryKSM=on
MemoryKSM=true
MemoryKSM=1
Results in:
Sep 19 16:16:56 systemd[1]: Started XXX.service - XXX service.
Sep 19 16:16:56 (e_server)[4487]: XXX.service: Failed to set KSM: Invalid argument
Sep 19 16:16:56 systemd[1]: XXX.service: Main process exited, code=exited, status=245/KSM
Sep 19 16:16:56 systemd[1]: XXX.service: Failed with result 'exit-code'.
The following lines allow the service to start:
MemoryKSM="yes"
MemoryKSM="on"
MemoryKSM="true"
MemoryKSM="1"
but still, MemoryKSM stays off:
# systemctl show XXX.service | grep MemoryKSM
MemoryKSM=no
KSM is activated in my running kernel:
# cat /boot/config-$(uname -r) | grep KSM
CONFIG_KSM=y
Using prctl (libc6 2.39-0ubuntu8.3) to toggle KSM inside a running
process also works. I can read and set the memory_merge switch.
ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: systemd 255.4-1ubuntu8.4
ProcVersionSignature: Ubuntu 6.8.0-45.45-generic 6.8.12
Uname: Linux 6.8.0-45-generic x86_64
ApportVersion: 2.28.1-0ubuntu3.1
Architecture: amd64
CasperMD5CheckResult: unknown
CloudArchitecture: x86_64
CloudBuildName: server
CloudID: openstack
CloudName: openstack
CloudPlatform: openstack
CloudSerial: 20240612
CloudSubPlatform: metadata (http://169.254.169.254)
Date: Thu Sep 19 16:06:51 2024
Lsusb:
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd QEMU Tablet
Bus 001 Device 003: ID 0627:0001 Adomax Technology Co., Ltd QEMU Tablet
Lsusb-t:
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 001: Dev 002, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 002: Dev 003, If 0, Class=Human Interface Device, Driver=usbhid, 12M
MachineType: OpenStack Foundation OpenStack Nova
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-6.8.0-45-generic root=UUID=1c5e2fdc-a746-403d-9fc0-71af31bc9c19 ro console=tty1 console=ttyS0
SourcePackage: systemd
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 02/06/2015
dmi.bios.release: 0.0
dmi.bios.vendor: EFI Development Kit II / OVMF
dmi.bios.version: 0.0.0
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.version: pc-q35-4.2
dmi.modalias: dmi:bvnEFIDevelopmentKitII/OVMF:bvr0.0.0:bd02/06/2015:br0.0:svnOpenStackFoundation:pnOpenStackNova:pvr26.2.3:cvnQEMU:ct1:cvrpc-q35-4.2:sku:
dmi.product.family: Virtual Machine
dmi.product.name: OpenStack Nova
dmi.product.version: 26.2.3
dmi.sys.vendor: OpenStack Foundation
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2081192/+subscriptions
More information about the foundations-bugs
mailing list