From nobody Sun May 5 21:19:40 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1584278837; cv=none; d=zohomail.com; s=zohoarc; b=QgwmTxjvbj52pH5hpSLTLuiFZbQUpm/+7SQQ1w9MNx2ykhF4R+/7LpkCWSMMV2fln6rM2LkfHZosWp4kq9xOVOjowbY9nmL3ejpKB66HVfrD2meJHv7z7yROx/iZnnj7jclMLyF4wZdqeaWFI1klrMfQzUoXV1fsRUyTQXTH2YM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584278837; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=J6ZiGQ4x1tHeR62jp28UqNAh6TGJQMKqqCyEp5Ljjbk=; b=EQu3x3oSGik66L/4A4GmMRxH94Jdlvpys8EyLjDgupbiKm8GGsmJ/v9c7t9iM6ZN8ZDP0KMOgSSp1tzAumazKoEgHEZTNXI407SBAjym5a+phxBw7wAAdKSyEmuHg7cywTG50avcl7LgMjGcH7reWADfuhBMPTlbE8RsHVbR11s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584278837964995.5013704772736; Sun, 15 Mar 2020 06:27:17 -0700 (PDT) Received: from localhost ([::1]:53934 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDTIS-0007CK-Ud for importer@patchew.org; Sun, 15 Mar 2020 09:27:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44775) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDTFs-0006Lm-3r for qemu-devel@nongnu.org; Sun, 15 Mar 2020 09:24:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDTFq-0001nu-Tn for qemu-devel@nongnu.org; Sun, 15 Mar 2020 09:24:36 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:51520) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDTFq-0001ek-Kk for qemu-devel@nongnu.org; Sun, 15 Mar 2020 09:24:34 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 02FDN3mE185377; Sun, 15 Mar 2020 13:24:23 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2120.oracle.com with ESMTP id 2yrq7kk97h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 15 Mar 2020 13:24:23 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 02FDNYU7013733; Sun, 15 Mar 2020 13:24:23 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserp3020.oracle.com with ESMTP id 2ys926ew48-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 15 Mar 2020 13:24:23 +0000 Received: from abhmp0008.oracle.com (abhmp0008.oracle.com [141.146.116.14]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 02FDOLWt013734; Sun, 15 Mar 2020 13:24:21 GMT Received: from spark.ravello.local (/213.57.127.2) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 15 Mar 2020 06:24:21 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=J6ZiGQ4x1tHeR62jp28UqNAh6TGJQMKqqCyEp5Ljjbk=; b=Hgk9nf6XuuvalRPjHosUzg+s3JBwSs0T66NGFKN04wNDchen4JL3kkI3y2eMq4c/Qt/P ZMK+7SO8wORj67LuPT2fwT3PPUHQTxZDKGr7KjSypZF5x6fq/TPBrHWrvfgpRhFZz3ql vwunMeNNOZbW/NIybgWfCx8nccEWR7wMOeiVQIOP/y5w+Rmyg2fDrKE5dFNkknYVVC3f rXYXl1fgpA/iISVWjCbpeyV/xoCr25LvqTr5Jlso+XQMe1tWr0Wmigu3CyFK6Zxsdfnn EHRrwa6r9DuvbSQDXrtspeMIlQOW/YxuErG7sa4FSsnqx7UTb23HppFB85vZzmZIn3Tb Ww== From: Liran Alon To: qemu-devel@nongnu.org Subject: [PATCH] hw/scsi/vmw_pvscsi: Remove assertion for kick after reset Date: Sun, 15 Mar 2020 15:26:34 +0200 Message-Id: <20200315132634.113632-1-liran.alon@oracle.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9560 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 mlxscore=0 spamscore=0 bulkscore=0 adultscore=0 suspectscore=1 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003150074 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9560 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 suspectscore=1 adultscore=0 bulkscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1011 malwarescore=0 mlxscore=0 phishscore=0 impostorscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2003150074 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 141.146.126.78 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@euphon.net, pbonzini@redhat.com, dmitry.fleytman@gmail.com, liran.alon@oracle.com, elazar@vastdata.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Elazar Leibovich When running Ubuntu 3.13.0-65-generic guest, QEMU sometimes crashes during guest ACPI reset. It crashes on assert(s->rings_info_valid) in pvscsi_process_io(). Analyzing the crash revealed that it happens when userspace issues a sync during a reboot syscall. Below are backtraces we gathered from the guests. Guest backtrace when issuing PVSCSI_CMD_ADAPTER_RESET: pci_device_shutdown device_shutdown init_pid_ns init_pid_ns kernel_power_off SYSC_reboot Guest backtrace when issuing PVSCSI_REG_OFFSET_KICK_RW_IO: scsi_done scsi_dispatch_cmd blk_add_timer scsi_request_fn elv_rb_add __blk_run_queue queue_unplugged blk_flush_plug_list blk_finish_plug ext4_writepages set_next_entity do_writepages __filemap_fdatawrite_range filemap_write_and_wait_range ext4_sync_file ext4_sync_file do_fsync sys_fsync Since QEMU pvscsi should imitate VMware pvscsi device emulation, we decided to imitate VMware's behavior in this case. To check VMware behavior, we wrote a kernel module that issues a reset to the pvscsi device and then issues a kick. We ran it on VMware ESXi 6.5 and it seems that it simply ignores the kick. Hence, we decided to ignore the kick as well. Signed-off-by: Elazar Leibovich Signed-off-by: Liran Alon --- hw/scsi/vmw_pvscsi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c index c91352cf46de..b2bb80449bba 100644 --- a/hw/scsi/vmw_pvscsi.c +++ b/hw/scsi/vmw_pvscsi.c @@ -719,7 +719,12 @@ pvscsi_process_io(PVSCSIState *s) PVSCSIRingReqDesc descr; hwaddr next_descr_pa; =20 - assert(s->rings_info_valid); + if (!s->rings_info_valid) { + qemu_log("WARNING: PVSCSI: Cannot process I/O when " + "rings are not valid.\n"); + return; + } + while ((next_descr_pa =3D pvscsi_ring_pop_req_descr(&s->rings)) !=3D 0= ) { =20 /* Only read after production index verification */ --=20 2.20.1