qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 5f8172: ide/atapi: make PIO read requests asy


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 5f8172: ide/atapi: make PIO read requests async
Date: Wed, 18 Nov 2015 05:00:07 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 5f81724d80a1492c73d329242663962139db739b
      
https://github.com/qemu/qemu/commit/5f81724d80a1492c73d329242663962139db739b
  Author: Peter Lieven <address@hidden>
  Date:   2015-11-17 (Tue, 17 Nov 2015)

  Changed paths:
    M hw/ide/atapi.c

  Log Message:
  -----------
  ide/atapi: make PIO read requests async

PIO read requests on the ATAPI interface used to be sync blk requests.
This has two significant drawbacks. First the main loop hangs util an
I/O request is completed and secondly if the I/O request does not
complete (e.g. due to an unresponsive storage) Qemu hangs completely.

Note: Due to possible race conditions requests during an ongoing
elementary transfer are still sync.

Signed-off-by: Peter Lieven <address@hidden>
Reviewed-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: John Snow <address@hidden>


  Commit: ca78ecfa72f311cd647b12a41d93e1ce54f18e66
      
https://github.com/qemu/qemu/commit/ca78ecfa72f311cd647b12a41d93e1ce54f18e66
  Author: Peter Lieven <address@hidden>
  Date:   2015-11-17 (Tue, 17 Nov 2015)

  Changed paths:
    M block/block-backend.c
    M include/sysemu/block-backend.h

  Log Message:
  -----------
  block: add blk_abort_aio_request

Signed-off-by: Peter Lieven <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: John Snow <address@hidden>


  Commit: 1d8c11d631545ee43aff16b0763aff7181b61f20
      
https://github.com/qemu/qemu/commit/1d8c11d631545ee43aff16b0763aff7181b61f20
  Author: Peter Lieven <address@hidden>
  Date:   2015-11-17 (Tue, 17 Nov 2015)

  Changed paths:
    M hw/ide/core.c
    M hw/ide/internal.h

  Log Message:
  -----------
  ide: add support for IDEBufferedRequest

this patch adds a new aio readv compatible function which copies
all data through a bounce buffer. These buffered requests can be
flagged as orphaned which means that their original callback has
already been invoked and the request has just not been completed
by the backend storage. The bounce buffer guarantees that guest
memory corruption is avoided when such a orphaned request is
completed by the backend at a later stage.

This trick only works for read requests as a write request completed
at a later stage might corrupt data as there is no way to control
if and what data has already been written to the storage.

Signed-off-by: Peter Lieven <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: John Snow <address@hidden>


  Commit: 7cda62087c0baf064486f3d803184c2c3b35c04a
      
https://github.com/qemu/qemu/commit/7cda62087c0baf064486f3d803184c2c3b35c04a
  Author: Peter Lieven <address@hidden>
  Date:   2015-11-17 (Tue, 17 Nov 2015)

  Changed paths:
    M hw/ide/pci.c

  Log Message:
  -----------
  ide: orphan all buffered requests on DMA cancel

If the guests canceles a DMA request we can prematurely
invoke all callbacks of buffered requests and flag all them
as orphaned. Ideally this avoids the need for draining all
requests. For CDROM devices this works in 100% of all cases.

Signed-off-by: Peter Lieven <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: John Snow <address@hidden>


  Commit: 02506b20b6609ed4ecb09de9900ba9f1dd20b205
      
https://github.com/qemu/qemu/commit/02506b20b6609ed4ecb09de9900ba9f1dd20b205
  Author: Peter Lieven <address@hidden>
  Date:   2015-11-17 (Tue, 17 Nov 2015)

  Changed paths:
    M hw/ide/atapi.c

  Log Message:
  -----------
  ide: enable buffered requests for ATAPI devices

Signed-off-by: Peter Lieven <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: John Snow <address@hidden>


  Commit: d66a8fa83b00b3b3d631a0e28cdce8c9b5698822
      
https://github.com/qemu/qemu/commit/d66a8fa83b00b3b3d631a0e28cdce8c9b5698822
  Author: Peter Lieven <address@hidden>
  Date:   2015-11-17 (Tue, 17 Nov 2015)

  Changed paths:
    M hw/ide/core.c

  Log Message:
  -----------
  ide: enable buffered requests for PIO read requests

Signed-off-by: Peter Lieven <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: John Snow <address@hidden>


  Commit: 6b79f253a37708f21e8d1cd2831b8d8c03f58989
      
https://github.com/qemu/qemu/commit/6b79f253a37708f21e8d1cd2831b8d8c03f58989
  Author: Peter Maydell <address@hidden>
  Date:   2015-11-18 (Wed, 18 Nov 2015)

  Changed paths:
    M block/block-backend.c
    M hw/ide/atapi.c
    M hw/ide/core.c
    M hw/ide/internal.h
    M hw/ide/pci.c
    M include/sysemu/block-backend.h

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

# gpg: Signature made Tue 17 Nov 2015 20:06:58 GMT using RSA key ID AAFC390E
# gpg: Good signature from "John Snow (John Huston) <address@hidden>"

* remotes/jnsnow/tags/ide-pull-request:
  ide: enable buffered requests for PIO read requests
  ide: enable buffered requests for ATAPI devices
  ide: orphan all buffered requests on DMA cancel
  ide: add support for IDEBufferedRequest
  block: add blk_abort_aio_request
  ide/atapi: make PIO read requests async

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/55db5eeeb7aa...6b79f253a377

reply via email to

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