On 27.07.21 21:04, Dr. David Alan Gilbert wrote:
* David Hildenbrand (da...@redhat.com) wrote:
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)) {

Do you never have to fall back if this particular memory region is the
one that can't do madv?

We sense upfront, when detecting use_madv_populate_write, whether it's supported on this very memory type. So, no need to fallback here.


Dave

--
Thanks,

David / dhildenb


Reply via email to