Replace uksmd with built-in KSM support in systemd #64
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
systemd allows to use the same mechanism (kernel API) as uksmd using the
MemoryKSM=yes
service option. The idea is that we take the processes that are parent to most user processes like display managers (SDDM/GDM/LightMD/Ly/etc) or getty in case we don't have a display manager, and enableMemoryKSM=yes
for them, so that all child processes inherit the PR_SET_MEMORY_MERGE attribute, which gives ksmd a hint that the pages of this process can be merged. Unlike uksmd it allows us to:uksmd
still a necessary dependency forcachyos-settings
? CachyOS-PKGBUILDS#203)I also put a new
ksmctl
utility in these patches that allows you to disable ksmd right at runtime, in case debugging/regressions occur. Measurements and profits can be retrieved usingtopmem --sort ksm
.Marked as a draft until systemd 256 is available in the repo, as it contains an important fix related to these changes.