From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:51049) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gm1wT-0008WJ-39 for qemu-devel@nongnu.org; Tue, 22 Jan 2019 14:42:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gm1wS-0001a2-6Y for qemu-devel@nongnu.org; Tue, 22 Jan 2019 14:42:37 -0500 From: Alberto Garcia Date: Tue, 22 Jan 2019 17:53:20 +0200 Message-Id: Subject: [Qemu-devel] [PATCH 0/3] iothread-related fixes for virtio-scsi List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Alberto Garcia , qemu-block@nongnu.org, Kevin Wolf , Max Reitz , Stefan Hajnoczi , Paolo Bonzini Hi, here are three patches with iothread-related fixes for virtio-scsi, with their test cases. This series fixes the following bugs: https://bugzilla.redhat.com/show_bug.cgi?id=1656276 https://bugzilla.redhat.com/show_bug.cgi?id=1662508 I also wanted to do prepare a similar one for virtio-blk but I'm unsure about how to proceed, because I'm unable to detect during realize() that the blockdev is using a different iothread. This crashes QEMU: { "execute": "qmp_capabilities" } { "execute": "blockdev-add", "arguments": {"driver": "null-co", "node-name": "hd0", "read-only": true}} { "execute": "object-add", "arguments": {"qom-type": "iothread", "id": "iothread0"}} { "execute": "object-add", "arguments": {"qom-type": "iothread", "id": "iothread1"}} { "execute": "device_add", "arguments": {"id": "virtio-blk0", "driver": "virtio-blk", "iothread": "iothread0", "drive": "hd0"}} { "execute": "system_reset"} (wait for the events) { "execute": "device_add", "arguments": {"id": "virtio-blk1", "driver": "virtio-blk", "iothread": "iothread1", "drive": "hd0"}} Regards, Berto Alberto Garcia (3): virtio-scsi: Move BlockBackend back to the main AioContext on unplug scsi-disk: Acquire the AioContext in scsi_*_realize() virtio-scsi: Forbid devices with different iothreads sharing a blockdev hw/scsi/scsi-disk.c | 23 ++++++-- hw/scsi/virtio-scsi.c | 13 +++++ tests/qemu-iotests/240 | 129 +++++++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/240.out | 54 +++++++++++++++++++ tests/qemu-iotests/group | 1 + 5 files changed, 217 insertions(+), 3 deletions(-) create mode 100755 tests/qemu-iotests/240 create mode 100644 tests/qemu-iotests/240.out -- 2.11.0