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 X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 9045CC56202 for ; Mon, 23 Nov 2020 09:18:38 +0000 (UTC) Received: from mm01.cs.columbia.edu (mm01.cs.columbia.edu [128.59.11.253]) by mail.kernel.org (Postfix) with ESMTP id C841420758 for ; Mon, 23 Nov 2020 09:18:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="zL0RtJ76" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C841420758 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvmarm-bounces@lists.cs.columbia.edu Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 243944BAE2; Mon, 23 Nov 2020 04:18:37 -0500 (EST) X-Virus-Scanned: at lists.cs.columbia.edu Authentication-Results: mm01.cs.columbia.edu (amavisd-new); dkim=softfail (fail, message has been altered) header.i=@kernel.org Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id enVOGG48Zeog; Mon, 23 Nov 2020 04:18:35 -0500 (EST) Received: from mm01.cs.columbia.edu (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id B340A4B99C; Mon, 23 Nov 2020 04:18:35 -0500 (EST) Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id B6CDA4B7ED for ; Mon, 23 Nov 2020 04:18:34 -0500 (EST) X-Virus-Scanned: at lists.cs.columbia.edu Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rDmzrDfMaqof for ; Mon, 23 Nov 2020 04:18:33 -0500 (EST) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by mm01.cs.columbia.edu (Postfix) with ESMTPS id 74B704B7E8 for ; Mon, 23 Nov 2020 04:18:33 -0500 (EST) Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1F88B20756; Mon, 23 Nov 2020 09:18:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1606123112; bh=C/lxpp7FZiY5qUG7l0C+bvs6KtaP5gm2+UNhTyakw90=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=zL0RtJ76w/RcGBo6LYyu2dL+g9/Myj0NLlpLkQxp9QHkYvyucxrn9RRexgpzCHSBb 4rbJtKhuSJz62Viua0gYXO/TeIMCOJkvYvvo2RCMsiNeSFDe9+NL7OtSye3tFFgCnw BhNc8j5c/xQcFOi2JX+9+lELUJviA+g+R6EtT6TU= Received: from disco-boy.misterjones.org ([51.254.78.96] helo=www.loen.fr) by disco-boy.misterjones.org with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94) (envelope-from ) id 1kh7zR-00Cro8-Th; Mon, 23 Nov 2020 09:18:30 +0000 MIME-Version: 1.0 Date: Mon, 23 Nov 2020 09:18:29 +0000 From: Marc Zyngier To: Shenming Lu Subject: Re: [RFC PATCH v1 2/4] KVM: arm64: GICv4.1: Try to save hw pending state in save_pending_tables In-Reply-To: <20201123065410.1915-3-lushenming@huawei.com> References: <20201123065410.1915-1-lushenming@huawei.com> <20201123065410.1915-3-lushenming@huawei.com> User-Agent: Roundcube Webmail/1.4.9 Message-ID: X-Sender: maz@kernel.org X-SA-Exim-Connect-IP: 51.254.78.96 X-SA-Exim-Rcpt-To: lushenming@huawei.com, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.com, eric.auger@redhat.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, christoffer.dall@arm.com, alex.williamson@redhat.com, kwankhede@nvidia.com, cohuck@redhat.com, cjia@nvidia.com, wanghaibin.wang@huawei.com, yuzenghui@huawei.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Cc: Neo Jia , kvm@vger.kernel.org, Cornelia Huck , linux-kernel@vger.kernel.org, Kirti Wankhede , Alex Williamson , kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org X-BeenThere: kvmarm@lists.cs.columbia.edu X-Mailman-Version: 2.1.14 Precedence: list List-Id: Where KVM/ARM decisions are made List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu T24gMjAyMC0xMS0yMyAwNjo1NCwgU2hlbm1pbmcgTHUgd3JvdGU6Cj4gQWZ0ZXIgcGF1c2luZyBh bGwgdkNQVXMgYW5kIGRldmljZXMgY2FwYWJsZSBvZiBpbnRlcnJ1cHRpbmcsIGluIG9yZGVyCiAg ICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eClNlZSBteSBjb21tZW50IGJlbG93IGFib3V0IHRoaXMu Cgo+IHRvIHNhdmUgdGhlIGluZm9ybWF0aW9uIG9mIGFsbCBpbnRlcnJ1cHRzLCBiZXNpZGVzIGZs dXNoaW5nIHRoZSBwZW5kaW5nCj4gc3RhdGVzIGluIGt2beKAmXMgdmdpYywgd2UgYWxzbyB0cnkg dG8gZmx1c2ggdGhlIHN0YXRlcyBvZiBWTFBJcyBpbiB0aGUKPiB2aXJ0dWFsIHBlbmRpbmcgdGFi bGVzIGludG8gZ3Vlc3QgUkFNLCBidXQgd2UgbmVlZCB0byBoYXZlIEdJQ3Y0LjEgYW5kCj4gc2Fm ZWx5IHVubWFwIHRoZSB2UEVzIGZpcnN0Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNoZW5taW5nIEx1 IDxsdXNoZW5taW5nQGh1YXdlaS5jb20+Cj4gLS0tCj4gIGFyY2gvYXJtNjQva3ZtL3ZnaWMvdmdp Yy12My5jIHwgNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiAgMSBmaWxl IGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2FyY2gvYXJtNjQva3ZtL3ZnaWMvdmdpYy12My5jIAo+IGIvYXJjaC9hcm02NC9rdm0vdmdp Yy92Z2ljLXYzLmMKPiBpbmRleCA5Y2RmMzlhOTRhNjMuLmUxYjNhYTRiMmIxMiAxMDA2NDQKPiAt LS0gYS9hcmNoL2FybTY0L2t2bS92Z2ljL3ZnaWMtdjMuYwo+ICsrKyBiL2FyY2gvYXJtNjQva3Zt L3ZnaWMvdmdpYy12My5jCj4gQEAgLTEsNiArMSw4IEBACj4gIC8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wLW9ubHkKPiAKPiAgI2luY2x1ZGUgPGxpbnV4L2lycWNoaXAvYXJtLWdp Yy12My5oPgo+ICsjaW5jbHVkZSA8bGludXgvaXJxLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pcnFk b21haW4uaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2t2bS5oPgo+ICAjaW5jbHVkZSA8bGludXgva3Zt X2hvc3QuaD4KPiAgI2luY2x1ZGUgPGt2bS9hcm1fdmdpYy5oPgo+IEBAIC0zNTYsNiArMzU4LDM5 IEBAIGludCB2Z2ljX3YzX2xwaV9zeW5jX3BlbmRpbmdfc3RhdHVzKHN0cnVjdCBrdm0KPiAqa3Zt LCBzdHJ1Y3QgdmdpY19pcnEgKmlycSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gCj4gKy8qCj4gKyAq IFdpdGggR0lDdjQuMSwgd2UgY2FuIGdldCB0aGUgVkxQSSdzIHBlbmRpbmcgc3RhdGUgYWZ0ZXIg dW5tYXBwaW5nCj4gKyAqIHRoZSB2UEUuIFRoZSBkZWFjdGl2YXRpb24gb2YgdGhlIGRvb3JiZWxs IGludGVycnVwdCB3aWxsIHRyaWdnZXIKPiArICogdGhlIHVubWFwcGluZyBvZiB0aGUgYXNzb2Np YXRlZCB2UEUuCj4gKyAqLwo+ICtzdGF0aWMgdm9pZCBnZXRfdmxwaV9zdGF0ZV9wcmUoc3RydWN0 IHZnaWNfZGlzdCAqZGlzdCkKPiArewo+ICsJc3RydWN0IGlycV9kZXNjICpkZXNjOwo+ICsJaW50 IGk7Cj4gKwo+ICsJaWYgKCFrdm1fdmdpY19nbG9iYWxfc3RhdGUuaGFzX2dpY3Y0XzEpCj4gKwkJ cmV0dXJuOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBkaXN0LT5pdHNfdm0ubnJfdnBlczsgaSsr KSB7Cj4gKwkJZGVzYyA9IGlycV90b19kZXNjKGRpc3QtPml0c192bS52cGVzW2ldLT5pcnEpOwo+ ICsJCWlycV9kb21haW5fZGVhY3RpdmF0ZV9pcnEoaXJxX2Rlc2NfZ2V0X2lycV9kYXRhKGRlc2Mp KTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZ2V0X3ZscGlfc3RhdGVfcG9zdChzdHJ1 Y3QgdmdpY19kaXN0ICpkaXN0KQoKbml0OiB0aGUgbmFtaW5nIGZlZWxzIGEgYml0Li4uIG9kZC4g UHJlL3Bvc3Qgd2hhdD8KCj4gK3sKPiArCXN0cnVjdCBpcnFfZGVzYyAqZGVzYzsKPiArCWludCBp Owo+ICsKPiArCWlmICgha3ZtX3ZnaWNfZ2xvYmFsX3N0YXRlLmhhc19naWN2NF8xKQo+ICsJCXJl dHVybjsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgZGlzdC0+aXRzX3ZtLm5yX3ZwZXM7IGkrKykg ewo+ICsJCWRlc2MgPSBpcnFfdG9fZGVzYyhkaXN0LT5pdHNfdm0udnBlc1tpXS0+aXJxKTsKPiAr CQlpcnFfZG9tYWluX2FjdGl2YXRlX2lycShpcnFfZGVzY19nZXRfaXJxX2RhdGEoZGVzYyksIGZh bHNlKTsKPiArCX0KPiArfQo+ICsKPiAgLyoqCj4gICAqIHZnaWNfdjNfc2F2ZV9wZW5kaW5nX3Rh YmxlcyAtIFNhdmUgdGhlIHBlbmRpbmcgdGFibGVzIGludG8gZ3Vlc3QgCj4gUkFNCj4gICAqIGt2 bSBsb2NrIGFuZCBhbGwgdmNwdSBsb2NrIG11c3QgYmUgaGVsZAo+IEBAIC0zNjUsMTQgKzQwMCwx NyBAQCBpbnQgdmdpY192M19zYXZlX3BlbmRpbmdfdGFibGVzKHN0cnVjdCBrdm0gKmt2bSkKPiAg CXN0cnVjdCB2Z2ljX2Rpc3QgKmRpc3QgPSAma3ZtLT5hcmNoLnZnaWM7Cj4gIAlzdHJ1Y3Qgdmdp Y19pcnEgKmlycTsKPiAgCWdwYV90IGxhc3RfcHRyID0gfihncGFfdCkwOwo+IC0JaW50IHJldDsK PiArCWludCByZXQgPSAwOwo+ICAJdTggdmFsOwo+IAo+ICsJZ2V0X3ZscGlfc3RhdGVfcHJlKGRp c3QpOwo+ICsKPiAgCWxpc3RfZm9yX2VhY2hfZW50cnkoaXJxLCAmZGlzdC0+bHBpX2xpc3RfaGVh ZCwgbHBpX2xpc3QpIHsKPiAgCQlpbnQgYnl0ZV9vZmZzZXQsIGJpdF9ucjsKPiAgCQlzdHJ1Y3Qg a3ZtX3ZjcHUgKnZjcHU7Cj4gIAkJZ3BhX3QgcGVuZGJhc2UsIHB0cjsKPiAgCQlib29sIHN0b3Jl ZDsKPiArCQlib29sIGlzX3BlbmRpbmcgPSBpcnEtPnBlbmRpbmdfbGF0Y2g7Cj4gCj4gIAkJdmNw dSA9IGlycS0+dGFyZ2V0X3ZjcHU7Cj4gIAkJaWYgKCF2Y3B1KQo+IEBAIC0zODcsMjQgKzQyNSwz NiBAQCBpbnQgdmdpY192M19zYXZlX3BlbmRpbmdfdGFibGVzKHN0cnVjdCBrdm0gKmt2bSkKPiAg CQlpZiAocHRyICE9IGxhc3RfcHRyKSB7Cj4gIAkJCXJldCA9IGt2bV9yZWFkX2d1ZXN0X2xvY2so a3ZtLCBwdHIsICZ2YWwsIDEpOwo+ICAJCQlpZiAocmV0KQo+IC0JCQkJcmV0dXJuIHJldDsKPiAr CQkJCWdvdG8gb3V0Owo+ICAJCQlsYXN0X3B0ciA9IHB0cjsKPiAgCQl9Cj4gCj4gIAkJc3RvcmVk ID0gdmFsICYgKDFVIDw8IGJpdF9ucik7Cj4gLQkJaWYgKHN0b3JlZCA9PSBpcnEtPnBlbmRpbmdf bGF0Y2gpCj4gKwo+ICsJCS8qIGFsc28gZmx1c2ggaHcgcGVuZGluZyBzdGF0ZSAqLwoKVGhpcyBj b21tZW50IGxvb2tzIG91dCBvZiBwbGFjZSwgYXMgd2UgYXJlbid0IGZsdXNoaW5nIGFueXRoaW5n LgoKPiArCQlpZiAoaXJxLT5odykgewo+ICsJCQlXQVJOX1JBVEVMSU1JVChpcnFfZ2V0X2lycWNo aXBfc3RhdGUoaXJxLT5ob3N0X2lycSwKPiArCQkJCQkJSVJRQ0hJUF9TVEFURV9QRU5ESU5HLCAm aXNfcGVuZGluZyksCj4gKwkJCQkgICAgICAgIklSUSAlZCIsIGlycS0+aG9zdF9pcnEpOwoKSXNu J3QgdGhpcyBnb2luZyB0byB3YXJuIGxpa2UgbWFkIG9uIGEgR0lDdjQuMCBzeXN0ZW0gd2hlcmUg dGhpcywgYnkgCmRlZmluaXRpb24sCndpbGwgZ2VuZXJhdGUgYW4gZXJyb3I/Cgo+ICsJCX0KPiAr Cj4gKwkJaWYgKHN0b3JlZCA9PSBpc19wZW5kaW5nKQo+ICAJCQljb250aW51ZTsKPiAKPiAtCQlp ZiAoaXJxLT5wZW5kaW5nX2xhdGNoKQo+ICsJCWlmIChpc19wZW5kaW5nKQo+ICAJCQl2YWwgfD0g MSA8PCBiaXRfbnI7Cj4gIAkJZWxzZQo+ICAJCQl2YWwgJj0gfigxIDw8IGJpdF9ucik7Cj4gCj4g IAkJcmV0ID0ga3ZtX3dyaXRlX2d1ZXN0X2xvY2soa3ZtLCBwdHIsICZ2YWwsIDEpOwo+ICAJCWlm IChyZXQpCj4gLQkJCXJldHVybiByZXQ7Cj4gKwkJCWdvdG8gb3V0Owo+ICAJfQo+IC0JcmV0dXJu IDA7Cj4gKwo+ICtvdXQ6Cj4gKwlnZXRfdmxwaV9zdGF0ZV9wb3N0KGRpc3QpOwoKVGhpcyBiaXQg d29ycmllcyBtZTogeW91IGhhdmUgdW5tYXBwZWQgdGhlIFZQRXMsIHNvIGFueSBpbnRlcnJ1cHQg dGhhdCAKaGFzIGJlZW4KZ2VuZXJhdGVkIGR1cmluZyB0aGF0IHBoYXNlIGlzIG5vdyBmb3JldmVy IGxvc3QgKHRoZSBHSUMgZG9lc24ndCBoYXZlIApvd25lcnNoaXAKb2YgdGhlIHBlbmRpbmcgdGFi bGVzKS4KCkRvIHlvdSByZWFsbHkgZXhwZWN0IHRoZSBWTSB0byBiZSByZXN0YXJ0YWJsZSBmcm9t IHRoYXQgcG9pbnQ/IEkgZG9uJ3QgCnNlZSBob3cKdGhpcyBpcyBwb3NzaWJsZS4KCj4gKwo+ICsJ cmV0dXJuIHJldDsKPiAgfQo+IAo+ICAvKioKClRoYW5rcywKCiAgICAgICAgIE0uCi0tIApKYXp6 IGlzIG5vdCBkZWFkLiBJdCBqdXN0IHNtZWxscyBmdW5ueS4uLgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwprdm1hcm0gbWFpbGluZyBsaXN0Cmt2bWFybUBs aXN0cy5jcy5jb2x1bWJpYS5lZHUKaHR0cHM6Ly9saXN0cy5jcy5jb2x1bWJpYS5lZHUvbWFpbG1h bi9saXN0aW5mby9rdm1hcm0K 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 X-Spam-Level: X-Spam-Status: No, score=-14.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 D16AAC56202 for ; Mon, 23 Nov 2020 09:19:57 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 591A72078E for ; Mon, 23 Nov 2020 09:19:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="1wvw8OLq"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="zL0RtJ76" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 591A72078E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-ID:References:In-Reply-To:Subject:To:From: Date:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+sOWCiF5HEvLzGVqEFTgylsApHuS9vhfaVVifXGmtgo=; b=1wvw8OLqFSttAiKscgGYoDsFy kMe6zs5i4jZFEit/A4u8IVgivQFIdl9mvJKNevOaFMJPqEAg6TJyPBezCpxIHMlIcY0bJ2wYFSK7t fWCugsdSND00DWa1shNEpVmU8CAH7r5+LFr3zz/IlgEAgBPp0DwTyFdYcAK8MlJ+PkRTLIfBOY/4D QI/a/E9tafboe4bMygSbPqNOQPBVvLP9TC3YfVHS0XtQDkfA00iRhGPjVYua6Kziwm3+DUf7PAOyI pLQ4VrRQfFVXOJTnK0CiRhn5Jd287tZKIQ22iDJwg0/vmvUKwH7d9F1ZetP3EmtXwcAzYnPusX8+f vFbi1qqUA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kh7zY-0003uQ-8j; Mon, 23 Nov 2020 09:18:36 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kh7zV-0003u5-JI for linux-arm-kernel@lists.infradead.org; Mon, 23 Nov 2020 09:18:34 +0000 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1F88B20756; Mon, 23 Nov 2020 09:18:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1606123112; bh=C/lxpp7FZiY5qUG7l0C+bvs6KtaP5gm2+UNhTyakw90=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=zL0RtJ76w/RcGBo6LYyu2dL+g9/Myj0NLlpLkQxp9QHkYvyucxrn9RRexgpzCHSBb 4rbJtKhuSJz62Viua0gYXO/TeIMCOJkvYvvo2RCMsiNeSFDe9+NL7OtSye3tFFgCnw BhNc8j5c/xQcFOi2JX+9+lELUJviA+g+R6EtT6TU= Received: from disco-boy.misterjones.org ([51.254.78.96] helo=www.loen.fr) by disco-boy.misterjones.org with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94) (envelope-from ) id 1kh7zR-00Cro8-Th; Mon, 23 Nov 2020 09:18:30 +0000 MIME-Version: 1.0 Date: Mon, 23 Nov 2020 09:18:29 +0000 From: Marc Zyngier To: Shenming Lu Subject: Re: [RFC PATCH v1 2/4] KVM: arm64: GICv4.1: Try to save hw pending state in save_pending_tables In-Reply-To: <20201123065410.1915-3-lushenming@huawei.com> References: <20201123065410.1915-1-lushenming@huawei.com> <20201123065410.1915-3-lushenming@huawei.com> User-Agent: Roundcube Webmail/1.4.9 Message-ID: X-Sender: maz@kernel.org X-SA-Exim-Connect-IP: 51.254.78.96 X-SA-Exim-Rcpt-To: lushenming@huawei.com, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.com, eric.auger@redhat.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, christoffer.dall@arm.com, alex.williamson@redhat.com, kwankhede@nvidia.com, cohuck@redhat.com, cjia@nvidia.com, wanghaibin.wang@huawei.com, yuzenghui@huawei.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201123_041833_814048_FE0D961F X-CRM114-Status: GOOD ( 26.33 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Neo Jia , kvm@vger.kernel.org, Suzuki K Poulose , Cornelia Huck , linux-kernel@vger.kernel.org, Kirti Wankhede , Christoffer Dall , Eric Auger , Alex Williamson , James Morse , Julien Thierry , yuzenghui@huawei.com, wanghaibin.wang@huawei.com, kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjAyMC0xMS0yMyAwNjo1NCwgU2hlbm1pbmcgTHUgd3JvdGU6Cj4gQWZ0ZXIgcGF1c2luZyBh bGwgdkNQVXMgYW5kIGRldmljZXMgY2FwYWJsZSBvZiBpbnRlcnJ1cHRpbmcsIGluIG9yZGVyCiAg ICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eClNlZSBteSBjb21tZW50IGJlbG93IGFib3V0IHRoaXMu Cgo+IHRvIHNhdmUgdGhlIGluZm9ybWF0aW9uIG9mIGFsbCBpbnRlcnJ1cHRzLCBiZXNpZGVzIGZs dXNoaW5nIHRoZSBwZW5kaW5nCj4gc3RhdGVzIGluIGt2beKAmXMgdmdpYywgd2UgYWxzbyB0cnkg dG8gZmx1c2ggdGhlIHN0YXRlcyBvZiBWTFBJcyBpbiB0aGUKPiB2aXJ0dWFsIHBlbmRpbmcgdGFi bGVzIGludG8gZ3Vlc3QgUkFNLCBidXQgd2UgbmVlZCB0byBoYXZlIEdJQ3Y0LjEgYW5kCj4gc2Fm ZWx5IHVubWFwIHRoZSB2UEVzIGZpcnN0Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNoZW5taW5nIEx1 IDxsdXNoZW5taW5nQGh1YXdlaS5jb20+Cj4gLS0tCj4gIGFyY2gvYXJtNjQva3ZtL3ZnaWMvdmdp Yy12My5jIHwgNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiAgMSBmaWxl IGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2FyY2gvYXJtNjQva3ZtL3ZnaWMvdmdpYy12My5jIAo+IGIvYXJjaC9hcm02NC9rdm0vdmdp Yy92Z2ljLXYzLmMKPiBpbmRleCA5Y2RmMzlhOTRhNjMuLmUxYjNhYTRiMmIxMiAxMDA2NDQKPiAt LS0gYS9hcmNoL2FybTY0L2t2bS92Z2ljL3ZnaWMtdjMuYwo+ICsrKyBiL2FyY2gvYXJtNjQva3Zt L3ZnaWMvdmdpYy12My5jCj4gQEAgLTEsNiArMSw4IEBACj4gIC8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wLW9ubHkKPiAKPiAgI2luY2x1ZGUgPGxpbnV4L2lycWNoaXAvYXJtLWdp Yy12My5oPgo+ICsjaW5jbHVkZSA8bGludXgvaXJxLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pcnFk b21haW4uaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2t2bS5oPgo+ICAjaW5jbHVkZSA8bGludXgva3Zt X2hvc3QuaD4KPiAgI2luY2x1ZGUgPGt2bS9hcm1fdmdpYy5oPgo+IEBAIC0zNTYsNiArMzU4LDM5 IEBAIGludCB2Z2ljX3YzX2xwaV9zeW5jX3BlbmRpbmdfc3RhdHVzKHN0cnVjdCBrdm0KPiAqa3Zt LCBzdHJ1Y3QgdmdpY19pcnEgKmlycSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gCj4gKy8qCj4gKyAq IFdpdGggR0lDdjQuMSwgd2UgY2FuIGdldCB0aGUgVkxQSSdzIHBlbmRpbmcgc3RhdGUgYWZ0ZXIg dW5tYXBwaW5nCj4gKyAqIHRoZSB2UEUuIFRoZSBkZWFjdGl2YXRpb24gb2YgdGhlIGRvb3JiZWxs IGludGVycnVwdCB3aWxsIHRyaWdnZXIKPiArICogdGhlIHVubWFwcGluZyBvZiB0aGUgYXNzb2Np YXRlZCB2UEUuCj4gKyAqLwo+ICtzdGF0aWMgdm9pZCBnZXRfdmxwaV9zdGF0ZV9wcmUoc3RydWN0 IHZnaWNfZGlzdCAqZGlzdCkKPiArewo+ICsJc3RydWN0IGlycV9kZXNjICpkZXNjOwo+ICsJaW50 IGk7Cj4gKwo+ICsJaWYgKCFrdm1fdmdpY19nbG9iYWxfc3RhdGUuaGFzX2dpY3Y0XzEpCj4gKwkJ cmV0dXJuOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBkaXN0LT5pdHNfdm0ubnJfdnBlczsgaSsr KSB7Cj4gKwkJZGVzYyA9IGlycV90b19kZXNjKGRpc3QtPml0c192bS52cGVzW2ldLT5pcnEpOwo+ ICsJCWlycV9kb21haW5fZGVhY3RpdmF0ZV9pcnEoaXJxX2Rlc2NfZ2V0X2lycV9kYXRhKGRlc2Mp KTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZ2V0X3ZscGlfc3RhdGVfcG9zdChzdHJ1 Y3QgdmdpY19kaXN0ICpkaXN0KQoKbml0OiB0aGUgbmFtaW5nIGZlZWxzIGEgYml0Li4uIG9kZC4g UHJlL3Bvc3Qgd2hhdD8KCj4gK3sKPiArCXN0cnVjdCBpcnFfZGVzYyAqZGVzYzsKPiArCWludCBp Owo+ICsKPiArCWlmICgha3ZtX3ZnaWNfZ2xvYmFsX3N0YXRlLmhhc19naWN2NF8xKQo+ICsJCXJl dHVybjsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgZGlzdC0+aXRzX3ZtLm5yX3ZwZXM7IGkrKykg ewo+ICsJCWRlc2MgPSBpcnFfdG9fZGVzYyhkaXN0LT5pdHNfdm0udnBlc1tpXS0+aXJxKTsKPiAr CQlpcnFfZG9tYWluX2FjdGl2YXRlX2lycShpcnFfZGVzY19nZXRfaXJxX2RhdGEoZGVzYyksIGZh bHNlKTsKPiArCX0KPiArfQo+ICsKPiAgLyoqCj4gICAqIHZnaWNfdjNfc2F2ZV9wZW5kaW5nX3Rh YmxlcyAtIFNhdmUgdGhlIHBlbmRpbmcgdGFibGVzIGludG8gZ3Vlc3QgCj4gUkFNCj4gICAqIGt2 bSBsb2NrIGFuZCBhbGwgdmNwdSBsb2NrIG11c3QgYmUgaGVsZAo+IEBAIC0zNjUsMTQgKzQwMCwx NyBAQCBpbnQgdmdpY192M19zYXZlX3BlbmRpbmdfdGFibGVzKHN0cnVjdCBrdm0gKmt2bSkKPiAg CXN0cnVjdCB2Z2ljX2Rpc3QgKmRpc3QgPSAma3ZtLT5hcmNoLnZnaWM7Cj4gIAlzdHJ1Y3Qgdmdp Y19pcnEgKmlycTsKPiAgCWdwYV90IGxhc3RfcHRyID0gfihncGFfdCkwOwo+IC0JaW50IHJldDsK PiArCWludCByZXQgPSAwOwo+ICAJdTggdmFsOwo+IAo+ICsJZ2V0X3ZscGlfc3RhdGVfcHJlKGRp c3QpOwo+ICsKPiAgCWxpc3RfZm9yX2VhY2hfZW50cnkoaXJxLCAmZGlzdC0+bHBpX2xpc3RfaGVh ZCwgbHBpX2xpc3QpIHsKPiAgCQlpbnQgYnl0ZV9vZmZzZXQsIGJpdF9ucjsKPiAgCQlzdHJ1Y3Qg a3ZtX3ZjcHUgKnZjcHU7Cj4gIAkJZ3BhX3QgcGVuZGJhc2UsIHB0cjsKPiAgCQlib29sIHN0b3Jl ZDsKPiArCQlib29sIGlzX3BlbmRpbmcgPSBpcnEtPnBlbmRpbmdfbGF0Y2g7Cj4gCj4gIAkJdmNw dSA9IGlycS0+dGFyZ2V0X3ZjcHU7Cj4gIAkJaWYgKCF2Y3B1KQo+IEBAIC0zODcsMjQgKzQyNSwz NiBAQCBpbnQgdmdpY192M19zYXZlX3BlbmRpbmdfdGFibGVzKHN0cnVjdCBrdm0gKmt2bSkKPiAg CQlpZiAocHRyICE9IGxhc3RfcHRyKSB7Cj4gIAkJCXJldCA9IGt2bV9yZWFkX2d1ZXN0X2xvY2so a3ZtLCBwdHIsICZ2YWwsIDEpOwo+ICAJCQlpZiAocmV0KQo+IC0JCQkJcmV0dXJuIHJldDsKPiAr CQkJCWdvdG8gb3V0Owo+ICAJCQlsYXN0X3B0ciA9IHB0cjsKPiAgCQl9Cj4gCj4gIAkJc3RvcmVk ID0gdmFsICYgKDFVIDw8IGJpdF9ucik7Cj4gLQkJaWYgKHN0b3JlZCA9PSBpcnEtPnBlbmRpbmdf bGF0Y2gpCj4gKwo+ICsJCS8qIGFsc28gZmx1c2ggaHcgcGVuZGluZyBzdGF0ZSAqLwoKVGhpcyBj b21tZW50IGxvb2tzIG91dCBvZiBwbGFjZSwgYXMgd2UgYXJlbid0IGZsdXNoaW5nIGFueXRoaW5n LgoKPiArCQlpZiAoaXJxLT5odykgewo+ICsJCQlXQVJOX1JBVEVMSU1JVChpcnFfZ2V0X2lycWNo aXBfc3RhdGUoaXJxLT5ob3N0X2lycSwKPiArCQkJCQkJSVJRQ0hJUF9TVEFURV9QRU5ESU5HLCAm aXNfcGVuZGluZyksCj4gKwkJCQkgICAgICAgIklSUSAlZCIsIGlycS0+aG9zdF9pcnEpOwoKSXNu J3QgdGhpcyBnb2luZyB0byB3YXJuIGxpa2UgbWFkIG9uIGEgR0lDdjQuMCBzeXN0ZW0gd2hlcmUg dGhpcywgYnkgCmRlZmluaXRpb24sCndpbGwgZ2VuZXJhdGUgYW4gZXJyb3I/Cgo+ICsJCX0KPiAr Cj4gKwkJaWYgKHN0b3JlZCA9PSBpc19wZW5kaW5nKQo+ICAJCQljb250aW51ZTsKPiAKPiAtCQlp ZiAoaXJxLT5wZW5kaW5nX2xhdGNoKQo+ICsJCWlmIChpc19wZW5kaW5nKQo+ICAJCQl2YWwgfD0g MSA8PCBiaXRfbnI7Cj4gIAkJZWxzZQo+ICAJCQl2YWwgJj0gfigxIDw8IGJpdF9ucik7Cj4gCj4g IAkJcmV0ID0ga3ZtX3dyaXRlX2d1ZXN0X2xvY2soa3ZtLCBwdHIsICZ2YWwsIDEpOwo+ICAJCWlm IChyZXQpCj4gLQkJCXJldHVybiByZXQ7Cj4gKwkJCWdvdG8gb3V0Owo+ICAJfQo+IC0JcmV0dXJu IDA7Cj4gKwo+ICtvdXQ6Cj4gKwlnZXRfdmxwaV9zdGF0ZV9wb3N0KGRpc3QpOwoKVGhpcyBiaXQg d29ycmllcyBtZTogeW91IGhhdmUgdW5tYXBwZWQgdGhlIFZQRXMsIHNvIGFueSBpbnRlcnJ1cHQg dGhhdCAKaGFzIGJlZW4KZ2VuZXJhdGVkIGR1cmluZyB0aGF0IHBoYXNlIGlzIG5vdyBmb3JldmVy IGxvc3QgKHRoZSBHSUMgZG9lc24ndCBoYXZlIApvd25lcnNoaXAKb2YgdGhlIHBlbmRpbmcgdGFi bGVzKS4KCkRvIHlvdSByZWFsbHkgZXhwZWN0IHRoZSBWTSB0byBiZSByZXN0YXJ0YWJsZSBmcm9t IHRoYXQgcG9pbnQ/IEkgZG9uJ3QgCnNlZSBob3cKdGhpcyBpcyBwb3NzaWJsZS4KCj4gKwo+ICsJ cmV0dXJuIHJldDsKPiAgfQo+IAo+ICAvKioKClRoYW5rcywKCiAgICAgICAgIE0uCi0tIApKYXp6 IGlzIG5vdCBkZWFkLiBJdCBqdXN0IHNtZWxscyBmdW5ueS4uLgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxp c3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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 X-Spam-Level: X-Spam-Status: No, score=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 C31C2C2D0E4 for ; Mon, 23 Nov 2020 09:19:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6AD5120756 for ; Mon, 23 Nov 2020 09:19:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="zL0RtJ76" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726865AbgKWJSd (ORCPT ); Mon, 23 Nov 2020 04:18:33 -0500 Received: from mail.kernel.org ([198.145.29.99]:40236 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725287AbgKWJSd (ORCPT ); Mon, 23 Nov 2020 04:18:33 -0500 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1F88B20756; Mon, 23 Nov 2020 09:18:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1606123112; bh=C/lxpp7FZiY5qUG7l0C+bvs6KtaP5gm2+UNhTyakw90=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=zL0RtJ76w/RcGBo6LYyu2dL+g9/Myj0NLlpLkQxp9QHkYvyucxrn9RRexgpzCHSBb 4rbJtKhuSJz62Viua0gYXO/TeIMCOJkvYvvo2RCMsiNeSFDe9+NL7OtSye3tFFgCnw BhNc8j5c/xQcFOi2JX+9+lELUJviA+g+R6EtT6TU= Received: from disco-boy.misterjones.org ([51.254.78.96] helo=www.loen.fr) by disco-boy.misterjones.org with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94) (envelope-from ) id 1kh7zR-00Cro8-Th; Mon, 23 Nov 2020 09:18:30 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Mon, 23 Nov 2020 09:18:29 +0000 From: Marc Zyngier To: Shenming Lu Cc: James Morse , Julien Thierry , Suzuki K Poulose , Eric Auger , linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Christoffer Dall , Alex Williamson , Kirti Wankhede , Cornelia Huck , Neo Jia , wanghaibin.wang@huawei.com, yuzenghui@huawei.com Subject: Re: [RFC PATCH v1 2/4] KVM: arm64: GICv4.1: Try to save hw pending state in save_pending_tables In-Reply-To: <20201123065410.1915-3-lushenming@huawei.com> References: <20201123065410.1915-1-lushenming@huawei.com> <20201123065410.1915-3-lushenming@huawei.com> User-Agent: Roundcube Webmail/1.4.9 Message-ID: X-Sender: maz@kernel.org X-SA-Exim-Connect-IP: 51.254.78.96 X-SA-Exim-Rcpt-To: lushenming@huawei.com, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.com, eric.auger@redhat.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, christoffer.dall@arm.com, alex.williamson@redhat.com, kwankhede@nvidia.com, cohuck@redhat.com, cjia@nvidia.com, wanghaibin.wang@huawei.com, yuzenghui@huawei.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org On 2020-11-23 06:54, Shenming Lu wrote: > After pausing all vCPUs and devices capable of interrupting, in order ^^^^^^^^^^^^^^^^^ See my comment below about this. > to save the information of all interrupts, besides flushing the pending > states in kvm’s vgic, we also try to flush the states of VLPIs in the > virtual pending tables into guest RAM, but we need to have GICv4.1 and > safely unmap the vPEs first. > > Signed-off-by: Shenming Lu > --- > arch/arm64/kvm/vgic/vgic-v3.c | 62 +++++++++++++++++++++++++++++++---- > 1 file changed, 56 insertions(+), 6 deletions(-) > > diff --git a/arch/arm64/kvm/vgic/vgic-v3.c > b/arch/arm64/kvm/vgic/vgic-v3.c > index 9cdf39a94a63..e1b3aa4b2b12 100644 > --- a/arch/arm64/kvm/vgic/vgic-v3.c > +++ b/arch/arm64/kvm/vgic/vgic-v3.c > @@ -1,6 +1,8 @@ > // SPDX-License-Identifier: GPL-2.0-only > > #include > +#include > +#include > #include > #include > #include > @@ -356,6 +358,39 @@ int vgic_v3_lpi_sync_pending_status(struct kvm > *kvm, struct vgic_irq *irq) > return 0; > } > > +/* > + * With GICv4.1, we can get the VLPI's pending state after unmapping > + * the vPE. The deactivation of the doorbell interrupt will trigger > + * the unmapping of the associated vPE. > + */ > +static void get_vlpi_state_pre(struct vgic_dist *dist) > +{ > + struct irq_desc *desc; > + int i; > + > + if (!kvm_vgic_global_state.has_gicv4_1) > + return; > + > + for (i = 0; i < dist->its_vm.nr_vpes; i++) { > + desc = irq_to_desc(dist->its_vm.vpes[i]->irq); > + irq_domain_deactivate_irq(irq_desc_get_irq_data(desc)); > + } > +} > + > +static void get_vlpi_state_post(struct vgic_dist *dist) nit: the naming feels a bit... odd. Pre/post what? > +{ > + struct irq_desc *desc; > + int i; > + > + if (!kvm_vgic_global_state.has_gicv4_1) > + return; > + > + for (i = 0; i < dist->its_vm.nr_vpes; i++) { > + desc = irq_to_desc(dist->its_vm.vpes[i]->irq); > + irq_domain_activate_irq(irq_desc_get_irq_data(desc), false); > + } > +} > + > /** > * vgic_v3_save_pending_tables - Save the pending tables into guest > RAM > * kvm lock and all vcpu lock must be held > @@ -365,14 +400,17 @@ int vgic_v3_save_pending_tables(struct kvm *kvm) > struct vgic_dist *dist = &kvm->arch.vgic; > struct vgic_irq *irq; > gpa_t last_ptr = ~(gpa_t)0; > - int ret; > + int ret = 0; > u8 val; > > + get_vlpi_state_pre(dist); > + > list_for_each_entry(irq, &dist->lpi_list_head, lpi_list) { > int byte_offset, bit_nr; > struct kvm_vcpu *vcpu; > gpa_t pendbase, ptr; > bool stored; > + bool is_pending = irq->pending_latch; > > vcpu = irq->target_vcpu; > if (!vcpu) > @@ -387,24 +425,36 @@ int vgic_v3_save_pending_tables(struct kvm *kvm) > if (ptr != last_ptr) { > ret = kvm_read_guest_lock(kvm, ptr, &val, 1); > if (ret) > - return ret; > + goto out; > last_ptr = ptr; > } > > stored = val & (1U << bit_nr); > - if (stored == irq->pending_latch) > + > + /* also flush hw pending state */ This comment looks out of place, as we aren't flushing anything. > + if (irq->hw) { > + WARN_RATELIMIT(irq_get_irqchip_state(irq->host_irq, > + IRQCHIP_STATE_PENDING, &is_pending), > + "IRQ %d", irq->host_irq); Isn't this going to warn like mad on a GICv4.0 system where this, by definition, will generate an error? > + } > + > + if (stored == is_pending) > continue; > > - if (irq->pending_latch) > + if (is_pending) > val |= 1 << bit_nr; > else > val &= ~(1 << bit_nr); > > ret = kvm_write_guest_lock(kvm, ptr, &val, 1); > if (ret) > - return ret; > + goto out; > } > - return 0; > + > +out: > + get_vlpi_state_post(dist); This bit worries me: you have unmapped the VPEs, so any interrupt that has been generated during that phase is now forever lost (the GIC doesn't have ownership of the pending tables). Do you really expect the VM to be restartable from that point? I don't see how this is possible. > + > + return ret; > } > > /** Thanks, M. -- Jazz is not dead. It just smells funny...