From nobody Mon May 6 18:17:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1559114568; cv=none; d=zoho.com; s=zohoarc; b=c3kQr91OlM79Ujbkn7g5Tt+j/HyKAYgDMD806oJELau0umPSVMy1h534c/tGy06FwGepkxnMTWOU1Txvs7GaJzFeFnJO8eYG9hWMI2b1umLS2XDciADtVTcQlZVK6Va6M9laATaujHx+7jK/gE3OV+AaQyqyIILUxZW+mKtGRWo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1559114568; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=GjcX2eS1qWnd/pfqLo8M97WyTdrvK7+rz7aAhVuI32E=; b=Om8oe0f3c7pKRNWpoahRawvJnFTerTI+ALQjtrz77Mxc+E8nk45DjmcoGum7m8UxX8/emD5DKLyMK9ZnpyKZX4tim+9JBHdjSvGuuEQLNmMnfH9IKkmwCI/01VcYdlpVabeCoNKQqbHDvIZbHIl9skpH3BwoQ3zz5F2m0brJQhw= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1559114568906490.37178345626194; Wed, 29 May 2019 00:22:48 -0700 (PDT) Received: from localhost ([127.0.0.1]:48869 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVsv6-0001E5-R6 for importer@patchew.org; Wed, 29 May 2019 03:22:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53267) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVsjl-0000ae-JK for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hVsjj-0006R3-Ke for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:01 -0400 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]:46977) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hVsjh-0006PA-KD for qemu-devel@nongnu.org; Wed, 29 May 2019 03:10:59 -0400 Received: by mail-pg1-x544.google.com with SMTP id v9so782472pgr.13 for ; Wed, 29 May 2019 00:10:56 -0700 (PDT) Received: from localhost ([116.247.112.152]) by smtp.gmail.com with ESMTPSA id r4sm4619471pjd.28.2019.05.29.00.10.54 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 May 2019 00:10:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GjcX2eS1qWnd/pfqLo8M97WyTdrvK7+rz7aAhVuI32E=; b=fqa8ii6B3pDGwtNzmAtAtIZ+g03DBeYwNeakYkbtOh4SavsZuY8XV8yVgsaggskbTJ 2GF7SfAeUPJbl8xqUKBrlmwVSTfyqPuCouZi4QN2v3ZseDEzTk2drpHAGfOFi7t7z08X 7IJSdGAE43tOzDHRoXPoyvsiPQMIa7cP4Eviy4NZoVaCfjomfIOIz+E0ILiUEi4OV6RV nOqW4PuG2UxWWQzSjz+fS0OBxnkGDLvKZaKW031YmIfvcYbIrX1BXAa689BoJi07uuiZ lpQDbBVtcfZl3qXQUV0tWQiPyTVj3wPj6UFKSuHyOUOEMPQYMW9pcv1lcv32vL2n7gem CxFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GjcX2eS1qWnd/pfqLo8M97WyTdrvK7+rz7aAhVuI32E=; b=OB34nfl/Y6Z3XXR7hDCkJq40S/X4bFpWEY6x/UO+RgJXqclLQQxi34QOJd+d5gSf9G 8aNYAGP6APMPEBRFjQ1w76nbkTvaz6gHI1YFC9jDPCBnkj8RYNAtmufqst80dx1cQ9d2 H1cA3vQM3VvHKowD8Z7qGVBRrI2DJuleut/Tm7HnLGv70Qt8WqOCTPgVP0TrR9ID8UWN /ysKiAOsBkOIo31CRtTWhDMEIWjmSqYH1DhRCILktQFfZMu/5XOZ5VHBFTGnDE6Eoenb 0kwShsLH4RPiCbTAK1enmL8+LnlX6PLM4AmYzNOuBHRLBqQvnpL7EhiIuFRlPm0us4Ew nXig== X-Gm-Message-State: APjAAAXjglZLD3vP9Yj5jHgdmjDM56t7qSd2p51Rr56v+R1sCBz53LvV /YNv7C92hxea8NkCMRGfOVc= X-Google-Smtp-Source: APXvYqzMQrN7WpQ4HgD5jGm7YyQEsSHQpyTnP7/o8i5oQ+8l8N902SqK6EDKwHcwgROqeZMlJ+vnfw== X-Received: by 2002:a17:90a:ac03:: with SMTP id o3mr10472629pjq.114.1559113855429; Wed, 29 May 2019 00:10:55 -0700 (PDT) From: elohimes@gmail.com X-Google-Original-From: xieyongji@baidu.com To: mst@redhat.com, groug@kaod.org, dgilbert@redhat.com Date: Wed, 29 May 2019 15:09:51 +0800 Message-Id: <20190529070955.25565-2-xieyongji@baidu.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190529070955.25565-1-xieyongji@baidu.com> References: <20190529070955.25565-1-xieyongji@baidu.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::544 Subject: [Qemu-devel] [PATCH 1/5] virtio: Set "start_on_kick" on virtio_set_features() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Xie Yongji , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Xie Yongji The guest feature is not set correctly on virtio_reset() and virtio_init(). So we should not use it to set "start_on_kick" at that point. This patch set "start_on_kick" on virtio_set_features() instead. Signed-off-by: Xie Yongji Reviewed-by: Greg Kurz --- hw/virtio/virtio.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 4805727b53..fc8fca81ad 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1214,8 +1214,7 @@ void virtio_reset(void *opaque) k->reset(vdev); } =20 - vdev->start_on_kick =3D (virtio_host_has_feature(vdev, VIRTIO_F_VERSIO= N_1) && - !virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_= 1)); + vdev->start_on_kick =3D false; vdev->started =3D false; vdev->broken =3D false; vdev->guest_features =3D 0; @@ -2069,14 +2068,21 @@ int virtio_set_features(VirtIODevice *vdev, uint64_= t val) return -EINVAL; } ret =3D virtio_set_features_nocheck(vdev, val); - if (!ret && virtio_vdev_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX)) { - /* VIRTIO_RING_F_EVENT_IDX changes the size of the caches. */ - int i; - for (i =3D 0; i < VIRTIO_QUEUE_MAX; i++) { - if (vdev->vq[i].vring.num !=3D 0) { - virtio_init_region_cache(vdev, i); + if (!ret) { + if (virtio_vdev_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX)) { + /* VIRTIO_RING_F_EVENT_IDX changes the size of the caches. */ + int i; + for (i =3D 0; i < VIRTIO_QUEUE_MAX; i++) { + if (vdev->vq[i].vring.num !=3D 0) { + virtio_init_region_cache(vdev, i); + } } } + + if (virtio_host_has_feature(vdev, VIRTIO_F_VERSION_1) && + !virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1)) { + vdev->start_on_kick =3D true; + } } return ret; } @@ -2331,8 +2337,7 @@ void virtio_init(VirtIODevice *vdev, const char *name, g_malloc0(sizeof(*vdev->vector_queues) * nvectors); } =20 - vdev->start_on_kick =3D (virtio_host_has_feature(vdev, VIRTIO_F_VERSIO= N_1) && - !virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_= 1)); + vdev->start_on_kick =3D false; vdev->started =3D false; vdev->device_id =3D device_id; vdev->status =3D 0; --=20 2.17.1 From nobody Mon May 6 18:17:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1559115524; cv=none; d=zoho.com; s=zohoarc; b=QDvwLOZH51PXv2Y1wroJtgLImGMQ5kt/s7+p09dO7NqY95ZI2b9Is2//t8QYeYNpAeedSukscD/jziIrPFUhHYY3GjHv3GnlkJhffzTTahz2ImUP2lQN0BurHZTNVa6v92WnllnwmEgdv3I4cfVI6vg4ChjrVW59RiaafBVgbyM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1559115524; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=KCQFP+ZFlVwkBiduDICRQjKoGn++Fs0jXbPk/B+kRlo=; b=URg3Bg4aN3ubrPkyaQl/nRwZypxYY2cpn7SBBCIfhk5x+DTEIsIVSJKh6PTvZiF712S1FDtqth5wOxUHx0clJf0HAlCc44CR8FscX0oj4uBo+vHfXOs0dgg1zg65q54J719ygjF97SEfHbKlAN14/3ZmgbpEskvQ0NcXE/e0yl0= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1559115524288796.5902563528581; Wed, 29 May 2019 00:38:44 -0700 (PDT) Received: from localhost ([127.0.0.1]:49135 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVtAW-0006gM-8C for importer@patchew.org; Wed, 29 May 2019 03:38:40 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53295) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVsjm-0000bX-LG for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hVsjl-0006SC-PC for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:02 -0400 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]:34094) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hVsjl-0006Ql-KK for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:01 -0400 Received: by mail-pf1-x442.google.com with SMTP id n19so1028104pfa.1 for ; Wed, 29 May 2019 00:10:59 -0700 (PDT) Received: from localhost ([116.247.112.152]) by smtp.gmail.com with ESMTPSA id k6sm16970656pfi.86.2019.05.29.00.10.57 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 May 2019 00:10:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=KCQFP+ZFlVwkBiduDICRQjKoGn++Fs0jXbPk/B+kRlo=; b=pVXhUfN13yEkPRGYJVvtc3bqZOUVWl+Ggu18I5ldY/H0W8rkQ74YJfddMKVwNC6eQm sAfjiNP+kGUSp2EpQ0NEaeF2jFkFt0u+Ei9huGtoZrwcgxngVhWO6Tpx/5JGSGQphZZL qrteWcVdPGSxcsJ4u9LSeHmmsxOmsR3Gp05jVcrRvhMATlcGRMU5l0EbIkTZ2DL8urpE cYFsIz5ysJEAqg+U7NkujALgGSQYq31JLc5Tceh2rgJVEgRFOP5ZJ+y6LKr53o/wqJKA lSm/Nsj5aqhAPsPd4JeyvQrX+CNCJgde/grMJ0jRfcT04qGg7vupvo6HRxACUq89mTfh 3INw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=KCQFP+ZFlVwkBiduDICRQjKoGn++Fs0jXbPk/B+kRlo=; b=Pg843tk3XTET5I/gPk+2hUyZp6KEacUDUMmSN5+nkxk4QqBROVpwwY0h9ez/HtZho5 Kreu4QbfHtnRBrHfC9Wl3b21aH4hsDv+mUcdJ/EdF5KrY9JzKfLPSQ6vvkHL85KpiPzF nfXO/YkIU6XgusOPoQnavjxWvHxxFUqm6m4FVe4UkgtxI8s5YA+Z5KtJV6GgGexYtl97 Xr6QL3FhT+eGKn53AckJ2A7JrjCypkSuEO7jJ1HNkI087YN0KH3Sf1UMNoZgLHl4haF9 WdsoinNdGew7E5VKGQrDQW+xB07Pvkf4m7VZwR0YWW6h0y0s3fEswkZxhmFmp1yc4ecp VuVg== X-Gm-Message-State: APjAAAVTwcxLQ5XqnJOO2YoUiAyhKehZND6srRJYul5vQI1L+BKWHNA9 Vktg1/sWxdta1UFZxyavwIQ= X-Google-Smtp-Source: APXvYqyyhGSdqPEvv1BlR4DJGOhel4jLkeN9sbYM++/muzgCF4kRzJDLYhIt6usA/7IMGd86xDA2JA== X-Received: by 2002:a17:90a:cb0a:: with SMTP id z10mr10432703pjt.101.1559113858348; Wed, 29 May 2019 00:10:58 -0700 (PDT) From: elohimes@gmail.com X-Google-Original-From: xieyongji@baidu.com To: mst@redhat.com, groug@kaod.org, dgilbert@redhat.com Date: Wed, 29 May 2019 15:09:52 +0800 Message-Id: <20190529070955.25565-3-xieyongji@baidu.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190529070955.25565-1-xieyongji@baidu.com> References: <20190529070955.25565-1-xieyongji@baidu.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::442 Subject: [Qemu-devel] [PATCH 2/5] virtio: Migrate the "start_on_kick" flag X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Xie Yongji , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Xie Yongji We should migrate the "start_on_kick" flag so that we would not miss starting device on kicking at startup after migration. Signed-off-by: Xie Yongji --- hw/virtio/virtio.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index fc8fca81ad..4d4ff67791 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1802,6 +1802,13 @@ static bool virtio_started_needed(void *opaque) return vdev->started; } =20 +static bool virtio_start_on_kick_needed(void *opaque) +{ + VirtIODevice *vdev =3D opaque; + + return vdev->start_on_kick; +} + static const VMStateDescription vmstate_virtqueue =3D { .name =3D "virtqueue_state", .version_id =3D 1, @@ -1941,6 +1948,17 @@ static const VMStateDescription vmstate_virtio_start= ed =3D { } }; =20 +static const VMStateDescription vmstate_virtio_start_on_kick =3D { + .name =3D "virtio/start_on_kick", + .version_id =3D 1, + .minimum_version_id =3D 1, + .needed =3D &virtio_start_on_kick_needed, + .fields =3D (VMStateField[]) { + VMSTATE_BOOL(start_on_kick, VirtIODevice), + VMSTATE_END_OF_LIST() + } +}; + static const VMStateDescription vmstate_virtio =3D { .name =3D "virtio", .version_id =3D 1, @@ -1957,6 +1975,7 @@ static const VMStateDescription vmstate_virtio =3D { &vmstate_virtio_broken, &vmstate_virtio_extra_state, &vmstate_virtio_started, + &vmstate_virtio_start_on_kick, NULL } }; --=20 2.17.1 From nobody Mon May 6 18:17:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1559114795; cv=none; d=zoho.com; s=zohoarc; b=bM9B1j7FfZw8pGo6HP2whVHszaw2Aq3bRYTYws4CQImFpPb2kCvg9KOaSCDFS1A2dbHYJyNltWPCCqBsOD3pZfb3rlTUh+BsTgnAoSAtaMLH8ZXg8s0oNePTsJYMa2e6SMozp8qPNF0I80Z9V8od77gYTPkgfAFxgvGVaLTOgEs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1559114795; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=U0Mx+YreHQRLB91RmN0bCzlScT5GPJ9gYEH0yygk22I=; b=c39uL9ueaBrD6UUAZoCs0ZONGEAJQjpPk8JUlQHGVHX8gJwiVRK34BOhe9MSdhbovRSOGuUsRRrJwfCZ9WitL7vXfoelIUbn/LfmSC01z8vj5VsMiOKxYyNti/sp2cZPVS0lLYWZQm+fDxG+Hktv3nMLbzhwG7UWb72H23UB7DA= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1559114795794131.43083369409442; Wed, 29 May 2019 00:26:35 -0700 (PDT) Received: from localhost ([127.0.0.1]:48943 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVsyH-0004F3-8r for importer@patchew.org; Wed, 29 May 2019 03:26:01 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53307) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVsjn-0000c8-A5 for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hVsjm-0006SS-9J for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:03 -0400 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]:33772) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hVsjm-0006Rm-4Z for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:02 -0400 Received: by mail-pl1-x643.google.com with SMTP id g21so673082plq.0 for ; Wed, 29 May 2019 00:11:02 -0700 (PDT) Received: from localhost ([116.247.112.152]) by smtp.gmail.com with ESMTPSA id n12sm15493682pgq.54.2019.05.29.00.11.00 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 May 2019 00:11:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=U0Mx+YreHQRLB91RmN0bCzlScT5GPJ9gYEH0yygk22I=; b=Yh8u7qAa+gm1IgAdJvgF+dQVqowHj+EIH/1ZcE6ssV/lKulMZ0mWCuoGD1iX/3F1OQ w1uxWPtvrPIC1HRk6yidkJyJk+xK3NPVQGar2qqQ8GqYOPDnm+Xuvo/OO/ESmwObCwqB ksLvdUD5bx213A2uy0NSJ1R0EMB223Dultb2IKtks97LNPsOVp/aGFEZl/zb0rWcHqC+ ybIpuVpbxmODClIGSBVjXTX+nvdVEjg8Q//EVlPVwmnccdkBGCDbw+6yKPgcK9riuYG1 RdjM9J9axFDqEmM6sJXuz15FNU5ZSewlWvqrthABshy0x01lvlKOS/usC3ayveg2m5ni Ir3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=U0Mx+YreHQRLB91RmN0bCzlScT5GPJ9gYEH0yygk22I=; b=HKUNHvlHOWfg1C8N6eRcK/h5uSRISTRyCzHHJxZwNHtPpfMnsQ+7ZqZrXWhJI6b0o0 B0+HZhsK9SDsU2mcYHxcBy0YJnztujzjsMoeURtcPL4BBPeEZhDwkPEPe9bODkf4O7VZ Dqf3cmtP9HS0oB3F5qIK6YfErKr9DpT1laSE5YDSWZ9QQLn9EM7v5Yyq/dZ261AVVrOA oBkskwGuBvXvHLp2kwqVN8eUdu/I1NycNAGZZEzWTG5xrejsapa5tgovcu1OOI9pdftB khhUo3AddxVc+/B7iF2sEoncHudGqQJbTYwxOdJMLsHU3rlQTjZB1Zgdycw+qoknzxYm Nz3g== X-Gm-Message-State: APjAAAXI7nG/4d4MetR9zDwojSmAiQcBwSYkUAbyrC+Q23VqEW09CpdY WGtuIkADA5dKCnANLWABG9G6DQQW X-Google-Smtp-Source: APXvYqzKOGBL90ccywgTotQmecQj/JHDq3LGi8Lm9hVJuY0jvjyQhbz1wxtW1n5kCc41CQHHLcto2g== X-Received: by 2002:a17:902:2947:: with SMTP id g65mr118403751plb.115.1559113861345; Wed, 29 May 2019 00:11:01 -0700 (PDT) From: elohimes@gmail.com X-Google-Original-From: xieyongji@baidu.com To: mst@redhat.com, groug@kaod.org, dgilbert@redhat.com Date: Wed, 29 May 2019 15:09:53 +0800 Message-Id: <20190529070955.25565-4-xieyongji@baidu.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190529070955.25565-1-xieyongji@baidu.com> References: <20190529070955.25565-1-xieyongji@baidu.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::643 Subject: [Qemu-devel] [PATCH 3/5] virtio: Make sure we get correct state of device on handle_aio_output() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Xie Yongji , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Xie Yongji We should set the flags: "start_on_kick" and "started" after we call the kick functions (handle_aio_output() and handle_output()). Signed-off-by: Xie Yongji --- hw/virtio/virtio.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 4d4ff67791..8a81374492 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1575,11 +1575,11 @@ void virtio_queue_notify(VirtIODevice *vdev, int n) event_notifier_set(&vq->host_notifier); } else if (vq->handle_output) { vq->handle_output(vdev, vq); - } =20 - if (unlikely(vdev->start_on_kick)) { - vdev->started =3D true; - vdev->start_on_kick =3D false; + if (unlikely(vdev->start_on_kick)) { + vdev->started =3D true; + vdev->start_on_kick =3D false; + } } } =20 --=20 2.17.1 From nobody Mon May 6 18:17:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1559115675; cv=none; d=zoho.com; s=zohoarc; b=mzAJmLZaOfODL7jlLtmsIoP9W3QrJ+Op4RLt53Qw33lc8SQ1vlXXUdNsncVzWePZ6a1r88PoTXOpg26nPdvN3or3dViDB5pUkJ08bCsa/Oq1SPcRlL7NUvIdJ305i9cjsOVvgSwYoX43GfYWkmrmo66fTvtIDHUVCAcfCxyQulk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1559115675; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=03Gb86KPthOkR7l6zYdtWIDlcvr0+sRNjxvLK/QpGew=; b=APUWNM0+T+fLDkxduDGXJ77jtSxNTv6ZF9hWp22wK0skR/xE2I0Fhob4T1vnsfq0aH31OIjFYoi7GsJY6VEDdz+Qr2j9RtgXvgIrDAJSv8hAxJdqoXMgscH0XhMdWiZJWjlRh/v/3Iku+TGsuWN7zlRq4IGbNd+7+u7y6/EHYKg= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1559115675155373.74321335506306; Wed, 29 May 2019 00:41:15 -0700 (PDT) Received: from localhost ([127.0.0.1]:49191 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVtCu-0000NT-5k for importer@patchew.org; Wed, 29 May 2019 03:41:08 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53342) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVsjq-0000ii-9y for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hVsjp-0006UD-F6 for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:06 -0400 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]:44335) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hVsjp-0006Tw-AE for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:05 -0400 Received: by mail-pg1-x541.google.com with SMTP id n2so784667pgp.11 for ; Wed, 29 May 2019 00:11:05 -0700 (PDT) Received: from localhost ([116.247.112.152]) by smtp.gmail.com with ESMTPSA id c127sm17387040pfb.107.2019.05.29.00.11.03 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 May 2019 00:11:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=03Gb86KPthOkR7l6zYdtWIDlcvr0+sRNjxvLK/QpGew=; b=hQWpyhYlwSHOhN/SueOAIqFdWmoyD/uiyvQeDhsrU9lwzfY0LR9HcTKxRdk91JOfPu ekvlEx5fk333DQ4OwlJepksehspXut72/mttjMKwOvMVKdtD5hmlAue7v6Rhw5mpat78 JDZxo9vFaFDOSqBQPeseIjQhpG3hcLSJreCa5mZcmLURywxX6m8O1B63PPA+WPNDZW1U yePDGdXd3svxLJR99sPo/qRsyz0aXbxvrVaHSuXA+j7LtJBPNV0glwx2M8M0UQJ/ctKD dzMSy0JVQE/v3w+afuowpVlDtfWTMydjnoWN2fbcSZZ0NS1cQW+X8edRz/GyByqcUWqd 007g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=03Gb86KPthOkR7l6zYdtWIDlcvr0+sRNjxvLK/QpGew=; b=CQCgg9QEtql3JppTt+9XYpJG6JG4oS+Tqsrkm/VDOX7fNrs6TBS/SVxrMJJ4qj135t nfMhHEsoPII/7zx15kFjr38ZsXeNDFSAacYHIJKHuBapsvY2wiU5WvOjv896vC/172OI q/3jjN54OeD/iWFbXK3wYMYqO+fc5kV9UzslVtR58dTwZXha/Xc+buvvGs7n3TZJ7Vm0 /6Vw1CGtyq/yEXZ3s3NqXQN44vkL6K3v5zYcIADV5DL4sKobP2IFVccusqVF85wS3/pV mbHS70pOlr6YN7KyXOv9CbXTIIxEbb1ZjHdMWZxojhHMtqkzyWBYAhcCLTfmyLC7Jo0Y f9iw== X-Gm-Message-State: APjAAAUFwJjzlLmdj8ee56m8q3zGlpGfisHfXVt4iX7uGiPTMQdbvuyU xuwH5QrMJczHw9wlCS2xK7M= X-Google-Smtp-Source: APXvYqx2m0DQRuE0UpGlMyawvNWbiJaTsYKzI5K/s3kFSlKdrsMqG1z59naEXToy/x5J0snGiNVM9Q== X-Received: by 2002:a63:2325:: with SMTP id j37mr135339747pgj.137.1559113864504; Wed, 29 May 2019 00:11:04 -0700 (PDT) From: elohimes@gmail.com X-Google-Original-From: xieyongji@baidu.com To: mst@redhat.com, groug@kaod.org, dgilbert@redhat.com Date: Wed, 29 May 2019 15:09:54 +0800 Message-Id: <20190529070955.25565-5-xieyongji@baidu.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190529070955.25565-1-xieyongji@baidu.com> References: <20190529070955.25565-1-xieyongji@baidu.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::541 Subject: [Qemu-devel] [PATCH 4/5] virtio: Don't change "started" flag on virtio_vmstate_change() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Xie Yongji , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Xie Yongji We will call virtio_set_status() on virtio_vmstate_change(). The "started" flag should not be changed in this case. Otherwise, we may get an incorrect value when we set "started" flag but not set DRIVER_OK in source VM. Signed-off-by: Xie Yongji --- hw/virtio/virtio.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 8a81374492..9e17293d46 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1162,9 +1162,13 @@ int virtio_set_status(VirtIODevice *vdev, uint8_t va= l) } } } - vdev->started =3D val & VIRTIO_CONFIG_S_DRIVER_OK; - if (unlikely(vdev->start_on_kick && vdev->started)) { - vdev->start_on_kick =3D false; + + if ((vdev->status & VIRTIO_CONFIG_S_DRIVER_OK) !=3D + (val & VIRTIO_CONFIG_S_DRIVER_OK)) { + vdev->started =3D val & VIRTIO_CONFIG_S_DRIVER_OK; + if (unlikely(vdev->start_on_kick && vdev->started)) { + vdev->start_on_kick =3D false; + } } =20 if (k->set_status) { --=20 2.17.1 From nobody Mon May 6 18:17:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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 (zoho.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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1559114928; cv=none; d=zoho.com; s=zohoarc; b=FVpBC2LqxuU80unZ6C5g43Fi4vmDILMzsZyNcbOSwxQEiwo/JJ8mYO5oaMGSUlA2WHbKXID40o9zsAiJ4yB3x1rWa/ue6/xo+Q7SEMvJ8hDJYWEtfaA7i6ou7USzZQRTOIGtW3ICmXEJwhuJQWzpqaAhs2yWP+m2eoMGo2aVMrM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1559114928; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=wRsGG+CGI58wbB7Mu7nQkCFNg2G6+zgNOiTS5HlNUlA=; b=PZtmr7f2o2093SN3epoG0jrsAtRU7YzcsziRFJygoXqqjzDxxDixtOQ1EP3wJrmfXN2vtb+9ZSB0IC2TgrtNOhfHIFweF3nHz8zf/XnzIx07mlUGta67L36ckceNpJItSGGCtcbAJFvqNsCzto0FFFxGEXjXAQ2K+DzO6VZHQ7k= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 1559114928466956.9156096898541; Wed, 29 May 2019 00:28:48 -0700 (PDT) Received: from localhost ([127.0.0.1]:48967 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVt0u-0006vV-Ax for importer@patchew.org; Wed, 29 May 2019 03:28:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53376) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hVsjt-0000lv-Rg for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hVsjs-0006Vh-Mw for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:09 -0400 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]:37046) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hVsjs-0006VU-HT for qemu-devel@nongnu.org; Wed, 29 May 2019 03:11:08 -0400 Received: by mail-pf1-x443.google.com with SMTP id a23so1020499pff.4 for ; Wed, 29 May 2019 00:11:08 -0700 (PDT) Received: from localhost ([116.247.112.152]) by smtp.gmail.com with ESMTPSA id 5sm16693672pfh.109.2019.05.29.00.11.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 May 2019 00:11:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=wRsGG+CGI58wbB7Mu7nQkCFNg2G6+zgNOiTS5HlNUlA=; b=oS4L5qKNQS+ZvLE5YFnPSgWq1B9nlIahoTrgCkNKl6aLEN+fsxF+wztid3inPjecMl jZ3DR2FKtD0nqnTFX4Kt7kgbBaawIkJ7sD3N2tYneHvotojaZBSf9H0dghyVDyDAbDbE +JKYlHWGqLAvMStwxRMSdG73kNr9F91H/hw9LIpS7EjvHcL0j5OPw7jRZFHR/v/iRqjz D8FBMbWGtKUXEjJqCxekpti3CxoplQOOomKga0tytLaAeqUkjs5e12sOEBoBU0/7vTaR CgNDaooWZlayngwSZRuDouvaFzEFZFVn9CzAFuPKGObKPV2b0Q76rSjG+b604BvoK1Gv DrWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=wRsGG+CGI58wbB7Mu7nQkCFNg2G6+zgNOiTS5HlNUlA=; b=RTVxFr8UXGU+kAoHOYOkWEDhFjGJG60S7P2kFGWY3tpwPWrhM3cjUaB6dVacPfyr9H jztXIVf85/T+j5LEXg6lMe4X4gTUxjrFeWd/OeLd/zLJYEtiCQvQCotpULn38/J+FrtG ADUozO3w3vYELUK/334/nYT/V9MX8FxQPNmaaJ0DqFD/xySyWLQS8zcYOaWawuBTgfUq lZPSRzijeH3UGVRiZ2DxwNSr3DDQUEr0P5PhjW04JwJff3AIdNtrJzAJSWcJd04ZxtJV jQuuqOe6CzCRp2/8kXM2XAqRTrClBI5adF1Bbz8fMU3RwC4Vfs2rSfELhzvGQ8fZMMCt M0Bw== X-Gm-Message-State: APjAAAWlGT93Rk5+Q8F8/ezfcgzretKYtEX63jNmNZEK65X0xC44bbHO ubNs3o1jP7XDfTIRF+r/F5Q= X-Google-Smtp-Source: APXvYqxkMNjESQg57MaxRwMsrqBHV13dx6I98in6HvbqVaR4y7VLSFJYCnMk5lZ238uXg/sd7/Ebsg== X-Received: by 2002:a63:8449:: with SMTP id k70mr19826829pgd.208.1559113867619; Wed, 29 May 2019 00:11:07 -0700 (PDT) From: elohimes@gmail.com X-Google-Original-From: xieyongji@baidu.com To: mst@redhat.com, groug@kaod.org, dgilbert@redhat.com Date: Wed, 29 May 2019 15:09:55 +0800 Message-Id: <20190529070955.25565-6-xieyongji@baidu.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190529070955.25565-1-xieyongji@baidu.com> References: <20190529070955.25565-1-xieyongji@baidu.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::443 Subject: [Qemu-devel] [PATCH 5/5] virtio: add "use-started" property X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Xie Yongji , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Xie Yongji In order to avoid migration issues, we introduce a "use-started" property to the base virtio device to indicate whether "started" and "start_on_kick" flag could be used. This property will be true by default and set to false when machine type <=3D 4.0. Suggested-by: Greg Kurz Signed-off-by: Xie Yongji --- hw/block/vhost-user-blk.c | 8 ++++++-- hw/core/machine.c | 4 +++- hw/virtio/virtio.c | 7 ++++--- include/hw/virtio/virtio.h | 10 ++++++++++ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index 9cb61336a6..520c5d3d4b 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -191,9 +191,13 @@ static void vhost_user_blk_stop(VirtIODevice *vdev) static void vhost_user_blk_set_status(VirtIODevice *vdev, uint8_t status) { VHostUserBlk *s =3D VHOST_USER_BLK(vdev); - bool should_start =3D vdev->started; + bool should_start =3D status & VIRTIO_CONFIG_S_DRIVER_OK; int ret; =20 + if (virtio_device_started(vdev)) { + should_start =3D true; + } + if (!vdev->vm_running) { should_start =3D false; } @@ -317,7 +321,7 @@ static int vhost_user_blk_connect(DeviceState *dev) } =20 /* restore vhost state */ - if (vdev->started) { + if (virtio_device_started(vdev)) { ret =3D vhost_user_blk_start(vdev); if (ret < 0) { error_report("vhost-user-blk: vhost start failed: %s", diff --git a/hw/core/machine.c b/hw/core/machine.c index 934c1bcceb..1730d28c1b 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -24,7 +24,9 @@ #include "hw/pci/pci.h" #include "hw/mem/nvdimm.h" =20 -GlobalProperty hw_compat_4_0[] =3D {}; +GlobalProperty hw_compat_4_0[] =3D { + { "virtio-device", "use-started", "false" }, +}; const size_t hw_compat_4_0_len =3D G_N_ELEMENTS(hw_compat_4_0); =20 GlobalProperty hw_compat_3_1[] =3D { diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 9e17293d46..4c05a9efe3 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1803,14 +1803,14 @@ static bool virtio_started_needed(void *opaque) { VirtIODevice *vdev =3D opaque; =20 - return vdev->started; + return vdev->started && vdev->use_started; } =20 static bool virtio_start_on_kick_needed(void *opaque) { VirtIODevice *vdev =3D opaque; =20 - return vdev->start_on_kick; + return vdev->start_on_kick && vdev->use_started; } =20 static const VMStateDescription vmstate_virtqueue =3D { @@ -2320,7 +2320,7 @@ static void virtio_vmstate_change(void *opaque, int r= unning, RunState state) VirtIODevice *vdev =3D opaque; BusState *qbus =3D qdev_get_parent_bus(DEVICE(vdev)); VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); - bool backend_run =3D running && vdev->started; + bool backend_run =3D running && virtio_device_started(vdev); vdev->vm_running =3D running; =20 if (backend_run) { @@ -2698,6 +2698,7 @@ static void virtio_device_instance_finalize(Object *o= bj) =20 static Property virtio_properties[] =3D { DEFINE_VIRTIO_COMMON_FEATURES(VirtIODevice, host_features), + DEFINE_PROP_BOOL("use-started", VirtIODevice, use_started, true), DEFINE_PROP_END_OF_LIST(), }; =20 diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index 27c0efc3d0..ba4dbd7480 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -105,6 +105,7 @@ struct VirtIODevice uint16_t device_id; bool vm_running; bool broken; /* device in invalid state, needs reset */ + bool use_started; bool started; bool start_on_kick; /* virtio 1.0 transitional devices support that */ VMChangeStateEntry *vmstate; @@ -351,4 +352,13 @@ static inline bool virtio_is_big_endian(VirtIODevice *= vdev) /* Devices conforming to VIRTIO 1.0 or later are always LE. */ return false; } + +static inline bool virtio_device_started(VirtIODevice *vdev) +{ + if (vdev->use_started) { + return vdev->started; + } + + return vdev->status & VIRTIO_CONFIG_S_DRIVER_OK; +} #endif --=20 2.17.1