Let's simplify the case when we only want a single thread and don't have to mess with signal handlers.
Signed-off-by: David Hildenbrand <da...@redhat.com> --- util/oslib-posix.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/util/oslib-posix.c b/util/oslib-posix.c index a1d309d495..1483e985c6 100644 --- a/util/oslib-posix.c +++ b/util/oslib-posix.c @@ -568,6 +568,14 @@ static bool touch_all_pages(char *area, size_t hpagesize, size_t numpages, } if (use_madv_populate_write) { + /* Avoid creating a single thread for MADV_POPULATE_WRITE */ + if (context.num_threads == 1) { + if (qemu_madvise(area, hpagesize * numpages, + QEMU_MADV_POPULATE_WRITE)) { + return true; + } + return false; + } touch_fn = do_madv_populate_write_pages; } else { touch_fn = do_touch_pages; -- 2.31.1