qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] b4e44c: io_uring: retry io_uring_submit() if


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] b4e44c: io_uring: retry io_uring_submit() if it fails with...
Date: Fri, 05 Jun 2020 06:00:32 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: b4e44c9944e19c8bfc7fbf0c4a6a5e48f3ba3dc0
      
https://github.com/qemu/qemu/commit/b4e44c9944e19c8bfc7fbf0c4a6a5e48f3ba3dc0
  Author: Stefano Garzarella <sgarzare@redhat.com>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M block/io_uring.c

  Log Message:
  -----------
  io_uring: retry io_uring_submit() if it fails with errno=EINTR

As recently documented [1], io_uring_enter(2) syscall can return an
error (errno=EINTR) if the operation was interrupted by a delivery
of a signal before it could complete.

This should happen when IORING_ENTER_GETEVENTS flag is used, for
example during io_uring_submit_and_wait() or during io_uring_submit()
when IORING_SETUP_IOPOLL is enabled.

We shouldn't have this problem for now, but it's better to prevent it.

[1] 
https://github.com/axboe/liburing/commit/344355ec6619de8f4e64584c9736530b5346e4f4

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-id: 20200519133041.112138-1-sgarzare@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 769335ecb1e8fd9c4317bdff7cfd0f84af7ab2f9
      
https://github.com/qemu/qemu/commit/769335ecb1e8fd9c4317bdff7cfd0f84af7ab2f9
  Author: Stefano Garzarella <sgarzare@redhat.com>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M block/io_uring.c

  Log Message:
  -----------
  io_uring: use io_uring_cq_ready() to check for ready cqes

In qemu_luring_poll_cb() we are not using the cqe peeked from the
CQ ring. We are using io_uring_peek_cqe() only to see if there
are cqes ready, so we can replace it with io_uring_cq_ready().

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-id: 20200519134942.118178-1-sgarzare@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 7a071a96d3ef48095892c1d1075c0181c8940058
      
https://github.com/qemu/qemu/commit/7a071a96d3ef48095892c1d1075c0181c8940058
  Author: Alexander Bulekov <alxndr@bu.edu>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M include/sysemu/sysemu.h
    M softmmu/vl.c
    M tests/qtest/fuzz/fuzz.c

  Log Message:
  -----------
  fuzz: add datadir for oss-fuzz compatability

This allows us to keep pc-bios in executable_dir/pc-bios, rather than
executable_dir/../pc-bios, which is incompatible with oss-fuzz' file
structure.

Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Message-id: 20200512030133.29896-2-alxndr@bu.edu
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 6851803a467238ed39408e35b5f2063c1370b156
      
https://github.com/qemu/qemu/commit/6851803a467238ed39408e35b5f2063c1370b156
  Author: Alexander Bulekov <alxndr@bu.edu>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M tests/qtest/fuzz/i440fx_fuzz.c

  Log Message:
  -----------
  fuzz: fix typo in i440fx-qtest-reboot arguments

Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20200512030133.29896-3-alxndr@bu.edu
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 3b113229c5d5477d34f54fce0a3e8781090c93b6
      
https://github.com/qemu/qemu/commit/3b113229c5d5477d34f54fce0a3e8781090c93b6
  Author: Alexander Bulekov <alxndr@bu.edu>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M tests/qtest/fuzz/fork_fuzz.ld

  Log Message:
  -----------
  fuzz: add mangled object name to linker script

Previously, we relied on "FuzzerTracePC*(.bss*)" to place libfuzzer's
fuzzer::TPC object into our contiguous shared-memory region. This does
not work for some libfuzzer builds, so this addition identifies the
region by its mangled name: *(.bss._ZN6fuzzer3TPCE);

Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Message-id: 20200512030133.29896-4-alxndr@bu.edu
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: dfd5ddb5680511a2aa5576d8ed01ff214cc0fc03
      
https://github.com/qemu/qemu/commit/dfd5ddb5680511a2aa5576d8ed01ff214cc0fc03
  Author: Alexander Bulekov <alxndr@bu.edu>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M tests/qtest/fuzz/i440fx_fuzz.c
    M tests/qtest/fuzz/virtio_net_fuzz.c
    M tests/qtest/fuzz/virtio_scsi_fuzz.c

  Log Message:
  -----------
  fuzz: run the main-loop in fork-server process

Without this, the time since the last main-loop keeps increasing, as the
fuzzer runs. The forked children need to handle all the "past-due"
timers, slowing them down, over time. With this change, the
parent/fork-server process runs the main-loop, while waiting on the
child, ensuring that the timer events do not pile up, over time.

Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Message-id: 20200512030133.29896-5-alxndr@bu.edu
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 4dfe59d187d9b218efca8d89c0c2fac1298d8712
      
https://github.com/qemu/qemu/commit/4dfe59d187d9b218efca8d89c0c2fac1298d8712
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M include/exec/memory.h
    M memory.c
    M target/arm/helper.c

  Log Message:
  -----------
  memory: Rename memory_region_do_writeback -> memory_region_writeback

We usually use '_do_' for internal functions. Rename
memory_region_do_writeback() as memory_region_writeback().

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20200508062456.23344-2-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 9ecc996a3d39bdbf64a488936f97a9496b74ebd8
      
https://github.com/qemu/qemu/commit/9ecc996a3d39bdbf64a488936f97a9496b74ebd8
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M include/exec/memory.h
    M memory.c

  Log Message:
  -----------
  memory: Extract memory_region_msync() from memory_region_writeback()

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20200508062456.23344-3-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: bc2a2364b8050632a3b3de07f30d88b7f0734845
      
https://github.com/qemu/qemu/commit/bc2a2364b8050632a3b3de07f30d88b7f0734845
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M hw/block/Makefile.objs
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block: Let the NVMe emulated device be target-agnostic

Now than the non-target specific memory_region_msync() function
is available, use it to make this device target-agnostic.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20200508062456.23344-4-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: ab7e41e6679224e5ad8da6d70ed7e645a5a482ab
      
https://github.com/qemu/qemu/commit/ab7e41e6679224e5ad8da6d70ed7e645a5a482ab
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M exec.c
    M include/exec/ram_addr.h
    M memory.c

  Log Message:
  -----------
  exec: Rename qemu_ram_writeback() as qemu_ram_msync()

Rename qemu_ram_writeback() as qemu_ram_msync() to better
match what it does.

Suggested-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20200508062456.23344-5-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 7d2410cea154bf915fb30179ebda3b17ac36e70e
      
https://github.com/qemu/qemu/commit/7d2410cea154bf915fb30179ebda3b17ac36e70e
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Factor out bdrv_run_co()

We have a few bdrv_*() functions that can either spawn a new coroutine
and wait for it with BDRV_POLL_WHILE() or use a fastpath if they are
alreeady running in a coroutine. All of them duplicate basically the
same code.

Factor the common code into a new function bdrv_run_co().

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20200520144901.16589-1-vsementsov@virtuozzo.com
   [Factor out bdrv_run_co_entry too]
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: b489f015fbe2bd59d409211f79ea0a8ac5d2a66d
      
https://github.com/qemu/qemu/commit/b489f015fbe2bd59d409211f79ea0a8ac5d2a66d
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-06-05 (Fri, 05 Jun 2020)

  Changed paths:
    M block/io.c
    M block/io_uring.c
    M exec.c
    M hw/block/Makefile.objs
    M hw/block/nvme.c
    M include/exec/memory.h
    M include/exec/ram_addr.h
    M include/sysemu/sysemu.h
    M memory.c
    M softmmu/vl.c
    M target/arm/helper.c
    M tests/qtest/fuzz/fork_fuzz.ld
    M tests/qtest/fuzz/fuzz.c
    M tests/qtest/fuzz/i440fx_fuzz.c
    M tests/qtest/fuzz/virtio_net_fuzz.c
    M tests/qtest/fuzz/virtio_scsi_fuzz.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into 
staging

Pull request

# gpg: Signature made Fri 05 Jun 2020 10:47:27 BST
# gpg:                using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" [full]
# gpg:                 aka "Stefan Hajnoczi <stefanha@gmail.com>" [full]
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* remotes/stefanha/tags/block-pull-request:
  block: Factor out bdrv_run_co()
  exec: Rename qemu_ram_writeback() as qemu_ram_msync()
  hw/block: Let the NVMe emulated device be target-agnostic
  memory: Extract memory_region_msync() from memory_region_writeback()
  memory: Rename memory_region_do_writeback -> memory_region_writeback
  fuzz: run the main-loop in fork-server process
  fuzz: add mangled object name to linker script
  fuzz: fix typo in i440fx-qtest-reboot arguments
  fuzz: add datadir for oss-fuzz compatability
  io_uring: use io_uring_cq_ready() to check for ready cqes
  io_uring: retry io_uring_submit() if it fails with errno=EINTR

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/66234fee9c2d...b489f015fbe2



reply via email to

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