qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] exec: silence hugetlbfs warning under qtest


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] exec: silence hugetlbfs warning under qtest
Date: Mon, 23 Nov 2015 18:40:58 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0


On 18/11/2015 21:49, Michael S. Tsirkin wrote:
> On Wed, Nov 18, 2015 at 10:02:58AM +0100, address@hidden wrote:
>> From: Marc-André Lureau <address@hidden>
>>
>> vhost-user-test prints a warning. A test should not need to run on
>> hugetlbfs, let's silence the warning under qtest. The
>> condition can't check on qtest_enabled() since vhost-user-test actually
>> doesn't use qtest accel. However, qtest_driver() can be used, if
>> qtest_init() is called early enough. For that reason, move chardev and
>> qtest initialization early.
>>
>> Signed-off-by: Marc-André Lureau <address@hidden>
> 
> Seems ok, and let us bring back the 2.4 test that was
> dropped in 2.5, but I'd like an ack on this from someone else.

I wonder if we need the warning at all, but this patch is okay.

Anyhow:



-    if (qemu_opts_foreach(qemu_find_opts("object"),
-                          object_create,
-                          object_create_initial, NULL)) {
+    if (qemu_opts_foreach(qemu_find_opts("chardev"),
+                          chardev_init_func, NULL, NULL)) {
         exit(1);
     }

-    if (qemu_opts_foreach(qemu_find_opts("chardev"),
-                          chardev_init_func, NULL, NULL)) {
+    if (qtest_chrdev) {
+        Error *local_err = NULL;
+        qtest_init(qtest_chrdev, qtest_log, &local_err);
+        if (local_err) {
+            error_report_err(local_err);
+            exit(1);
+        }
+    }
+
+    if (qemu_opts_foreach(qemu_find_opts("object"),
+                          object_create,
+                          object_create_initial, NULL)) {
         exit(1);
     }


Before: object-initial, chardev, qtest, object-late (not in the patch)

After: chardev, qtest, object-initial, object-late (not in the patch)

Objects must be initialized before chardev (except rng-egd) since in the
future chardev will need to use objects, in particular secret objects.
Was the swap intentional?

Paolo

@@ -4325,15 +4334,6 @@ int main(int argc, char **argv, char **envp)

     configure_accelerator(current_machine);

-    if (qtest_chrdev) {
-        Error *local_err = NULL;
-        qtest_init(qtest_chrdev, qtest_log, &local_err);
-        if (local_err) {
-            error_report_err(local_err);
-            exit(1);
-        }
-    }

> Anyone?
> 
>> ---
>>  exec.c |  5 ++++-
>>  vl.c   | 28 ++++++++++++++--------------
>>  2 files changed, 18 insertions(+), 15 deletions(-)
>>
>> diff --git a/exec.c b/exec.c
>> index b09f18b..acbd4a2 100644
>> --- a/exec.c
>> +++ b/exec.c
>> @@ -51,6 +51,7 @@
>>  #include "qemu/main-loop.h"
>>  #include "translate-all.h"
>>  #include "sysemu/replay.h"
>> +#include "sysemu/qtest.h"
>>  
>>  #include "exec/memory-internal.h"
>>  #include "exec/ram_addr.h"
>> @@ -1196,8 +1197,10 @@ static long gethugepagesize(const char *path, Error 
>> **errp)
>>          return 0;
>>      }
>>  
>> -    if (fs.f_type != HUGETLBFS_MAGIC)
>> +    if (!qtest_driver() &&
>> +        fs.f_type != HUGETLBFS_MAGIC) {
>>          fprintf(stderr, "Warning: path not on HugeTLBFS: %s\n", path);
>> +    }
>>  
>>      return fs.f_bsize;
>>  }
>> diff --git a/vl.c b/vl.c
>> index 7d993a5..f9c661a 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -4288,14 +4288,23 @@ int main(int argc, char **argv, char **envp)
>>      page_size_init();
>>      socket_init();
>>  
>> -    if (qemu_opts_foreach(qemu_find_opts("object"),
>> -                          object_create,
>> -                          object_create_initial, NULL)) {
>> +    if (qemu_opts_foreach(qemu_find_opts("chardev"),
>> +                          chardev_init_func, NULL, NULL)) {
>>          exit(1);
>>      }
>>  
>> -    if (qemu_opts_foreach(qemu_find_opts("chardev"),
>> -                          chardev_init_func, NULL, NULL)) {
>> +    if (qtest_chrdev) {
>> +        Error *local_err = NULL;
>> +        qtest_init(qtest_chrdev, qtest_log, &local_err);
>> +        if (local_err) {
>> +            error_report_err(local_err);
>> +            exit(1);
>> +        }
>> +    }
>> +
>> +    if (qemu_opts_foreach(qemu_find_opts("object"),
>> +                          object_create,
>> +                          object_create_initial, NULL)) {
>>          exit(1);
>>      }
>>  
>> @@ -4325,15 +4334,6 @@ int main(int argc, char **argv, char **envp)
>>  
>>      configure_accelerator(current_machine);
>>  
>> -    if (qtest_chrdev) {
>> -        Error *local_err = NULL;
>> -        qtest_init(qtest_chrdev, qtest_log, &local_err);
>> -        if (local_err) {
>> -            error_report_err(local_err);
>> -            exit(1);
>> -        }
>> -    }
>> -
>>      machine_opts = qemu_get_machine_opts();
>>      kernel_filename = qemu_opt_get(machine_opts, "kernel");
>>      initrd_filename = qemu_opt_get(machine_opts, "initrd");
>> -- 
>> 2.5.0



reply via email to

[Prev in Thread] Current Thread [Next in Thread]