From patchwork Tue Oct 6 12:38:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Levitsky X-Patchwork-Id: 303606 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id ADF07C4363D for ; Tue, 6 Oct 2020 12:44:37 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1AE7C206F7 for ; Tue, 6 Oct 2020 12:44:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="M7LdnBG8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1AE7C206F7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:55888 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kPmKa-0006GM-2U for qemu-devel@archiver.kernel.org; Tue, 06 Oct 2020 08:44:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55910) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kPmFX-0000z0-Mo for qemu-devel@nongnu.org; Tue, 06 Oct 2020 08:39:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:54162) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kPmFV-0007tB-LZ for qemu-devel@nongnu.org; Tue, 06 Oct 2020 08:39:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1601987960; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ugdjlsjWI4cT4tMAuot/nXJB2V0jpNqtIt9fyd+uGBI=; b=M7LdnBG8P9tCvRKROlXPBVPvlWer126LCBq6lnaiYJd4YJxzdRpr5XIUOX8+zdHywZv5Fk eiR4vYxDFvpHc02ZrY10sCVHJjVTzZFn6/bS79JqrfPh9K6pKNimEpe+8fSufW6t3WsF4m Qboq6o39DKcO0fuaK3VoEOaJFDHb2HE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-326-8uqlmaL1P2Kq0HqL0CqJBA-1; Tue, 06 Oct 2020 08:39:13 -0400 X-MC-Unique: 8uqlmaL1P2Kq0HqL0CqJBA-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A0A8D8030C0; Tue, 6 Oct 2020 12:39:12 +0000 (UTC) Received: from localhost.localdomain (unknown [10.35.206.84]) by smtp.corp.redhat.com (Postfix) with ESMTP id E3E895579B; Tue, 6 Oct 2020 12:39:05 +0000 (UTC) From: Maxim Levitsky To: qemu-devel@nongnu.org Subject: [PATCH v7 00/13] Fix scsi devices plug/unplug races w.r.t virtio-scsi iothread Date: Tue, 6 Oct 2020 15:38:51 +0300 Message-Id: <20201006123904.610658-1-mlevitsk@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mlevitsk@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=63.128.21.124; envelope-from=mlevitsk@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/06 01:55:55 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.733, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , Laurent Vivier , Thomas Huth , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Eduardo Habkost , qemu-block@nongnu.org, "Michael S. Tsirkin" , Jason Wang , Markus Armbruster , =?utf-8?q?Philippe_Mathieu-Dau?= =?utf-8?b?ZMOp?= , Paolo Bonzini , Maxim Levitsky , John Snow , Stefan Berger Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This is the next version of the patches. In this version I implemented Paulo's suggestion of fixing the qtests to cope with out of order events. This resulted in small but nice refactoring. Besides that, the only other change from V6 is that I dropped Paulo's fix to qtest_qmp_device_del since it is fixed now by my qtest patches. The iotest 67 still fails with this, something that Paulo is looking to fix before merging this. Best regards, Maxim Levitsky Maxim Levitsky (10): qtest: rename qtest_qmp_receive to qtest_qmp_receive_dict qtest: Reintroduce qtest_qmp_receive qtest: switch users back to qtest_qmp_receive scsi/scsi_bus: switch search direction in scsi_device_find device_core: use drain_call_rcu in in qmp_device_add device-core: use RCU for list of children of a bus device-core: use atomic_set on .realized property scsi/scsi_bus: Add scsi_device_get virtio-scsi: use scsi_device_get scsi/scsi_bus: fix races in REPORT LUNS Paolo Bonzini (3): qdev: add "check if address free" callback for buses scsi: switch to bus->check_address scsi/scsi-bus: scsi_device_find: don't return unrealized devices hw/core/bus.c | 28 ++-- hw/core/qdev.c | 73 ++++++--- hw/net/virtio-net.c | 2 +- hw/scsi/scsi-bus.c | 262 ++++++++++++++++++++------------ hw/scsi/virtio-scsi.c | 27 ++-- hw/sd/core.c | 3 +- include/hw/qdev-core.h | 24 ++- include/hw/scsi/scsi.h | 1 + qdev-monitor.c | 12 ++ tests/qtest/drive_del-test.c | 9 +- tests/qtest/libqos/libqtest.h | 34 +++-- tests/qtest/libqtest.c | 110 +++++++------- tests/qtest/migration-helpers.c | 25 ++- tests/qtest/pvpanic-test.c | 4 +- tests/qtest/qmp-test.c | 18 +-- tests/qtest/tpm-util.c | 8 +- 16 files changed, 411 insertions(+), 229 deletions(-) -- 2.26.2