overcommit: introduce mem-lock=on-fault
authorDaniil Tatianin <d-tatianin@yandex-team.ru>
Wed, 12 Feb 2025 14:39:20 +0000 (17:39 +0300)
committerPeter Xu <peterx@redhat.com>
Wed, 12 Feb 2025 16:36:13 +0000 (11:36 -0500)
commit13057e064a3edae7abf9ca2c207cdf48b82c5aad
tree1e7c4af97ad7f9e543c651aea8601a71d2f2d99d
parentcd2e472e54a49c13b0a728cdda7c10c50421e23d
overcommit: introduce mem-lock=on-fault

Locking the memory without MCL_ONFAULT instantly prefaults any mmaped
anonymous memory with a write-fault, which introduces a lot of extra
overhead in terms of memory usage when all you want to do is to prevent
kcompactd from migrating and compacting QEMU pages. Add an option to
only lock pages lazily as they're faulted by the process by using
MCL_ONFAULT if asked.

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Daniil Tatianin <d-tatianin@yandex-team.ru>
Link: https://lore.kernel.org/r/20250212143920.1269754-5-d-tatianin@yandex-team.ru
Signed-off-by: Peter Xu <peterx@redhat.com>
include/system/system.h
migration/postcopy-ram.c
qemu-options.hx
system/globals.c
system/vl.c