From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9CE36C433EF for ; Tue, 5 Jul 2022 12:57:20 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 1CA53812A1; Tue, 5 Jul 2022 12:57:20 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 1CA53812A1 Authentication-Results: smtp1.osuosl.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=cL9vZ8fC X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2D3GWHVY-WjT; Tue, 5 Jul 2022 12:57:19 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp1.osuosl.org (Postfix) with ESMTPS id 5FB2481247; Tue, 5 Jul 2022 12:57:18 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 5FB2481247 Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 211D3C0032; Tue, 5 Jul 2022 12:57:18 +0000 (UTC) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 65E77C002D for ; Tue, 5 Jul 2022 12:57:17 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 31C954034F for ; Tue, 5 Jul 2022 12:57:17 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 31C954034F Authentication-Results: smtp4.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=cL9vZ8fC X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HxMRnKQbYJaf for ; Tue, 5 Jul 2022 12:57:15 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 45C9A402B8 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp4.osuosl.org (Postfix) with ESMTPS id 45C9A402B8 for ; Tue, 5 Jul 2022 12:57:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657025833; 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: in-reply-to:in-reply-to:references:references; bh=cjptA2ZJdNxU1nbLlCQdoMlOkDrm1k7jYSzMWXuoOkw=; b=cL9vZ8fC4AIIy5vcoWWQPFlveoCsf9H/YpMnU3qaRhIl2oqCSe+cSG7JWTkIfqdpx9YSkS eWoq0hW9DelO5J/Dktd4A5OmtnKmuXzAm6IcRNFjO3QDmX0wEm5xEXuGrSsNznJDvtPGZc Yzckiz8Fj4AlZyuS7mlII3jepXDe2QY= Received: from mail-lf1-f72.google.com (mail-lf1-f72.google.com [209.85.167.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-277-Af93YLJCNFW2GoP8P_Iv5w-1; Tue, 05 Jul 2022 08:57:12 -0400 X-MC-Unique: Af93YLJCNFW2GoP8P_Iv5w-1 Received: by mail-lf1-f72.google.com with SMTP id j12-20020a056512028c00b00482dd0d9748so1011015lfp.8 for ; Tue, 05 Jul 2022 05:57:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=cjptA2ZJdNxU1nbLlCQdoMlOkDrm1k7jYSzMWXuoOkw=; b=eNK/e7Gq52ALBaN6UmEE9amBydbskKwvCQH1jAIucTc3dt7yIs2AosCcKBGWY0U6r4 zRcae/8nuUwvX06ivoQonxO3akwdQj3Bmyrswtxjrs7Ilv06uX5M5bGIZbTvsDK2RAgx HZlAGThqXx3FqJVFyuXyo2+czyLUdjy+TZX/UUUXxbPEvTcjcCY3k+99ttCQBqQ5P8O4 +XkzAay4n13JT5yrEEIqmbhgMjcENQ+DRtg9WhaW91B2UbUCna9e+GAv3oXWkhu9zYAj 6LA4rIswzP7uKETGZuqbzgfGDPLaSRHXPp1zACQdeQl8QOCF8iQvLBdA15uPyZEyuMyF 7kRQ== X-Gm-Message-State: AJIora+oIgvXjNT4swichVR22NIyyvnOSwUcyzPXpVuoNoD3IS2MNWo5 8q4bpxGMggqZ5f3+ZAd0I6wumoHHf1/us4e5QkUcHcRjdwscbrPXYdjy91DAeaCIWTiVhxKsgvW NUB8Scxnr1kfgDp+A9/zNN/7i0h7i5DQHynxDOMtRyAynnImTMOv4PS+V4w== X-Received: by 2002:a2e:8958:0:b0:25a:852a:c302 with SMTP id b24-20020a2e8958000000b0025a852ac302mr19997533ljk.130.1657025831153; Tue, 05 Jul 2022 05:57:11 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tziaPbq/IYloKRJnhwO6lLY6BWG39VHutGsfJu15nS2YlfKPmXqa6RsYhoa5lRxfkN9WWiVMSBd0rjOQBS/T8= X-Received: by 2002:a2e:8958:0:b0:25a:852a:c302 with SMTP id b24-20020a2e8958000000b0025a852ac302mr19997503ljk.130.1657025830803; Tue, 05 Jul 2022 05:57:10 -0700 (PDT) MIME-Version: 1.0 References: <20220527060120.20964-1-jasowang@redhat.com> <20220527060120.20964-9-jasowang@redhat.com> In-Reply-To: From: Jason Wang Date: Tue, 5 Jul 2022 20:56:59 +0800 Message-ID: Subject: Re: [PATCH V6 8/9] virtio: harden vring IRQ To: "chenxiang (M)" Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jasowang@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Cc: linux-s390@vger.kernel.org, Peter Oberparleiter , Cindy Lu , "Paul E. McKenney" , mst , Peter Zijlstra , Marc Zyngier , Cornelia Huck , linux-kernel , virtualization , Halil Pasic , eperezma , Vineeth Vijayan , Thomas Gleixner X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" T24gVHVlLCBKdWwgNSwgMjAyMiBhdCA3OjA5IFBNIGNoZW54aWFuZyAoTSkgPGNoZW54aWFuZzY2 QGhpc2lsaWNvbi5jb20+IHdyb3RlOgo+Cj4gSGksCj4KPiBJIGVuY291bnRlciBhIGlzc3VlIHdo ZW4gdGVzdGluZyB2aXJ0aW8tYmFsbG9vbiBvbiBteSBwbGF0Zm9ybSAoQVJNNjQpCj4gd2l0aCBr ZXJuZWwgNS4xOS1yYzQgdG8gYm9vdCBWTSB3aXRoICItZGV2aWNlIHZpcnRpby1iYWxsb29uICIs IGFuZAo+Cj4gdGhlbiBjaGFuZ2UgdGhlIHNpemUgb2YgYmFsbG9vbiBpbiBxZW11IG1vbml0b3Is IGJ1dCBpdCBpc24ndCB2YWxpZCwgYW5kCj4gdGhlIGxvZyBpcyBhcyBmb2xsb3dzOgo+Cj4gUUVN VSA2LjEuNTAgbW9uaXRvciAtIHR5cGUgJ2hlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uCj4gKHFl bXUpIGluZm8gYmFsbG9vbgo+IGluZm8gYmFsbG9vbgo+IGJhbGxvb246IGFjdHVhbD00MDk2Cj4g KHFlbXUpIGJhbGxvb24gMzE3Mgo+IGJhbGxvb24gMzE3Mgo+IChxZW11KSBpbmZvIGJhbGxvb24K PiBpbmZvIGJhbGxvb24KPiBiYWxsb29uOiBhY3R1YWw9NDA5Ngo+Cj4gSSBnaXQgYmlzZWN0IHRo ZSBwYXRjaCwgYW5kIGZpbmQgdGhpcyBwYXRjaAo+IChbOGI0ZWM2OWQ3ZTA5OGE3ZGRmODMyZTFl Nzg0MGRlNTNlZDQ3NGM3N10gdmlydGlvOiBoYXJkZW4gdnJpbmcgSVJRKSBhdAo+IGxhc3QuCj4K PiBEbyB5b3UgaGF2ZSBhbnkgaWRlYSBhYm91dCBpdD8KClllcywgd2Ugbm90aWNlZCB0aGlzIGlz c3VlIGFuZCBoYXZlIGRpc2FibGUgdGhlIGhhcmRlbmluZyBmZWF0dXJlIHZpYToKCmMzNDZkYWU0 ZjNmYmNlNTFiYmQ0ZjJlYzVlOGM2ZjliOTFlOTMxNjMgKCJ2aXJ0aW86IGRpc2FibGUKbm90aWZp Y2F0aW9uIGhhcmRlbmluZyBieSBkZWZhdWx0IikKNmE5NzIwNTc2Y2QwMGQzMDcyMmM1Zjc1NWJk MTdkNGNmYTlkZjYzNiAoInZpcnRpbzoKVklSVElPX0hBUkRFTl9OT1RJRklDQVRJT04gaXMgYnJv a2VuIikKCndoaWNoIGhhdmUgYmVlbiBtZXJnZWQgaW4gTWljaGFlbCdzIHRyZWUuCgpodHRwczov L2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9tc3Qvdmhvc3QuZ2l0L2Nv bW1pdC8/aD1saW51eC1uZXh0JmlkPTZhOTcyMDU3NmNkMDBkMzA3MjJjNWY3NTViZDE3ZDRjZmE5 ZGY2MzYKClRoYW5rcwoKPgo+Cj4gQmVzdCByZWdhcmRzLAo+Cj4gWGlhbmcgQ2hlbgo+Cj4g5Zyo IDIwMjIvNS8yNyAxNDowMSwgSmFzb24gV2FuZyDlhpnpgZM6Cj4gPiBUaGlzIGlzIGEgcmV3b3Jr IG9uIHRoZSBwcmV2aW91cyBJUlEgaGFyZGVuaW5nIHRoYXQgaXMgZG9uZSBmb3IKPiA+IHZpcnRp by1wY2kgd2hlcmUgc2V2ZXJhbCBkcmF3YmFja3Mgd2VyZSBmb3VuZCBhbmQgd2VyZSByZXZlcnRl ZDoKPiA+Cj4gPiAxKSB0cnkgdG8gdXNlIElSUUZfTk9fQVVUT0VOIHdoaWNoIGlzIG5vdCBmcmll bmRseSB0byBhZmZpbml0eSBtYW5hZ2VkIElSUQo+ID4gICAgIHRoYXQgaXMgdXNlZCBieSBzb21l IGRldmljZSBzdWNoIGFzIHZpcnRpby1ibGsKPiA+IDIpIGRvbmUgb25seSBmb3IgUENJIHRyYW5z cG9ydAo+ID4KPiA+IFRoZSB2cS0+YnJva2VuIGlzIHJlLXVzZWQgaW4gdGhpcyBwYXRjaCBmb3Ig aW1wbGVtZW50aW5nIHRoZSBJUlEKPiA+IGhhcmRlbmluZy4gVGhlIHZxLT5icm9rZW4gaXMgc2V0 IHRvIHRydWUgZHVyaW5nIGJvdGggaW5pdGlhbGl6YXRpb24KPiA+IGFuZCByZXNldC4gQW5kIHRo ZSB2cS0+YnJva2VuIGlzIHNldCB0byBmYWxzZSBpbgo+ID4gdmlydGlvX2RldmljZV9yZWFkeSgp LiBUaGVuIHZyaW5nX2ludGVycnVwdCgpIGNhbiBjaGVjayBhbmQgcmV0dXJuCj4gPiB3aGVuIHZx LT5icm9rZW4gaXMgdHJ1ZS4gQW5kIGluIHRoaXMgY2FzZSwgc3dpdGNoIHRvIHJldHVybiBJUlFf Tk9ORQo+ID4gdG8gbGV0IHRoZSBpbnRlcnJ1cHQgY29yZSBhd2FyZSBvZiBzdWNoIGludmFsaWQg aW50ZXJydXB0IHRvIHByZXZlbnQKPiA+IElSUSBzdG9ybS4KPiA+Cj4gPiBUaGUgcmVhc29uIG9m IHVzaW5nIGEgcGVyIHF1ZXVlIHZhcmlhYmxlIGluc3RlYWQgb2YgYSBwZXIgZGV2aWNlIG9uZQo+ ID4gaXMgdGhhdCB3ZSBtYXkgbmVlZCBpdCBmb3IgcGVyIHF1ZXVlIHJlc2V0IGhhcmRlbmluZyBp biB0aGUgZnV0dXJlLgo+ID4KPiA+IE5vdGUgdGhhdCB0aGUgaGFyZGVuaW5nIGlzIG9ubHkgZG9u ZSBmb3IgdnJpbmcgaW50ZXJydXB0IHNpbmNlIHRoZQo+ID4gY29uZmlnIGludGVycnVwdCBoYXJk ZW5pbmcgaXMgYWxyZWFkeSBkb25lIGluIGNvbW1pdCAyMmI3MDUwYTAyNGQ3Cj4gPiAoInZpcnRp bzogZGVmZXIgY29uZmlnIGNoYW5nZWQgbm90aWZpY2F0aW9ucyIpLiBCdXQgdGhlIG1ldGhvZCB0 aGF0IGlzCj4gPiB1c2VkIGJ5IGNvbmZpZyBpbnRlcnJ1cHQgY2FuJ3QgYmUgcmV1c2VkIGJ5IHRo ZSB2cmluZyBpbnRlcnJ1cHQKPiA+IGhhbmRsZXIgYmVjYXVzZSBpdCB1c2VzIHNwaW5sb2NrIHRv IGRvIHRoZSBzeW5jaHJvbml6YXRpb24gd2hpY2ggaXMKPiA+IGV4cGVuc2l2ZS4KPiA+Cj4gPiBD YzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+Cj4gPiBDYzogUGV0ZXIgWmlq bHN0cmEgPHBldGVyekBpbmZyYWRlYWQub3JnPgo+ID4gQ2M6ICJQYXVsIEUuIE1jS2VubmV5IiA8 cGF1bG1ja0BrZXJuZWwub3JnPgo+ID4gQ2M6IE1hcmMgWnluZ2llciA8bWF6QGtlcm5lbC5vcmc+ Cj4gPiBDYzogSGFsaWwgUGFzaWMgPHBhc2ljQGxpbnV4LmlibS5jb20+Cj4gPiBDYzogQ29ybmVs aWEgSHVjayA8Y29odWNrQHJlZGhhdC5jb20+Cj4gPiBDYzogVmluZWV0aCBWaWpheWFuIDx2bmVl dGh2QGxpbnV4LmlibS5jb20+Cj4gPiBDYzogUGV0ZXIgT2JlcnBhcmxlaXRlciA8b2JlcnBhckBs aW51eC5pYm0uY29tPgo+ID4gQ2M6IGxpbnV4LXMzOTBAdmdlci5rZXJuZWwub3JnCj4gPiBTaWdu ZWQtb2ZmLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgo+ID4gLS0tCj4gPiAg IGRyaXZlcnMvczM5MC92aXJ0aW8vdmlydGlvX2Njdy5jICAgICAgIHwgIDQgKysrKwo+ID4gICBk cml2ZXJzL3ZpcnRpby92aXJ0aW8uYyAgICAgICAgICAgICAgICB8IDE1ICsrKysrKysrKysrKy0t LQo+ID4gICBkcml2ZXJzL3ZpcnRpby92aXJ0aW9fbW1pby5jICAgICAgICAgICB8ICA1ICsrKysr Cj4gPiAgIGRyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2lfbW9kZXJuX2Rldi5jIHwgIDUgKysrKysK PiA+ICAgZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYyAgICAgICAgICAgfCAxMSArKysrKysr LS0tLQo+ID4gICBpbmNsdWRlL2xpbnV4L3ZpcnRpb19jb25maWcuaCAgICAgICAgICB8IDIwICsr KysrKysrKysrKysrKysrKysrCj4gPiAgIDYgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL3ZpcnRp by92aXJ0aW9fY2N3LmMgYi9kcml2ZXJzL3MzOTAvdmlydGlvL3ZpcnRpb19jY3cuYwo+ID4gaW5k ZXggYzE4OGU0ZjIwY2EzLi45N2U1MWMzNGU2Y2YgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3Mz OTAvdmlydGlvL3ZpcnRpb19jY3cuYwo+ID4gKysrIGIvZHJpdmVycy9zMzkwL3ZpcnRpby92aXJ0 aW9fY2N3LmMKPiA+IEBAIC05NzEsNiArOTcxLDEwIEBAIHN0YXRpYyB2b2lkIHZpcnRpb19jY3df c2V0X3N0YXR1cyhzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldiwgdTggc3RhdHVzKQo+ID4gICAg ICAgY2N3LT5mbGFncyA9IDA7Cj4gPiAgICAgICBjY3ctPmNvdW50ID0gc2l6ZW9mKHN0YXR1cyk7 Cj4gPiAgICAgICBjY3ctPmNkYSA9IChfX3UzMikodW5zaWduZWQgbG9uZykmdmNkZXYtPmRtYV9h cmVhLT5zdGF0dXM7Cj4gPiArICAgICAvKiBXZSB1c2Ugc3NjaCBmb3Igc2V0dGluZyB0aGUgc3Rh dHVzIHdoaWNoIGlzIGEgc2VyaWFsaXppbmcKPiA+ICsgICAgICAqIGluc3RydWN0aW9uIHRoYXQg Z3VhcmFudGVlcyB0aGUgbWVtb3J5IHdyaXRlcyBoYXZlCj4gPiArICAgICAgKiBjb21wbGV0ZWQg YmVmb3JlIHNzY2guCj4gPiArICAgICAgKi8KPiA+ICAgICAgIHJldCA9IGNjd19pb19oZWxwZXIo dmNkZXYsIGNjdywgVklSVElPX0NDV19ET0lOR19XUklURV9TVEFUVVMpOwo+ID4gICAgICAgLyog V3JpdGUgZmFpbGVkPyBXZSBhc3N1bWUgc3RhdHVzIGlzIHVuY2hhbmdlZC4gKi8KPiA+ICAgICAg IGlmIChyZXQpCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0aW8vdmlydGlvLmMgYi9kcml2 ZXJzL3ZpcnRpby92aXJ0aW8uYwo+ID4gaW5kZXggYWExZWI1MTMyNzY3Li45NWZhYzRjOTdjOGIg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW8uYwo+ID4gKysrIGIvZHJpdmVy cy92aXJ0aW8vdmlydGlvLmMKPiA+IEBAIC0yMjAsNiArMjIwLDE1IEBAIHN0YXRpYyBpbnQgdmly dGlvX2ZlYXR1cmVzX29rKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICpkZXYpCj4gPiAgICAqICovCj4g PiAgIHZvaWQgdmlydGlvX3Jlc2V0X2RldmljZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqZGV2KQo+ ID4gICB7Cj4gPiArICAgICAvKgo+ID4gKyAgICAgICogVGhlIGJlbG93IHZpcnRpb19zeW5jaHJv bml6ZV9jYnMoKSBndWFyYW50ZWVzIHRoYXQgYW55Cj4gPiArICAgICAgKiBpbnRlcnJ1cHQgZm9y IHRoaXMgbGluZSBhcnJpdmluZyBhZnRlcgo+ID4gKyAgICAgICogdmlydGlvX3N5bmNocm9uaXpl X3ZxcygpIGhhcyBjb21wbGV0ZWQgaXMgZ3VhcmFudGVlZCB0byBzZWUKPiA+ICsgICAgICAqIHZx LT5icm9rZW4gYXMgdHJ1ZS4KPiA+ICsgICAgICAqLwo+ID4gKyAgICAgdmlydGlvX2JyZWFrX2Rl dmljZShkZXYpOwo+ID4gKyAgICAgdmlydGlvX3N5bmNocm9uaXplX2NicyhkZXYpOwo+ID4gKwo+ ID4gICAgICAgZGV2LT5jb25maWctPnJlc2V0KGRldik7Cj4gPiAgIH0KPiA+ICAgRVhQT1JUX1NZ TUJPTF9HUEwodmlydGlvX3Jlc2V0X2RldmljZSk7Cj4gPiBAQCAtNDI4LDYgKzQzNyw5IEBAIGlu dCByZWdpc3Rlcl92aXJ0aW9fZGV2aWNlKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICpkZXYpCj4gPiAg ICAgICBkZXYtPmNvbmZpZ19lbmFibGVkID0gZmFsc2U7Cj4gPiAgICAgICBkZXYtPmNvbmZpZ19j aGFuZ2VfcGVuZGluZyA9IGZhbHNlOwo+ID4KPiA+ICsgICAgIElOSVRfTElTVF9IRUFEKCZkZXYt PnZxcyk7Cj4gPiArICAgICBzcGluX2xvY2tfaW5pdCgmZGV2LT52cXNfbGlzdF9sb2NrKTsKPiA+ ICsKPiA+ICAgICAgIC8qIFdlIGFsd2F5cyBzdGFydCBieSByZXNldHRpbmcgdGhlIGRldmljZSwg aW4gY2FzZSBhIHByZXZpb3VzCj4gPiAgICAgICAgKiBkcml2ZXIgbWVzc2VkIGl0IHVwLiAgVGhp cyBhbHNvIHRlc3RzIHRoYXQgY29kZSBwYXRoIGEgbGl0dGxlLiAqLwo+ID4gICAgICAgdmlydGlv X3Jlc2V0X2RldmljZShkZXYpOwo+ID4gQEAgLTQzNSw5ICs0NDcsNiBAQCBpbnQgcmVnaXN0ZXJf dmlydGlvX2RldmljZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqZGV2KQo+ID4gICAgICAgLyogQWNr bm93bGVkZ2UgdGhhdCB3ZSd2ZSBzZWVuIHRoZSBkZXZpY2UuICovCj4gPiAgICAgICB2aXJ0aW9f YWRkX3N0YXR1cyhkZXYsIFZJUlRJT19DT05GSUdfU19BQ0tOT1dMRURHRSk7Cj4gPgo+ID4gLSAg ICAgSU5JVF9MSVNUX0hFQUQoJmRldi0+dnFzKTsKPiA+IC0gICAgIHNwaW5fbG9ja19pbml0KCZk ZXYtPnZxc19saXN0X2xvY2spOwo+ID4gLQo+ID4gICAgICAgLyoKPiA+ICAgICAgICAqIGRldmlj ZV9hZGQoKSBjYXVzZXMgdGhlIGJ1cyBpbmZyYXN0cnVjdHVyZSB0byBsb29rIGZvciBhIG1hdGNo aW5nCj4gPiAgICAgICAgKiBkcml2ZXIuCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0aW8v dmlydGlvX21taW8uYyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19tbWlvLmMKPiA+IGluZGV4IGM5 Njk5YTU5ZjkzYy4uZjlhMzZiYzdhYzI3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy92aXJ0aW8v dmlydGlvX21taW8uYwo+ID4gKysrIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX21taW8uYwo+ID4g QEAgLTI1Myw2ICsyNTMsMTEgQEAgc3RhdGljIHZvaWQgdm1fc2V0X3N0YXR1cyhzdHJ1Y3Qgdmly dGlvX2RldmljZSAqdmRldiwgdTggc3RhdHVzKQo+ID4gICAgICAgLyogV2Ugc2hvdWxkIG5ldmVy IGJlIHNldHRpbmcgc3RhdHVzIHRvIDAuICovCj4gPiAgICAgICBCVUdfT04oc3RhdHVzID09IDAp Owo+ID4KPiA+ICsgICAgIC8qCj4gPiArICAgICAgKiBQZXIgbWVtb3J5LWJhcnJpZXJzLnR4dCwg d21iKCkgaXMgbm90IG5lZWRlZCB0byBndWFyYW50ZWUKPiA+ICsgICAgICAqIHRoYXQgdGhlIHRo ZSBjYWNoZSBjb2hlcmVudCBtZW1vcnkgd3JpdGVzIGhhdmUgY29tcGxldGVkCj4gPiArICAgICAg KiBiZWZvcmUgd3JpdGluZyB0byB0aGUgTU1JTyByZWdpb24uCj4gPiArICAgICAgKi8KPiA+ICAg ICAgIHdyaXRlbChzdGF0dXMsIHZtX2Rldi0+YmFzZSArIFZJUlRJT19NTUlPX1NUQVRVUyk7Cj4g PiAgIH0KPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX3BjaV9tb2Rl cm5fZGV2LmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcGNpX21vZGVybl9kZXYuYwo+ID4gaW5k ZXggNDA5M2Y5Y2NhN2E2Li5hMGZhMTRmMjhhN2YgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3Zp cnRpby92aXJ0aW9fcGNpX21vZGVybl9kZXYuYwo+ID4gKysrIGIvZHJpdmVycy92aXJ0aW8vdmly dGlvX3BjaV9tb2Rlcm5fZGV2LmMKPiA+IEBAIC00NjcsNiArNDY3LDExIEBAIHZvaWQgdnBfbW9k ZXJuX3NldF9zdGF0dXMoc3RydWN0IHZpcnRpb19wY2lfbW9kZXJuX2RldmljZSAqbWRldiwKPiA+ ICAgewo+ID4gICAgICAgc3RydWN0IHZpcnRpb19wY2lfY29tbW9uX2NmZyBfX2lvbWVtICpjZmcg PSBtZGV2LT5jb21tb247Cj4gPgo+ID4gKyAgICAgLyoKPiA+ICsgICAgICAqIFBlciBtZW1vcnkt YmFycmllcnMudHh0LCB3bWIoKSBpcyBub3QgbmVlZGVkIHRvIGd1YXJhbnRlZQo+ID4gKyAgICAg ICogdGhhdCB0aGUgdGhlIGNhY2hlIGNvaGVyZW50IG1lbW9yeSB3cml0ZXMgaGF2ZSBjb21wbGV0 ZWQKPiA+ICsgICAgICAqIGJlZm9yZSB3cml0aW5nIHRvIHRoZSBNTUlPIHJlZ2lvbi4KPiA+ICsg ICAgICAqLwo+ID4gICAgICAgdnBfaW93cml0ZTgoc3RhdHVzLCAmY2ZnLT5kZXZpY2Vfc3RhdHVz KTsKPiA+ICAgfQo+ID4gICBFWFBPUlRfU1lNQk9MX0dQTCh2cF9tb2Rlcm5fc2V0X3N0YXR1cyk7 Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYyBiL2RyaXZlcnMv dmlydGlvL3ZpcnRpb19yaW5nLmMKPiA+IGluZGV4IDljMjMxZTFmZGVkNy4uMTNhNzM0OGNlZGZm IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYwo+ID4gKysrIGIv ZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYwo+ID4gQEAgLTE2ODgsNyArMTY4OCw3IEBAIHN0 YXRpYyBzdHJ1Y3QgdmlydHF1ZXVlICp2cmluZ19jcmVhdGVfdmlydHF1ZXVlX3BhY2tlZCgKPiA+ ICAgICAgIHZxLT53ZV9vd25fcmluZyA9IHRydWU7Cj4gPiAgICAgICB2cS0+bm90aWZ5ID0gbm90 aWZ5Owo+ID4gICAgICAgdnEtPndlYWtfYmFycmllcnMgPSB3ZWFrX2JhcnJpZXJzOwo+ID4gLSAg ICAgdnEtPmJyb2tlbiA9IGZhbHNlOwo+ID4gKyAgICAgdnEtPmJyb2tlbiA9IHRydWU7Cj4gPiAg ICAgICB2cS0+bGFzdF91c2VkX2lkeCA9IDA7Cj4gPiAgICAgICB2cS0+ZXZlbnRfdHJpZ2dlcmVk ID0gZmFsc2U7Cj4gPiAgICAgICB2cS0+bnVtX2FkZGVkID0gMDsKPiA+IEBAIC0yMTM0LDggKzIx MzQsMTEgQEAgaXJxcmV0dXJuX3QgdnJpbmdfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKl92cSkK PiA+ICAgICAgICAgICAgICAgcmV0dXJuIElSUV9OT05FOwo+ID4gICAgICAgfQo+ID4KPiA+IC0g ICAgIGlmICh1bmxpa2VseSh2cS0+YnJva2VuKSkKPiA+IC0gICAgICAgICAgICAgcmV0dXJuIElS UV9IQU5ETEVEOwo+ID4gKyAgICAgaWYgKHVubGlrZWx5KHZxLT5icm9rZW4pKSB7Cj4gPiArICAg ICAgICAgICAgIGRldl93YXJuX29uY2UoJnZxLT52cS52ZGV2LT5kZXYsCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgInZpcnRpbyB2cmluZyBJUlEgcmFpc2VkIGJlZm9yZSBEUklWRVJf T0siKTsKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIElSUV9OT05FOwo+ID4gKyAgICAgfQo+ID4K PiA+ICAgICAgIC8qIEp1c3QgYSBoaW50IGZvciBwZXJmb3JtYW5jZTogc28gaXQncyBvayB0aGF0 IHRoaXMgY2FuIGJlIHJhY3khICovCj4gPiAgICAgICBpZiAodnEtPmV2ZW50KQo+ID4gQEAgLTIx NzcsNyArMjE4MCw3IEBAIHN0cnVjdCB2aXJ0cXVldWUgKl9fdnJpbmdfbmV3X3ZpcnRxdWV1ZSh1 bnNpZ25lZCBpbnQgaW5kZXgsCj4gPiAgICAgICB2cS0+d2Vfb3duX3JpbmcgPSBmYWxzZTsKPiA+ ICAgICAgIHZxLT5ub3RpZnkgPSBub3RpZnk7Cj4gPiAgICAgICB2cS0+d2Vha19iYXJyaWVycyA9 IHdlYWtfYmFycmllcnM7Cj4gPiAtICAgICB2cS0+YnJva2VuID0gZmFsc2U7Cj4gPiArICAgICB2 cS0+YnJva2VuID0gdHJ1ZTsKPiA+ICAgICAgIHZxLT5sYXN0X3VzZWRfaWR4ID0gMDsKPiA+ICAg ICAgIHZxLT5ldmVudF90cmlnZ2VyZWQgPSBmYWxzZTsKPiA+ICAgICAgIHZxLT5udW1fYWRkZWQg PSAwOwo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdmlydGlvX2NvbmZpZy5oIGIvaW5j bHVkZS9saW51eC92aXJ0aW9fY29uZmlnLmgKPiA+IGluZGV4IDI1YmUwMTg4MTBhNy4uZDRlZGZk N2Q5MWJiIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9saW51eC92aXJ0aW9fY29uZmlnLmgKPiA+ ICsrKyBiL2luY2x1ZGUvbGludXgvdmlydGlvX2NvbmZpZy5oCj4gPiBAQCAtMjU2LDYgKzI1Niwy NiBAQCB2b2lkIHZpcnRpb19kZXZpY2VfcmVhZHkoc3RydWN0IHZpcnRpb19kZXZpY2UgKmRldikK PiA+ICAgICAgIHVuc2lnbmVkIHN0YXR1cyA9IGRldi0+Y29uZmlnLT5nZXRfc3RhdHVzKGRldik7 Cj4gPgo+ID4gICAgICAgQlVHX09OKHN0YXR1cyAmIFZJUlRJT19DT05GSUdfU19EUklWRVJfT0sp Owo+ID4gKwo+ID4gKyAgICAgLyoKPiA+ICsgICAgICAqIFRoZSB2aXJ0aW9fc3luY2hyb25pemVf Y2JzKCkgbWFrZXMgc3VyZSB2cmluZ19pbnRlcnJ1cHQoKQo+ID4gKyAgICAgICogd2lsbCBzZWUg dGhlIGRyaXZlciBzcGVjaWZpYyBzZXR1cCBpZiBpdCBzZWVzIHZxLT5icm9rZW4KPiA+ICsgICAg ICAqIGFzIGZhbHNlIChldmVuIGlmIHRoZSBub3RpZmljYXRpb25zIGNvbWUgYmVmb3JlIERSSVZF Ul9PSykuCj4gPiArICAgICAgKi8KPiA+ICsgICAgIHZpcnRpb19zeW5jaHJvbml6ZV9jYnMoZGV2 KTsKPiA+ICsgICAgIF9fdmlydGlvX3VuYnJlYWtfZGV2aWNlKGRldik7Cj4gPiArICAgICAvKgo+ ID4gKyAgICAgICogVGhlIHRyYW5zcG9ydCBzaG91bGQgZW5zdXJlIHRoZSB2aXNpYmlsaXR5IG9m IHZxLT5icm9rZW4KPiA+ICsgICAgICAqIGJlZm9yZSBzZXR0aW5nIERSSVZFUl9PSy4gU2VlIHRo ZSBjb21tZW50cyBmb3IgdGhlIHRyYW5zcG9ydAo+ID4gKyAgICAgICogc3BlY2lmaWMgc2V0X3N0 YXR1cygpIG1ldGhvZC4KPiA+ICsgICAgICAqCj4gPiArICAgICAgKiBBIHdlbGwgYmVoYXZlZCBk ZXZpY2Ugd2lsbCBvbmx5IG5vdGlmeSBhIHZpcnRxdWV1ZSBhZnRlcgo+ID4gKyAgICAgICogRFJJ VkVSX09LLCB0aGlzIG1lYW5zIHRoZSBkZXZpY2Ugc2hvdWxkICJzZWUiIHRoZSBjb2hlcmVuY3QK PiA+ICsgICAgICAqIG1lbW9yeSB3cml0ZSB0aGF0IHNldCB2cS0+YnJva2VuIGFzIGZhbHNlIHdo aWNoIGlzIGRvbmUgYnkKPiA+ICsgICAgICAqIHRoZSBkcml2ZXIgd2hlbiBpdCBzZWVzIERSSVZF Ul9PSywgdGhlbiB0aGUgZm9sbG93aW5nCj4gPiArICAgICAgKiBkcml2ZXIncyB2cmluZ19pbnRl cnJ1cHQoKSB3aWxsIHNlZSB2cS0+YnJva2VuIGFzIGZhbHNlIHNvCj4gPiArICAgICAgKiB3ZSB3 b24ndCBsb3NlIGFueSBub3RpZmljYXRpb24uCj4gPiArICAgICAgKi8KPiA+ICAgICAgIGRldi0+ Y29uZmlnLT5zZXRfc3RhdHVzKGRldiwgc3RhdHVzIHwgVklSVElPX0NPTkZJR19TX0RSSVZFUl9P Syk7Cj4gPiAgIH0KPiA+Cj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0 cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcv bWFpbG1hbi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6DDACC433EF for ; Tue, 5 Jul 2022 13:36:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232712AbiGENg5 (ORCPT ); Tue, 5 Jul 2022 09:36:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54960 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229501AbiGENgm (ORCPT ); Tue, 5 Jul 2022 09:36:42 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 344AEB1D6 for ; Tue, 5 Jul 2022 05:58:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657025834; 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: in-reply-to:in-reply-to:references:references; bh=cjptA2ZJdNxU1nbLlCQdoMlOkDrm1k7jYSzMWXuoOkw=; b=WO1qk9HYCgbdAXwUs/mG8xUR9I5fAwyNZtA656kaVZEwKKC6M7pq9trPsSfTwjSDPpLSa8 k3L5ijatJFkMENi1seSdXLXnXKf0aywpSr9M8sCHj+/T2zY5ljcDMuOSaxZ/iqRj2ddqYZ hOv7c2eynnRWXO/hMANR86xkb6wuC9U= Received: from mail-lf1-f70.google.com (mail-lf1-f70.google.com [209.85.167.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-367-QXRVZZ5lOdCb2-yLMvvMZg-1; Tue, 05 Jul 2022 08:57:12 -0400 X-MC-Unique: QXRVZZ5lOdCb2-yLMvvMZg-1 Received: by mail-lf1-f70.google.com with SMTP id bi38-20020a0565120ea600b0047f640eaee0so3995319lfb.4 for ; Tue, 05 Jul 2022 05:57:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=cjptA2ZJdNxU1nbLlCQdoMlOkDrm1k7jYSzMWXuoOkw=; b=2OnEqr0CVA4vKG8gxUKkzFQnjMtATfJ7MhiScH4lDoTou87cs3Az244n5T7+wsaEiT VAycGdxZvwW9F/rUswLu9pucVJpzIYMIlhkh7jCKF6xi8xI5UicUOY0jAn4SM15G1w9R nO7nD9eQl6ecaCjFDY0j3qYj8hhNRZKXbEPIRslNYQxhm/pv1a+dVu9M1SIJng+HjZnT Cxj3YMnZJH4if4NwawUcWnAT1MnLEIkCcPjQ1vVgHa1veDyZfu+Xx9bz0nXMMglFiLuq Lar8EGUhf79UjO+KDyCAePKJoaPprAudsHfMYFfiN1bpfajQOloHCkxtr6N9UBwypKkF 8WFQ== X-Gm-Message-State: AJIora/Cr69DljA4k0ZytfFgfTWKnMK9x2RQJ4RRAZ6Uy19+EhoNKeg+ v7TIXWqR8N0+IMtPmxsMuD3XGxJKCSbKVIVfjljIgLBOZQZw1tP9OsGmA7ugRRnvaOOqmDAA7MD hnIKdboyBsGPCgcRlQimXY+2M7WPk7HtNHy6BpGiQ X-Received: by 2002:a2e:8958:0:b0:25a:852a:c302 with SMTP id b24-20020a2e8958000000b0025a852ac302mr19997528ljk.130.1657025831062; Tue, 05 Jul 2022 05:57:11 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tziaPbq/IYloKRJnhwO6lLY6BWG39VHutGsfJu15nS2YlfKPmXqa6RsYhoa5lRxfkN9WWiVMSBd0rjOQBS/T8= X-Received: by 2002:a2e:8958:0:b0:25a:852a:c302 with SMTP id b24-20020a2e8958000000b0025a852ac302mr19997503ljk.130.1657025830803; Tue, 05 Jul 2022 05:57:10 -0700 (PDT) MIME-Version: 1.0 References: <20220527060120.20964-1-jasowang@redhat.com> <20220527060120.20964-9-jasowang@redhat.com> In-Reply-To: From: Jason Wang Date: Tue, 5 Jul 2022 20:56:59 +0800 Message-ID: Subject: Re: [PATCH V6 8/9] virtio: harden vring IRQ To: "chenxiang (M)" Cc: mst , virtualization , linux-kernel , Thomas Gleixner , Peter Zijlstra , "Paul E. McKenney" , Marc Zyngier , Halil Pasic , Cornelia Huck , eperezma , Cindy Lu , Stefano Garzarella , Xuan Zhuo , Vineeth Vijayan , Peter Oberparleiter , linux-s390@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 5, 2022 at 7:09 PM chenxiang (M) wr= ote: > > Hi, > > I encounter a issue when testing virtio-balloon on my platform (ARM64) > with kernel 5.19-rc4 to boot VM with "-device virtio-balloon ", and > > then change the size of balloon in qemu monitor, but it isn't valid, and > the log is as follows: > > QEMU 6.1.50 monitor - type 'help' for more information > (qemu) info balloon > info balloon > balloon: actual=3D4096 > (qemu) balloon 3172 > balloon 3172 > (qemu) info balloon > info balloon > balloon: actual=3D4096 > > I git bisect the patch, and find this patch > ([8b4ec69d7e098a7ddf832e1e7840de53ed474c77] virtio: harden vring IRQ) at > last. > > Do you have any idea about it? Yes, we noticed this issue and have disable the hardening feature via: c346dae4f3fbce51bbd4f2ec5e8c6f9b91e93163 ("virtio: disable notification hardening by default") 6a9720576cd00d30722c5f755bd17d4cfa9df636 ("virtio: VIRTIO_HARDEN_NOTIFICATION is broken") which have been merged in Michael's tree. https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git/commit/?h=3Dl= inux-next&id=3D6a9720576cd00d30722c5f755bd17d4cfa9df636 Thanks > > > Best regards, > > Xiang Chen > > =E5=9C=A8 2022/5/27 14:01, Jason Wang =E5=86=99=E9=81=93: > > This is a rework on the previous IRQ hardening that is done for > > virtio-pci where several drawbacks were found and were reverted: > > > > 1) try to use IRQF_NO_AUTOEN which is not friendly to affinity managed = IRQ > > that is used by some device such as virtio-blk > > 2) done only for PCI transport > > > > The vq->broken is re-used in this patch for implementing the IRQ > > hardening. The vq->broken is set to true during both initialization > > and reset. And the vq->broken is set to false in > > virtio_device_ready(). Then vring_interrupt() can check and return > > when vq->broken is true. And in this case, switch to return IRQ_NONE > > to let the interrupt core aware of such invalid interrupt to prevent > > IRQ storm. > > > > The reason of using a per queue variable instead of a per device one > > is that we may need it for per queue reset hardening in the future. > > > > Note that the hardening is only done for vring interrupt since the > > config interrupt hardening is already done in commit 22b7050a024d7 > > ("virtio: defer config changed notifications"). But the method that is > > used by config interrupt can't be reused by the vring interrupt > > handler because it uses spinlock to do the synchronization which is > > expensive. > > > > Cc: Thomas Gleixner > > Cc: Peter Zijlstra > > Cc: "Paul E. McKenney" > > Cc: Marc Zyngier > > Cc: Halil Pasic > > Cc: Cornelia Huck > > Cc: Vineeth Vijayan > > Cc: Peter Oberparleiter > > Cc: linux-s390@vger.kernel.org > > Signed-off-by: Jason Wang > > --- > > drivers/s390/virtio/virtio_ccw.c | 4 ++++ > > drivers/virtio/virtio.c | 15 ++++++++++++--- > > drivers/virtio/virtio_mmio.c | 5 +++++ > > drivers/virtio/virtio_pci_modern_dev.c | 5 +++++ > > drivers/virtio/virtio_ring.c | 11 +++++++---- > > include/linux/virtio_config.h | 20 ++++++++++++++++++++ > > 6 files changed, 53 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/vir= tio_ccw.c > > index c188e4f20ca3..97e51c34e6cf 100644 > > --- a/drivers/s390/virtio/virtio_ccw.c > > +++ b/drivers/s390/virtio/virtio_ccw.c > > @@ -971,6 +971,10 @@ static void virtio_ccw_set_status(struct virtio_de= vice *vdev, u8 status) > > ccw->flags =3D 0; > > ccw->count =3D sizeof(status); > > ccw->cda =3D (__u32)(unsigned long)&vcdev->dma_area->status; > > + /* We use ssch for setting the status which is a serializing > > + * instruction that guarantees the memory writes have > > + * completed before ssch. > > + */ > > ret =3D ccw_io_helper(vcdev, ccw, VIRTIO_CCW_DOING_WRITE_STATUS); > > /* Write failed? We assume status is unchanged. */ > > if (ret) > > diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c > > index aa1eb5132767..95fac4c97c8b 100644 > > --- a/drivers/virtio/virtio.c > > +++ b/drivers/virtio/virtio.c > > @@ -220,6 +220,15 @@ static int virtio_features_ok(struct virtio_device= *dev) > > * */ > > void virtio_reset_device(struct virtio_device *dev) > > { > > + /* > > + * The below virtio_synchronize_cbs() guarantees that any > > + * interrupt for this line arriving after > > + * virtio_synchronize_vqs() has completed is guaranteed to see > > + * vq->broken as true. > > + */ > > + virtio_break_device(dev); > > + virtio_synchronize_cbs(dev); > > + > > dev->config->reset(dev); > > } > > EXPORT_SYMBOL_GPL(virtio_reset_device); > > @@ -428,6 +437,9 @@ int register_virtio_device(struct virtio_device *de= v) > > dev->config_enabled =3D false; > > dev->config_change_pending =3D false; > > > > + INIT_LIST_HEAD(&dev->vqs); > > + spin_lock_init(&dev->vqs_list_lock); > > + > > /* We always start by resetting the device, in case a previous > > * driver messed it up. This also tests that code path a little.= */ > > virtio_reset_device(dev); > > @@ -435,9 +447,6 @@ int register_virtio_device(struct virtio_device *de= v) > > /* Acknowledge that we've seen the device. */ > > virtio_add_status(dev, VIRTIO_CONFIG_S_ACKNOWLEDGE); > > > > - INIT_LIST_HEAD(&dev->vqs); > > - spin_lock_init(&dev->vqs_list_lock); > > - > > /* > > * device_add() causes the bus infrastructure to look for a match= ing > > * driver. > > diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.= c > > index c9699a59f93c..f9a36bc7ac27 100644 > > --- a/drivers/virtio/virtio_mmio.c > > +++ b/drivers/virtio/virtio_mmio.c > > @@ -253,6 +253,11 @@ static void vm_set_status(struct virtio_device *vd= ev, u8 status) > > /* We should never be setting status to 0. */ > > BUG_ON(status =3D=3D 0); > > > > + /* > > + * Per memory-barriers.txt, wmb() is not needed to guarantee > > + * that the the cache coherent memory writes have completed > > + * before writing to the MMIO region. > > + */ > > writel(status, vm_dev->base + VIRTIO_MMIO_STATUS); > > } > > > > diff --git a/drivers/virtio/virtio_pci_modern_dev.c b/drivers/virtio/vi= rtio_pci_modern_dev.c > > index 4093f9cca7a6..a0fa14f28a7f 100644 > > --- a/drivers/virtio/virtio_pci_modern_dev.c > > +++ b/drivers/virtio/virtio_pci_modern_dev.c > > @@ -467,6 +467,11 @@ void vp_modern_set_status(struct virtio_pci_modern= _device *mdev, > > { > > struct virtio_pci_common_cfg __iomem *cfg =3D mdev->common; > > > > + /* > > + * Per memory-barriers.txt, wmb() is not needed to guarantee > > + * that the the cache coherent memory writes have completed > > + * before writing to the MMIO region. > > + */ > > vp_iowrite8(status, &cfg->device_status); > > } > > EXPORT_SYMBOL_GPL(vp_modern_set_status); > > diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.= c > > index 9c231e1fded7..13a7348cedff 100644 > > --- a/drivers/virtio/virtio_ring.c > > +++ b/drivers/virtio/virtio_ring.c > > @@ -1688,7 +1688,7 @@ static struct virtqueue *vring_create_virtqueue_p= acked( > > vq->we_own_ring =3D true; > > vq->notify =3D notify; > > vq->weak_barriers =3D weak_barriers; > > - vq->broken =3D false; > > + vq->broken =3D true; > > vq->last_used_idx =3D 0; > > vq->event_triggered =3D false; > > vq->num_added =3D 0; > > @@ -2134,8 +2134,11 @@ irqreturn_t vring_interrupt(int irq, void *_vq) > > return IRQ_NONE; > > } > > > > - if (unlikely(vq->broken)) > > - return IRQ_HANDLED; > > + if (unlikely(vq->broken)) { > > + dev_warn_once(&vq->vq.vdev->dev, > > + "virtio vring IRQ raised before DRIVER_OK")= ; > > + return IRQ_NONE; > > + } > > > > /* Just a hint for performance: so it's ok that this can be racy!= */ > > if (vq->event) > > @@ -2177,7 +2180,7 @@ struct virtqueue *__vring_new_virtqueue(unsigned = int index, > > vq->we_own_ring =3D false; > > vq->notify =3D notify; > > vq->weak_barriers =3D weak_barriers; > > - vq->broken =3D false; > > + vq->broken =3D true; > > vq->last_used_idx =3D 0; > > vq->event_triggered =3D false; > > vq->num_added =3D 0; > > diff --git a/include/linux/virtio_config.h b/include/linux/virtio_confi= g.h > > index 25be018810a7..d4edfd7d91bb 100644 > > --- a/include/linux/virtio_config.h > > +++ b/include/linux/virtio_config.h > > @@ -256,6 +256,26 @@ void virtio_device_ready(struct virtio_device *dev= ) > > unsigned status =3D dev->config->get_status(dev); > > > > BUG_ON(status & VIRTIO_CONFIG_S_DRIVER_OK); > > + > > + /* > > + * The virtio_synchronize_cbs() makes sure vring_interrupt() > > + * will see the driver specific setup if it sees vq->broken > > + * as false (even if the notifications come before DRIVER_OK). > > + */ > > + virtio_synchronize_cbs(dev); > > + __virtio_unbreak_device(dev); > > + /* > > + * The transport should ensure the visibility of vq->broken > > + * before setting DRIVER_OK. See the comments for the transport > > + * specific set_status() method. > > + * > > + * A well behaved device will only notify a virtqueue after > > + * DRIVER_OK, this means the device should "see" the coherenct > > + * memory write that set vq->broken as false which is done by > > + * the driver when it sees DRIVER_OK, then the following > > + * driver's vring_interrupt() will see vq->broken as false so > > + * we won't lose any notification. > > + */ > > dev->config->set_status(dev, status | VIRTIO_CONFIG_S_DRIVER_OK); > > } > > >