qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 00/50] Misc patches for 2019-01-21
@ 2019-01-25 17:17 Paolo Bonzini
  2019-01-25 17:17 ` [Qemu-devel] [PULL 14/50] vhost-user-test: create a main loop per TestServer Paolo Bonzini
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Paolo Bonzini @ 2019-01-25 17:17 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit 8b7a3e1e5434b55d7710071b00af97c7086cab7a:

  Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2019-01-24 15:04:47 +0000)

are available in the git repository at:


  git://github.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to 357c846440e9423b11f815cbf32441651e4f4835:

  docker: adjust Xen repository for CentOS 7 (2019-01-25 14:38:08 +0100)

----------------------------------------------------------------
* cpu-exec fixes (Emilio, Laurent)
* high address load for linuxboot (Zhijian)
* PVH support (Liam, Stefano)
* Linux header update (Paolo)
* enable vhost-net for all targets that have virtio-net (Paolo)
* vhost-user-test cleanups (Paolo)
* misc i386 changes (Paolo, Robert)
* hexloader-test change to avoid O_NONBLOCK on stdin (Peter)
* configure tweak for openpty (Thomas)
* elf2dmp port to Windows (Viktor)

----------------------------------------------------------------

Shooting a bit in the dark, but this should hopefully fix the macOS failure.

Emilio G. Cota (2):
      cpu-exec: add assert_no_pages_locked() after longjmp
      cpu-exec: reset BQL after longjmp in cpu_exec_step_atomic

Laurent Vivier (1):
      cpus: ignore ESRCH in qemu_cpu_kick_thread()

Li Zhijian (4):
      unify len and addr type for memory/address APIs
      hw/core/loader.c: Read as long as possible in load_image_size()
      i386: import & use bootparam.h
      i386: allow to load initrd below 4 GB for recent linux

Liam Merwick (4):
      elf: Add optional function ptr to load_elf() to parse ELF notes
      elf-ops.h: Add get_elf_note_type()
      pvh: Add x86/HVM direct boot ABI header file
      pvh: Boot uncompressed kernel using direct boot ABI

Paolo Bonzini (23):
      scripts/update-linux-headers.sh: adjust for Linux 4.21-rc1 (or 5.0-rc1)
      include: update Linux headers to 4.21-rc1/5.0-rc1
      vhost-net: move stubs to a separate file
      vhost-net-user: add stubs for when no virtio-net device is present
      vhost: restrict Linux dependency to kernel vhost
      vhost-net: compile it on all targets that have virtio-net.
      vhost-net: revamp configure logic
      vhost-user-test: use g_cond_broadcast
      vhost-user-test: signal data_cond when s->rings changes
      vhost-user: support cross-endian vnet headers
      vhost-user-test: support VHOST_USER_PROTOCOL_F_CROSS_ENDIAN
      vhost-user-test: skip if there is no memory at address 0
      vhost-user-test: reduce usage of global_qtest
      vhost-user-test: create a main loop per TestServer
      vhost-user-test: small changes to init_hugepagefs
      vhost-user-test: create a temporary directory per TestServer
      tap: flush STDOUT on newline
      i386: remove the 'INTEL_PT' CPUID bit from named CPU models
      target-i386: hvf: remove MPX support
      monitor: do not use QTAILQ_FOREACH_SAFE across critical sections
      crypto: finish removing TABs
      ui: vnc: finish removing TABs
      docker: adjust Xen repository for CentOS 7

Robert Hoo (2):
      i386: remove the new CPUID 'PCONFIG' from Icelake-Server CPU model
      Revert "i386: Add CPUID bit for PCONFIG"

Stefano Garzarella (7):
      pvh: load initrd and expose it through fw_cfg
      linuxboot_dma: remove duplicate definitions of FW_CFG
      linuxboot_dma: move common functions in a new header
      optionrom: add new PVH option rom
      hw/i386/pc: use PVH option rom
      optionrom/pvh: load initrd from fw_cfg
      hw/i386/pc: enable PVH only for machine type >= 4.0

Thomas Huth (1):
      configure: Add a proper check for openpty() in libutil

Viktor Prutyanov (6):
      contrib/elf2dmp: fix elf.h including
      contrib/elf2dmp: use GLib in ELF processing
      contrib/elf2dmp: use GLib in PDB processing
      contrib/elf2dmp: fix structures definitions
      contrib/elf2dmp: fix printf format
      configure: enable elf2dmp build for Windows hosts

 .gitignore                                         |    4 +
 Makefile                                           |    6 +-
 accel/tcg/cpu-exec.c                               |    4 +
 backends/Makefile.objs                             |    5 +-
 configure                                          |  118 ++-
 contrib/elf2dmp/kdbg.h                             |   12 +-
 contrib/elf2dmp/main.c                             |   27 +-
 contrib/elf2dmp/pdb.c                              |   33 +-
 contrib/elf2dmp/pdb.h                              |    4 +-
 contrib/elf2dmp/pe.h                               |    6 +-
 contrib/elf2dmp/qemu_elf.c                         |   27 +-
 contrib/elf2dmp/qemu_elf.h                         |   10 +-
 cpus.c                                             |    2 +-
 crypto/aes.c                                       |  414 ++++----
 crypto/desrfb.c                                    |  594 +++++------
 default-configs/virtio.mak                         |    4 +-
 exec.c                                             |   47 +-
 hw/alpha/dp264.c                                   |    4 +-
 hw/arm/armv7m.c                                    |    3 +-
 hw/arm/boot.c                                      |    2 +-
 hw/core/generic-loader.c                           |    2 +-
 hw/core/loader.c                                   |   35 +-
 hw/cris/boot.c                                     |    3 +-
 hw/hppa/machine.c                                  |    6 +-
 hw/i386/multiboot.c                                |    2 +-
 hw/i386/pc.c                                       |  191 +++-
 hw/i386/pc_piix.c                                  |    3 +
 hw/i386/pc_q35.c                                   |    3 +
 hw/lm32/lm32_boards.c                              |    6 +-
 hw/lm32/milkymist.c                                |    3 +-
 hw/m68k/an5206.c                                   |    2 +-
 hw/m68k/mcf5208.c                                  |    2 +-
 hw/microblaze/boot.c                               |    7 +-
 hw/mips/mips_fulong2e.c                            |    5 +-
 hw/mips/mips_malta.c                               |    5 +-
 hw/mips/mips_mipssim.c                             |    5 +-
 hw/mips/mips_r4k.c                                 |    5 +-
 hw/moxie/moxiesim.c                                |    2 +-
 hw/net/Makefile.objs                               |    4 +-
 hw/net/vhost_net-stub.c                            |   92 ++
 hw/net/vhost_net.c                                 |   85 +-
 hw/nios2/boot.c                                    |    7 +-
 hw/openrisc/openrisc_sim.c                         |    2 +-
 hw/pci-host/prep.c                                 |    2 +-
 hw/ppc/e500.c                                      |    3 +-
 hw/ppc/mac_newworld.c                              |    5 +-
 hw/ppc/mac_oldworld.c                              |    5 +-
 hw/ppc/ppc440_bamboo.c                             |    2 +-
 hw/ppc/sam460ex.c                                  |    3 +-
 hw/ppc/spapr.c                                     |    7 +-
 hw/ppc/virtex_ml507.c                              |    2 +-
 hw/riscv/sifive_e.c                                |    2 +-
 hw/riscv/sifive_u.c                                |    2 +-
 hw/riscv/spike.c                                   |    2 +-
 hw/riscv/virt.c                                    |    2 +-
 hw/s390x/ipl.c                                     |    9 +-
 hw/sparc/leon3.c                                   |    3 +-
 hw/sparc/sun4m.c                                   |    6 +-
 hw/sparc64/sun4u.c                                 |    4 +-
 hw/tricore/tricore_testboard.c                     |    2 +-
 hw/virtio/Makefile.objs                            |    8 +-
 hw/virtio/vhost-backend.c                          |   12 +-
 hw/virtio/vhost-user.c                             |   13 +-
 hw/virtio/vhost.c                                  |    2 +-
 hw/xtensa/sim.c                                    |   12 +-
 hw/xtensa/xtfpga.c                                 |    2 +-
 include/elf.h                                      |   10 +
 include/exec/cpu-all.h                             |    2 +-
 include/exec/cpu-common.h                          |    8 +-
 include/exec/memory.h                              |   22 +-
 include/exec/poison.h                              |    1 -
 include/hw/elf_ops.h                               |   77 ++
 include/hw/i386/pc.h                               |    3 +
 include/hw/loader.h                                |    9 +-
 include/hw/xen/start_info.h                        |  146 +++
 include/standard-headers/asm-x86/bootparam.h       |   34 +
 include/standard-headers/drm/drm_fourcc.h          |   63 ++
 include/standard-headers/linux/ethtool.h           |   19 +-
 include/standard-headers/linux/input-event-codes.h |   17 +
 include/standard-headers/linux/pci_regs.h          |    1 +
 include/standard-headers/linux/vhost_types.h       |  128 +++
 include/standard-headers/linux/virtio_balloon.h    |    8 +
 include/standard-headers/linux/virtio_blk.h        |   54 +
 include/standard-headers/linux/virtio_config.h     |    3 +
 include/standard-headers/linux/virtio_gpu.h        |   18 +
 include/standard-headers/linux/virtio_ring.h       |   52 +
 linux-headers/asm-arm/unistd-common.h              |    1 +
 linux-headers/asm-arm64/unistd.h                   |    1 +
 linux-headers/asm-generic/unistd.h                 |   10 +-
 linux-headers/asm-mips/sgidefs.h                   |    8 -
 linux-headers/asm-mips/unistd.h                    | 1074 +-------------------
 linux-headers/asm-mips/unistd_n32.h                |  338 ++++++
 linux-headers/asm-mips/unistd_n64.h                |  334 ++++++
 linux-headers/asm-mips/unistd_o32.h                |  374 +++++++
 linux-headers/asm-powerpc/unistd.h                 |  389 +------
 linux-headers/asm-powerpc/unistd_32.h              |  381 +++++++
 linux-headers/asm-powerpc/unistd_64.h              |  372 +++++++
 linux-headers/linux/kvm.h                          |   29 +
 linux-headers/linux/vfio.h                         |   92 ++
 linux-headers/linux/vhost.h                        |  113 +-
 linux-headers/linux/vhost_types.h                  |    1 +
 monitor.c                                          |    5 +-
 net/Makefile.objs                                  |    4 +-
 net/net.c                                          |    2 +-
 net/vhost-user-stub.c                              |   23 +
 net/vhost-user.c                                   |   13 +
 pc-bios/optionrom/Makefile                         |    5 +-
 pc-bios/optionrom/linuxboot_dma.c                  |  114 +--
 pc-bios/optionrom/optrom.h                         |  110 ++
 pc-bios/optionrom/optrom_fw_cfg.h                  |   92 ++
 pc-bios/optionrom/pvh.S                            |  200 ++++
 pc-bios/optionrom/pvh_main.c                       |  133 +++
 pc-bios/pvh.bin                                    |  Bin 0 -> 1536 bytes
 scripts/tap-driver.pl                              |    1 +
 scripts/tap-merge.pl                               |    1 +
 scripts/update-linux-headers.sh                    |   17 +
 target/i386/cpu.c                                  |   13 +-
 target/i386/cpu.h                                  |    1 -
 target/i386/hvf/x86_cpuid.c                        |   18 +-
 tests/Makefile.include                             |    9 +-
 tests/docker/dockerfiles/centos7.docker            |    5 +-
 tests/vhost-user-test.c                            |  251 +++--
 ui/vnc-enc-hextile-template.h                      |  268 ++---
 ui/vnc-enc-zywrle.h                                |  394 +++----
 124 files changed, 4784 insertions(+), 3000 deletions(-)
 create mode 100644 hw/net/vhost_net-stub.c
 create mode 100644 include/hw/xen/start_info.h
 create mode 100644 include/standard-headers/asm-x86/bootparam.h
 create mode 100644 include/standard-headers/linux/vhost_types.h
 create mode 100644 linux-headers/asm-mips/unistd_n32.h
 create mode 100644 linux-headers/asm-mips/unistd_n64.h
 create mode 100644 linux-headers/asm-mips/unistd_o32.h
 create mode 100644 linux-headers/asm-powerpc/unistd_32.h
 create mode 100644 linux-headers/asm-powerpc/unistd_64.h
 create mode 100644 linux-headers/linux/vhost_types.h
 create mode 100644 net/vhost-user-stub.c
 create mode 100644 pc-bios/optionrom/optrom.h
 create mode 100644 pc-bios/optionrom/optrom_fw_cfg.h
 create mode 100644 pc-bios/optionrom/pvh.S
 create mode 100644 pc-bios/optionrom/pvh_main.c
 create mode 100644 pc-bios/pvh.bin
-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PULL 14/50] vhost-user-test: create a main loop per TestServer
  2019-01-25 17:17 [Qemu-devel] [PULL 00/50] Misc patches for 2019-01-21 Paolo Bonzini
@ 2019-01-25 17:17 ` Paolo Bonzini
  2019-01-25 17:17 ` [Qemu-devel] [PULL 16/50] vhost-user-test: create a temporary directory " Paolo Bonzini
  2019-01-28 12:53 ` [Qemu-devel] [PULL 00/50] Misc patches for 2019-01-21 Peter Maydell
  2 siblings, 0 replies; 4+ messages in thread
From: Paolo Bonzini @ 2019-01-25 17:17 UTC (permalink / raw)
  To: qemu-devel

This makes the tests more independent and removes the need to defer test_server_free
via an idle event source.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <1543851204-41186-13-git-send-email-pbonzini@redhat.com>
---
 tests/vhost-user-test.c | 40 ++++++++++++++++++----------------------
 1 file changed, 18 insertions(+), 22 deletions(-)

diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 15e3bbf..4ea33b5 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -146,6 +146,8 @@ typedef struct TestServer {
     int fds_num;
     int fds[VHOST_MEMORY_MAX_NREGIONS];
     VhostUserMemory memory;
+    GMainLoop *loop;
+    GThread *thread;
     GMutex data_mutex;
     GCond data_cond;
     int log_fd;
@@ -494,6 +496,13 @@ static const char *init_hugepagefs(const char *path)
 static TestServer *test_server_new(const gchar *name)
 {
     TestServer *server = g_new0(TestServer, 1);
+    GMainContext *context = g_main_context_new();
+
+    server->loop = g_main_loop_new(context, FALSE);
+    g_main_context_unref(context);
+
+    /* run the main loop thread so the chardev may operate */
+    server->thread = g_thread_new(NULL, thread_function, server->loop);
 
     server->socket_path = g_strdup_printf("%s/%s.sock", tmpfs, name);
     server->mig_path = g_strdup_printf("%s/%s.mig", tmpfs, name);
@@ -538,10 +547,18 @@ static void test_server_listen(TestServer *server)
     test_server_create_chr(server, ",server,nowait");
 }
 
-static gboolean _test_server_free(TestServer *server)
+static void test_server_free(TestServer *server)
 {
     int i;
 
+    /* finish the helper thread and dispatch pending sources */
+    g_main_loop_quit(server->loop);
+    g_thread_join(server->thread);
+    while (g_main_context_pending(NULL)) {
+        g_main_context_iteration(NULL, TRUE);
+    }
+    g_main_loop_unref(server->loop);
+
     qemu_chr_fe_deinit(&server->chr, true);
 
     for (i = 0; i < server->fds_num; i++) {
@@ -563,13 +580,6 @@ static gboolean _test_server_free(TestServer *server)
     qpci_free_pc(server->bus);
 
     g_free(server);
-
-    return FALSE;
-}
-
-static void test_server_free(TestServer *server)
-{
-    g_idle_add((GSourceFunc)_test_server_free, server);
 }
 
 static void wait_for_log_fd(TestServer *s)
@@ -974,8 +984,6 @@ int main(int argc, char **argv)
     const char *hugefs;
     int ret;
     char template[] = "/tmp/vhost-test-XXXXXX";
-    GMainLoop *loop;
-    GThread *thread;
 
     g_test_init(&argc, &argv, NULL);
 
@@ -997,10 +1005,6 @@ int main(int argc, char **argv)
     }
 #endif
 
-    loop = g_main_loop_new(NULL, FALSE);
-    /* run the main loop thread so the chardev may operate */
-    thread = g_thread_new(NULL, thread_function, loop);
-
     if (qemu_memfd_check(0)) {
         qtest_add_data_func("/vhost-user/read-guest-mem/memfd",
                             GINT_TO_POINTER(TEST_MEMFD_YES),
@@ -1028,14 +1032,6 @@ int main(int argc, char **argv)
 
     /* cleanup */
 
-    /* finish the helper thread and dispatch pending sources */
-    g_main_loop_quit(loop);
-    g_thread_join(thread);
-    while (g_main_context_pending(NULL)) {
-        g_main_context_iteration (NULL, TRUE);
-    }
-    g_main_loop_unref(loop);
-
     ret = rmdir(tmpfs);
     if (ret != 0) {
         g_test_message("unable to rmdir: path (%s): %s\n",
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PULL 16/50] vhost-user-test: create a temporary directory per TestServer
  2019-01-25 17:17 [Qemu-devel] [PULL 00/50] Misc patches for 2019-01-21 Paolo Bonzini
  2019-01-25 17:17 ` [Qemu-devel] [PULL 14/50] vhost-user-test: create a main loop per TestServer Paolo Bonzini
@ 2019-01-25 17:17 ` Paolo Bonzini
  2019-01-28 12:53 ` [Qemu-devel] [PULL 00/50] Misc patches for 2019-01-21 Peter Maydell
  2 siblings, 0 replies; 4+ messages in thread
From: Paolo Bonzini @ 2019-01-25 17:17 UTC (permalink / raw)
  To: qemu-devel

This makes the tests more independent, and also the source and destination
TestServers in the migration test.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <1543851204-41186-15-git-send-email-pbonzini@redhat.com>
---
 tests/vhost-user-test.c | 77 ++++++++++++++++++++++---------------------------
 1 file changed, 35 insertions(+), 42 deletions(-)

diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 803b64b..a1d17af 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -142,6 +142,8 @@ typedef struct TestServer {
     gchar *socket_path;
     gchar *mig_path;
     gchar *chr_name;
+    const gchar *mem_path;
+    gchar *tmpfs;
     CharBackend chr;
     int fds_num;
     int fds[VHOST_MEMORY_MAX_NREGIONS];
@@ -162,9 +164,6 @@ static TestServer *test_server_new(const gchar *name);
 static void test_server_free(TestServer *server);
 static void test_server_listen(TestServer *server);
 
-static const char *tmpfs;
-static const char *root;
-
 enum test_memfd {
     TEST_MEMFD_AUTO,
     TEST_MEMFD_YES,
@@ -172,7 +171,7 @@ enum test_memfd {
 };
 
 static char *get_qemu_cmd(TestServer *s,
-                          int mem, enum test_memfd memfd, const char *mem_path,
+                          int mem, enum test_memfd memfd,
                           const char *chr_opts, const char *extra)
 {
     if (memfd == TEST_MEMFD_AUTO && qemu_memfd_check(0)) {
@@ -187,7 +186,7 @@ static char *get_qemu_cmd(TestServer *s,
     } else {
         return g_strdup_printf(QEMU_CMD_MEM QEMU_CMD_CHR
                                QEMU_CMD_NETDEV QEMU_CMD_NET "%s", mem, mem,
-                               mem_path, s->chr_name, s->socket_path,
+                               s->mem_path, s->chr_name, s->socket_path,
                                chr_opts, s->chr_name, extra);
     }
 }
@@ -506,6 +505,8 @@ static const char *init_hugepagefs(void)
 static TestServer *test_server_new(const gchar *name)
 {
     TestServer *server = g_new0(TestServer, 1);
+    char template[] = "/tmp/vhost-test-XXXXXX";
+    const char *tmpfs;
     GMainContext *context = g_main_context_new();
 
     server->loop = g_main_loop_new(context, FALSE);
@@ -514,6 +515,14 @@ static TestServer *test_server_new(const gchar *name)
     /* run the main loop thread so the chardev may operate */
     server->thread = g_thread_new(NULL, thread_function, server->loop);
 
+    tmpfs = mkdtemp(template);
+    if (!tmpfs) {
+        g_test_message("mkdtemp on path (%s): %s", template, strerror(errno));
+    }
+    g_assert(tmpfs);
+
+    server->tmpfs = g_strdup(tmpfs);
+    server->mem_path = init_hugepagefs() ? : server->tmpfs;
     server->socket_path = g_strdup_printf("%s/%s.sock", tmpfs, name);
     server->mig_path = g_strdup_printf("%s/%s.mig", tmpfs, name);
     server->chr_name = g_strdup_printf("chr-%s", name);
@@ -559,7 +568,7 @@ static void test_server_listen(TestServer *server)
 
 static void test_server_free(TestServer *server)
 {
-    int i;
+    int i, ret;
 
     /* finish the helper thread and dispatch pending sources */
     g_main_loop_quit(server->loop);
@@ -569,6 +578,18 @@ static void test_server_free(TestServer *server)
     }
     g_main_loop_unref(server->loop);
 
+    unlink(server->socket_path);
+    g_free(server->socket_path);
+
+    unlink(server->mig_path);
+    g_free(server->mig_path);
+
+    ret = rmdir(server->tmpfs);
+    if (ret != 0) {
+        g_test_message("unable to rmdir: path (%s): %s",
+                       server->tmpfs, strerror(errno));
+    }
+
     qemu_chr_fe_deinit(&server->chr, true);
 
     for (i = 0; i < server->fds_num; i++) {
@@ -579,12 +600,6 @@ static void test_server_free(TestServer *server)
         close(server->log_fd);
     }
 
-    unlink(server->socket_path);
-    g_free(server->socket_path);
-
-    unlink(server->mig_path);
-    g_free(server->mig_path);
-
     g_free(server->chr_name);
     g_assert(server->bus);
     qpci_free_pc(server->bus);
@@ -690,7 +705,7 @@ static void test_read_guest_mem(const void *arg)
                              "read-guest-memfd" : "read-guest-mem");
     test_server_listen(server);
 
-    qemu_cmd = get_qemu_cmd(server, 512, memfd, root, "", "");
+    qemu_cmd = get_qemu_cmd(server, 512, memfd, "", "");
 
     s = qtest_start(qemu_cmd);
     g_free(qemu_cmd);
@@ -725,7 +740,7 @@ static void test_migrate(void)
     test_server_listen(s);
     test_server_listen(dest);
 
-    cmd = get_qemu_cmd(s, 2, TEST_MEMFD_AUTO, root, "", "");
+    cmd = get_qemu_cmd(s, 2, TEST_MEMFD_AUTO, "", "");
     from = qtest_start(cmd);
     g_free(cmd);
 
@@ -738,7 +753,7 @@ static void test_migrate(void)
     g_assert_cmpint(size, ==, (2 * 1024 * 1024) / (VHOST_LOG_PAGE * 8));
 
     tmp = g_strdup_printf(" -incoming %s", uri);
-    cmd = get_qemu_cmd(dest, 2, TEST_MEMFD_AUTO, root, "", tmp);
+    cmd = get_qemu_cmd(dest, 2, TEST_MEMFD_AUTO, "", tmp);
     g_free(tmp);
     to = qtest_init(cmd);
     g_free(cmd);
@@ -848,7 +863,7 @@ static void test_reconnect_subprocess(void)
     char *cmd;
 
     g_thread_new("connect", connect_thread, s);
-    cmd = get_qemu_cmd(s, 2, TEST_MEMFD_AUTO, root, ",server", "");
+    cmd = get_qemu_cmd(s, 2, TEST_MEMFD_AUTO, ",server", "");
     qtest_start(cmd);
     g_free(cmd);
 
@@ -890,7 +905,7 @@ static void test_connect_fail_subprocess(void)
 
     s->test_fail = true;
     g_thread_new("connect", connect_thread, s);
-    cmd = get_qemu_cmd(s, 2, TEST_MEMFD_AUTO, root, ",server", "");
+    cmd = get_qemu_cmd(s, 2, TEST_MEMFD_AUTO, ",server", "");
     qtest_start(cmd);
     g_free(cmd);
 
@@ -923,7 +938,7 @@ static void test_flags_mismatch_subprocess(void)
 
     s->test_flags = TEST_FLAGS_DISCONNECT;
     g_thread_new("connect", connect_thread, s);
-    cmd = get_qemu_cmd(s, 2, TEST_MEMFD_AUTO, root, ",server", "");
+    cmd = get_qemu_cmd(s, 2, TEST_MEMFD_AUTO, ",server", "");
     qtest_start(cmd);
     g_free(cmd);
 
@@ -971,7 +986,7 @@ static void test_multiqueue(void)
         cmd = g_strdup_printf(
             QEMU_CMD_MEM QEMU_CMD_CHR QEMU_CMD_NETDEV ",queues=%d "
             "-device virtio-net-pci,netdev=net0,mq=on,vectors=%d",
-            512, 512, root, s->chr_name,
+            512, 512, s->mem_path, s->chr_name,
             s->socket_path, "", s->chr_name,
             s->queues, s->queues * 2 + 2);
     }
@@ -991,22 +1006,11 @@ static void test_multiqueue(void)
 
 int main(int argc, char **argv)
 {
-    int ret;
-    char template[] = "/tmp/vhost-test-XXXXXX";
-
     g_test_init(&argc, &argv, NULL);
 
     module_call_init(MODULE_INIT_QOM);
     qemu_add_opts(&qemu_chardev_opts);
 
-    tmpfs = mkdtemp(template);
-    if (!tmpfs) {
-        g_test_message("mkdtemp on path (%s): %s\n", template, strerror(errno));
-    }
-    g_assert(tmpfs);
-
-    root = init_hugepagefs() ? : tmpfs;
-
     if (qemu_memfd_check(0)) {
         qtest_add_data_func("/vhost-user/read-guest-mem/memfd",
                             GINT_TO_POINTER(TEST_MEMFD_YES),
@@ -1030,16 +1034,5 @@ int main(int argc, char **argv)
         qtest_add_func("/vhost-user/flags-mismatch", test_flags_mismatch);
     }
 
-    ret = g_test_run();
-
-    /* cleanup */
-
-    ret = rmdir(tmpfs);
-    if (ret != 0) {
-        g_test_message("unable to rmdir: path (%s): %s\n",
-                       tmpfs, strerror(errno));
-    }
-    g_assert_cmpint(ret, ==, 0);
-
-    return ret;
+    return g_test_run();
 }
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PULL 00/50] Misc patches for 2019-01-21
  2019-01-25 17:17 [Qemu-devel] [PULL 00/50] Misc patches for 2019-01-21 Paolo Bonzini
  2019-01-25 17:17 ` [Qemu-devel] [PULL 14/50] vhost-user-test: create a main loop per TestServer Paolo Bonzini
  2019-01-25 17:17 ` [Qemu-devel] [PULL 16/50] vhost-user-test: create a temporary directory " Paolo Bonzini
@ 2019-01-28 12:53 ` Peter Maydell
  2 siblings, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2019-01-28 12:53 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: QEMU Developers

On Fri, 25 Jan 2019 at 17:19, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 8b7a3e1e5434b55d7710071b00af97c7086cab7a:
>
>   Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging (2019-01-24 15:04:47 +0000)
>
> are available in the git repository at:
>
>
>   git://github.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to 357c846440e9423b11f815cbf32441651e4f4835:
>
>   docker: adjust Xen repository for CentOS 7 (2019-01-25 14:38:08 +0100)
>
> ----------------------------------------------------------------
> * cpu-exec fixes (Emilio, Laurent)
> * high address load for linuxboot (Zhijian)
> * PVH support (Liam, Stefano)
> * Linux header update (Paolo)
> * enable vhost-net for all targets that have virtio-net (Paolo)
> * vhost-user-test cleanups (Paolo)
> * misc i386 changes (Paolo, Robert)
> * hexloader-test change to avoid O_NONBLOCK on stdin (Peter)
> * configure tweak for openpty (Thomas)
> * elf2dmp port to Windows (Viktor)

"make check" seems to hang for me on all my build platforms.
The culprit seems to be vhost-user-test.

Backtrace of all the threads in the QEMU binary:
Thread 2 (Thread 0x7f38cdfea700 (LWP 8638)):
#0  0x00007f38e6aba839 in syscall ()
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x0000563e422f36ae in qemu_futex_wait (f=0x563e42d087d8
<rcu_call_ready_event>, val=4294967295)
    at /home/petmay01/linaro/qemu-for-merges/include/qemu/futex.h:29
#2  0x0000563e422f3875 in qemu_event_wait (ev=0x563e42d087d8
<rcu_call_ready_event>) at
/home/petmay01/linaro/qemu-for-merges/util/qemu-thread-posix.c:442
#3  0x0000563e4230caa8 in call_rcu_thread (opaque=0x0)
    at /home/petmay01/linaro/qemu-for-merges/util/rcu.c:261
#4  0x0000563e422f3a28 in qemu_thread_start (args=0x563e42f59db0)
    at /home/petmay01/linaro/qemu-for-merges/util/qemu-thread-posix.c:502
#5  0x00007f38e6d976db in start_thread (arg=0x7f38cdfea700)
    at pthread_create.c:463
#6  0x00007f38e6ac088f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f38ef3f0440 (LWP 8636)):
#0  0x00007f38e6da2567 in __libc_recvmsg (fd=10, msg=0x7ffc1b311ff0,
flags=1073741824) at ../sysdeps/unix/sysv/linux/recvmsg.c:28
#1  0x0000563e42271b30 in qio_channel_socket_readv
(ioc=0x563e42f57e40, iov=0x7ffc1b312140, niov=1, fds=0x7ffc1b312120,
nfds=0x7ffc1b312128, errp=0x0)
    at /home/petmay01/linaro/qemu-for-merges/io/channel-socket.c:484
#2  0x0000563e4226ce13 in qio_channel_readv_full (ioc=0x563e42f57e40,
iov=0x7ffc1b312140, niov=1, fds=0x7ffc1b312120, nfds=0x7ffc1b312128,
errp=0x0)
    at /home/petmay01/linaro/qemu-for-merges/io/channel.c:65
#3  0x0000563e42258c0c in tcp_chr_recv (chr=0x563e43016000,
buf=0x7ffc1b312250 "\001", len=12)
    at /home/petmay01/linaro/qemu-for-merges/chardev/char-socket.c:306
#4  0x0000563e42259540 in tcp_chr_sync_read (chr=0x563e43016000,
buf=0x7ffc1b312250 "\001", len=12)
    at /home/petmay01/linaro/qemu-for-merges/chardev/char-socket.c:516
#5  0x0000563e42253742 in qemu_chr_fe_read_all (be=0x563e430e5b50,
buf=0x7ffc1b312250 "\001", len=12)
    at /home/petmay01/linaro/qemu-for-merges/chardev/char-fe.c:72
#6  0x0000563e41deba0d in vhost_user_read (dev=0x563e430e5bc0,
msg=0x7ffc1b312250) at
/home/petmay01/linaro/qemu-for-merges/hw/virtio/vhost-user.c:224
#7  0x0000563e41ded2fe in vhost_user_get_u64 (dev=0x563e430e5bc0,
request=1, u64=0x7ffc1b312530)
    at /home/petmay01/linaro/qemu-for-merges/hw/virtio/vhost-user.c:817
#8  0x0000563e41ded3b3 in vhost_user_get_features (dev=0x563e430e5bc0,
features=0x7ffc1b312530)
    at /home/petmay01/linaro/qemu-for-merges/hw/virtio/vhost-user.c:839
#9  0x0000563e41dee954 in vhost_user_backend_init (dev=0x563e430e5bc0,
opaque=0x563e430a59c0)
    at /home/petmay01/linaro/qemu-for-merges/hw/virtio/vhost-user.c:1352
#10 0x0000563e41de928b in vhost_dev_init (hdev=0x563e430e5bc0,
opaque=0x563e430a59c0, backend_type=VHOST_BACKEND_TYPE_USER,
busyloop_timeout=0)
    at /home/petmay01/linaro/qemu-for-merges/hw/virtio/vhost.c:1193
#11 0x0000563e4202bcfe in vhost_net_init (options=0x7ffc1b312650)
    at /home/petmay01/linaro/qemu-for-merges/hw/net/vhost_net.c:174
#12 0x0000563e42132e7e in vhost_user_start (queues=1,
ncs=0x7ffc1b3126e0, be=0x563e430a59c0) at
/home/petmay01/linaro/qemu-for-merges/net/vhost-user.c:88
#13 0x0000563e421334b4 in net_vhost_user_event (opaque=0x563e430a3f70, event=1)
    at /home/petmay01/linaro/qemu-for-merges/net/vhost-user.c:268
#14 0x0000563e4225034d in chr_be_event (s=0x563e43016000, event=1)
    at /home/petmay01/linaro/qemu-for-merges/chardev/char.c:57
#15 0x0000563e422503cc in qemu_chr_be_event (s=0x563e43016000, event=1)
    at /home/petmay01/linaro/qemu-for-merges/chardev/char.c:72
#16 0x0000563e42254060 in qemu_chr_fe_set_handlers (b=0x563e430e5b50,
fd_can_read=0x0, fd_read=0x0, fd_event=0x563e42133392
<net_vhost_user_event>, be_change=0x0, opaque=0x563e430a3f70,
context=0x0, set_open=true)
    at /home/petmay01/linaro/qemu-for-merges/chardev/char-fe.c:289
#17 0x0000563e42133840 in net_vhost_user_init (peer=0x0,
device=0x563e424c3735 "vhost_user", name=0x563e430a4000 "net0",
chr=0x563e43016000, queues=1)
    at /home/petmay01/linaro/qemu-for-merges/net/vhost-user.c:344
#18 0x0000563e42133c00 in net_init_vhost_user (netdev=0x563e430a57e0,
name=0x563e430a4000 "net0", peer=0x0, errp=0x7ffc1b314a90)
    at /home/petmay01/linaro/qemu-for-merges/net/vhost-user.c:442
#19 0x0000563e4212a754 in net_client_init1 (object=0x563e430a57e0,
is_netdev=true, errp=0x7ffc1b314a90) at
/home/petmay01/linaro/qemu-for-merges/net/net.c:1060
#20 0x0000563e4212ab53 in net_client_init (opts=0x563e42fe2080,
is_netdev=true, errp=0x7ffc1b314c38) at
/home/petmay01/linaro/qemu-for-merges/net/net.c:1154
#21 0x0000563e4212b793 in net_init_netdev (dummy=0x0,
opts=0x563e42fe2080, errp=0x7ffc1b314c38) at
/home/petmay01/linaro/qemu-for-merges/net/net.c:1491
#22 0x0000563e42307d2d in qemu_opts_foreach (list=0x563e42c9b4e0
<qemu_netdev_opts>, func=0x563e4212b76a <net_init_netdev>, opaque=0x0,
errp=0x7ffc1b314c38)
    at /home/petmay01/linaro/qemu-for-merges/util/qemu-option.c:1171
#23 0x0000563e4212ba91 in net_init_clients (errp=0x7ffc1b314c38)
    at /home/petmay01/linaro/qemu-for-merges/net/net.c:1564
#24 0x0000563e41ec5089 in main (argc=25, argv=0x7ffc1b314ea8,
envp=0x7ffc1b314f78) at
/home/petmay01/linaro/qemu-for-merges/vl.c:4423

Ditto, in the vhost-user-test binary:

Thread 4 (Thread 0x7f4510899700 (LWP 8635)):
#0  0x00007f45131ddbf9 in __GI___poll (fds=0x7f4508000b20, nfds=1, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f4514681539 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f45146818d2 in g_main_loop_run ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00005651cb943629 in thread_function (data=0x5651cd1788c0)
    at /home/petmay01/linaro/qemu-for-merges/tests/vhost-user-test.c:315
#4  0x00007f45146a9105 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f45134c16db in start_thread (arg=0x7f4510899700)
    at pthread_create.c:463
#6  0x00007f45131ea88f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f451109a700 (LWP 8634)):
#0  0x00007f45131ddbf9 in __GI___poll (fds=0x7f4504000b40, nfds=1, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f4514681539 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f45146818d2 in g_main_loop_run ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00005651cb943629 in thread_function (data=0x5651cd1785c0)
    at /home/petmay01/linaro/qemu-for-merges/tests/vhost-user-test.c:315
#4  0x00007f45146a9105 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f45134c16db in start_thread (arg=0x7f451109a700)
    at pthread_create.c:463
#6  0x00007f45131ea88f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f451189b700 (LWP 8633)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00005651cb9a73a0 in qemu_futex_wait (
    f=0x5651cbc16138 <rcu_call_ready_event>, val=4294967295)
    at /home/petmay01/linaro/qemu-for-merges/include/qemu/futex.h:29
#2  0x00005651cb9a7567 in qemu_event_wait (
    ev=0x5651cbc16138 <rcu_call_ready_event>)
    at /home/petmay01/linaro/qemu-for-merges/util/qemu-thread-posix.c:442
#3  0x00005651cb9cbdc8 in call_rcu_thread (opaque=0x0)
    at /home/petmay01/linaro/qemu-for-merges/util/rcu.c:261
#4  0x00005651cb9a771a in qemu_thread_start (args=0x5651cd18d860)
    at /home/petmay01/linaro/qemu-for-merges/util/qemu-thread-posix.c:502
#5  0x00007f45134c16db in start_thread (arg=0x7f451189b700)
    at pthread_create.c:463
#6  0x00007f45131ea88f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f4514d39900 (LWP 8631)):
#0  0x00007f45134cb384 in __libc_read (fd=10, buf=0x7fff4cbfce40, nbytes=1024)
    at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00005651cb982957 in qtest_recv_line (s=0x5651cd1a6180)
    at /home/petmay01/linaro/qemu-for-merges/tests/libqtest.c:379
#2  0x00005651cb982ac8 in qtest_rsp (s=0x5651cd1a6180, expected_args=1)
    at /home/petmay01/linaro/qemu-for-merges/tests/libqtest.c:406
#3  0x00005651cb982e3c in qtest_query_target_endianness (s=0x5651cd1a6180)
    at /home/petmay01/linaro/qemu-for-merges/tests/libqtest.c:452
#4  0x00005651cb9824ad in qtest_init_without_qmp_handshake (
    extra_args=0x5651cd1a6040 " -m 2 -object
memory-backend-memfd,id=mem,size=2M, -numa node,memdev=mem -chardev
socket,id=chr-src,path=/tmp/vhost-test-8YSOZx/src.sock -netdev
vhost-user,id=net0,chardev=chr-src,vhostforce -device v"...)
    at /home/petmay01/linaro/qemu-for-merges/tests/libqtest.c:279
#5  0x00005651cb9824dc in qtest_init (
    extra_args=0x5651cd1a6040 " -m 2 -object
memory-backend-memfd,id=mem,size=2M, -numa node,memdev=mem -chardev
socket,id=chr-src,path=/tmp/vhost-test-8YSOZx/src.sock -netdev
vhost-user,id=net0,chardev=chr-src,vhostforce -device v"...)
    at /home/petmay01/linaro/qemu-for-merges/tests/libqtest.c:286
#6  0x00005651cb942d42 in qtest_start (
    args=0x5651cd1a6040 " -m 2 -object
memory-backend-memfd,id=mem,size=2M, -numa node,memdev=mem -chardev
socket,id=chr-src,path=/tmp/vhost-test-8YSOZx/src.sock -netdev
vhost-user,id=net0,chardev=chr-src,vhostforce -device v"...)
    at /home/petmay01/linaro/qemu-for-merges/tests/libqtest.h:579
#7  0x00005651cb94491c in test_migrate ()
    at /home/petmay01/linaro/qemu-for-merges/tests/vhost-user-test.c:744
#8  0x00007f45146a7eba in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007f45146a7deb in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f45146a7deb in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f45146a8092 in g_test_run_suite ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007f45146a80b1 in g_test_run ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00005651cb94567c in main (argc=1, argv=0x7fff4cbfd838)
    at /home/petmay01/linaro/qemu-for-merges/tests/vhost-user-test.c:1037

thanks
-- PMM

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-01-28 12:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-25 17:17 [Qemu-devel] [PULL 00/50] Misc patches for 2019-01-21 Paolo Bonzini
2019-01-25 17:17 ` [Qemu-devel] [PULL 14/50] vhost-user-test: create a main loop per TestServer Paolo Bonzini
2019-01-25 17:17 ` [Qemu-devel] [PULL 16/50] vhost-user-test: create a temporary directory " Paolo Bonzini
2019-01-28 12:53 ` [Qemu-devel] [PULL 00/50] Misc patches for 2019-01-21 Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).