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=-10.0 required=3.0 tests=INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT 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 C4381C4740A for ; Mon, 9 Sep 2019 13:49:42 +0000 (UTC) Received: from mm01.cs.columbia.edu (mm01.cs.columbia.edu [128.59.11.253]) by mail.kernel.org (Postfix) with ESMTP id 8388D2196E for ; Mon, 9 Sep 2019 13:49:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8388D2196E 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 3A6D14A522; Mon, 9 Sep 2019 09:49:42 -0400 (EDT) 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 8owBKa4Eun-u; Mon, 9 Sep 2019 09:49:40 -0400 (EDT) Received: from mm01.cs.columbia.edu (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id CC1B84A52F; Mon, 9 Sep 2019 09:49:40 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 04EFB4A4FF for ; Mon, 9 Sep 2019 09:49:39 -0400 (EDT) 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 wjnqRvk+cCAK for ; Mon, 9 Sep 2019 09:49:36 -0400 (EDT) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 2A3BF4A5E3 for ; Mon, 9 Sep 2019 09:49:35 -0400 (EDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DF3461C01; Mon, 9 Sep 2019 06:49:34 -0700 (PDT) Received: from localhost.localdomain (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A9FD53F59C; Mon, 9 Sep 2019 06:49:32 -0700 (PDT) From: Marc Zyngier To: Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= Subject: [PATCH 17/17] KVM: arm/arm64: vgic: Allow more than 256 vcpus for KVM_IRQ_LINE Date: Mon, 9 Sep 2019 14:48:07 +0100 Message-Id: <20190909134807.27978-18-maz@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190909134807.27978-1-maz@kernel.org> References: <20190909134807.27978-1-maz@kernel.org> MIME-Version: 1.0 Cc: kvm@vger.kernel.org, Andre Przywara , 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu V2hpbGUgcGFydHMgb2YgdGhlIFZHSUMgc3VwcG9ydCBhIGxhcmdlIG51bWJlciBvZiB2Y3B1cyAo d2UKYnJhdmVseSBhbGxvdyB1cCB0byA1MTIpLCBvdGhlciBwYXJ0cyBhcmUgbW9yZSBsaW1pdGVk LgoKT25lIG9mIHRoZXNlIGxpbWl0cyBpcyB2aXNpYmxlIGluIHRoZSBLVk1fSVJRX0xJTkUgaW9j dGwsIHdoaWNoCm9ubHkgYWxsb3dzIDI1NiB2Y3B1cyB0byBiZSBzaWduYWxsZWQgd2hlbiB1c2lu ZyB0aGUgQ1BVIG9yIFBQSQp0eXBlcy4gVW5mb3J0dW5hdGVseSwgd2UndmUgY29ybmVyZWQgb3Vy c2VsdmVzIGJhZGx5IGJ5IGFsbG9jYXRpbmcKYWxsIHRoZSBiaXRzIGluIHRoZSBpcnEgZmllbGQu CgpTaW5jZSB0aGUgaXJxX3R5cGUgc3ViZmllbGQgKDggYml0IHdpZGUpIGlzIGN1cnJlbnRseSBv bmx5IHRha2luZwp0aGUgdmFsdWVzIDAsIDEgYW5kIDIgKGFuZCB3ZSBoYXZlIGJlZW4gY2FyZWZ1 bCBub3QgdG8gYWxsb3cgYW55dGhpbmcKZWxzZSksIGxldCdzIHJlZHVjZSB0aGlzIGZpZWxkIHRv IG9ubHkgNCBiaXRzLCBhbmQgYWxsb2NhdGUgdGhlCnJlbWFpbmluZyA0IGJpdHMgdG8gYSB2Y3B1 Ml9pbmRleCwgd2hpY2ggYWN0cyBhcyBhIG11bHRpcGxpZXI6CgogIHZjcHVfaWQgPSAyNTYgKiB2 Y3B1Ml9pbmRleCArIHZjcHVfaW5kZXgKCldpdGggdGhhdCwgYW5kIGEgbmV3IGNhcGFiaWxpdHkg KEtWTV9DQVBfQVJNX0lSUV9MSU5FX0xBWU9VVF8yKQphbGxvd2luZyB0aGlzIHRvIGJlIGRpc2Nv dmVyZWQsIGl0IGJlY29tZXMgcG9zc2libGUgdG8gaW5qZWN0ClBQSXMgdG8gdXAgdG8gNDA5NiB2 Y3B1cy4gQnV0IHBsZWFzZSBqdXN0IGRvbid0LgoKV2hpbHN0IHdlJ3JlIHRoZXJlLCBhZGQgYSBj bGFyaWZpY2F0aW9uIGFib3V0IHRoZSB1c2Ugb2YgS1ZNX0lSUV9MSU5FCm9uIGFybSwgd2hpY2gg aXMgbm90IGNvbXBsZXRlbHkgY29uZGl0aW9ubmVkIGJ5IEtWTV9DQVBfSVJRQ0hJUC4KClJlcG9y dGVkLWJ5OiBaZW5naHVpIFl1IDx5dXplbmdodWlAaHVhd2VpLmNvbT4KUmV2aWV3ZWQtYnk6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IFplbmdodWkgWXUg PHl1emVuZ2h1aUBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXJjIFp5bmdpZXIgPG1hekBr ZXJuZWwub3JnPgotLS0KIERvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnR4dCAgICB8IDEyICsr KysrKysrKystLQogYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9rdm0uaCAgIHwgIDQgKysrLQog YXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oIHwgIDQgKysrLQogaW5jbHVkZS91YXBp L2xpbnV4L2t2bS5oICAgICAgICAgIHwgIDEgKwogdmlydC9rdm0vYXJtL2FybS5jICAgICAgICAg ICAgICAgIHwgIDIgKysKIDUgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS50eHQgYi9E b2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS50eHQKaW5kZXggMmQwNjc3NjdiNjE3Li4yNTkzMWNh MWNiMzggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnR4dAorKysgYi9E b2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS50eHQKQEAgLTc1Myw4ICs3NTMsOCBAQCBpbi1rZXJu ZWwgaXJxY2hpcCAoR0lDKSwgYW5kIGZvciBpbi1rZXJuZWwgaXJxY2hpcCBjYW4gdGVsbCB0aGUg R0lDIHRvCiB1c2UgUFBJcyBkZXNpZ25hdGVkIGZvciBzcGVjaWZpYyBjcHVzLiAgVGhlIGlycSBm aWVsZCBpcyBpbnRlcnByZXRlZAogbGlrZSB0aGlzOgogCi0gwqBiaXRzOiAgfCAzMSAuLi4gMjQg fCAyMyAgLi4uIDE2IHwgMTUgICAgLi4uICAgIDAgfAotICBmaWVsZDogfCBpcnFfdHlwZSAgfCB2 Y3B1X2luZGV4IHwgICAgIGlycV9pZCAgICAgfAorIMKgYml0czogIHwgIDMxIC4uLiAyOCAgfCAy NyAuLi4gMjQgfCAyMyAgLi4uIDE2IHwgMTUgLi4uIDAgfAorICBmaWVsZDogfCB2Y3B1Ml9pbmRl eCB8IGlycV90eXBlICB8IHZjcHVfaW5kZXggfCAgaXJxX2lkICB8CiAKIFRoZSBpcnFfdHlwZSBm aWVsZCBoYXMgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CiAtIGlycV90eXBlWzBdOiBvdXQtb2Yta2Vy bmVsIEdJQzogaXJxX2lkIDAgaXMgSVJRLCBpcnFfaWQgMSBpcyBGSVEKQEAgLTc2Niw2ICs3NjYs MTQgQEAgVGhlIGlycV90eXBlIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIHZhbHVlczoKIAogSW4g Ym90aCBjYXNlcywgbGV2ZWwgaXMgdXNlZCB0byBhc3NlcnQvZGVhc3NlcnQgdGhlIGxpbmUuCiAK K1doZW4gS1ZNX0NBUF9BUk1fSVJRX0xJTkVfTEFZT1VUXzIgaXMgc3VwcG9ydGVkLCB0aGUgdGFy Z2V0IHZjcHUgaXMKK2lkZW50aWZpZWQgYXMgKDI1NiAqIHZjcHUyX2luZGV4ICsgdmNwdV9pbmRl eCkuIE90aGVyd2lzZSwgdmNwdTJfaW5kZXgKK211c3QgYmUgemVyby4KKworTm90ZSB0aGF0IG9u IGFybS9hcm02NCwgdGhlIEtWTV9DQVBfSVJRQ0hJUCBjYXBhYmlsaXR5IG9ubHkgY29uZGl0aW9u cworaW5qZWN0aW9uIG9mIGludGVycnVwdHMgZm9yIHRoZSBpbi1rZXJuZWwgaXJxY2hpcC4gS1ZN X0lSUV9MSU5FIGNhbiBhbHdheXMKK2JlIHVzZWQgZm9yIGEgdXNlcnNwYWNlIGludGVycnVwdCBj b250cm9sbGVyLgorCiBzdHJ1Y3Qga3ZtX2lycV9sZXZlbCB7CiAJdW5pb24gewogCQlfX3UzMiBp cnE7ICAgICAvKiBHU0kgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20v a3ZtLmggYi9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oCmluZGV4IGE0MjE3YzFhNWQw MS4uMjc2OTM2MGYxOTVjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL2t2 bS5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKQEAgLTI2Niw4ICsyNjYs MTAgQEAgc3RydWN0IGt2bV92Y3B1X2V2ZW50cyB7CiAjZGVmaW5lICAgS1ZNX0RFVl9BUk1fSVRT X0NUUkxfUkVTRVQJCTQKIAogLyogS1ZNX0lSUV9MSU5FIGlycSBmaWVsZCBpbmRleCB2YWx1ZXMg Ki8KKyNkZWZpbmUgS1ZNX0FSTV9JUlFfVkNQVTJfU0hJRlQJCTI4CisjZGVmaW5lIEtWTV9BUk1f SVJRX1ZDUFUyX01BU0sJCTB4ZgogI2RlZmluZSBLVk1fQVJNX0lSUV9UWVBFX1NISUZUCQkyNAot I2RlZmluZSBLVk1fQVJNX0lSUV9UWVBFX01BU0sJCTB4ZmYKKyNkZWZpbmUgS1ZNX0FSTV9JUlFf VFlQRV9NQVNLCQkweGYKICNkZWZpbmUgS1ZNX0FSTV9JUlFfVkNQVV9TSElGVAkJMTYKICNkZWZp bmUgS1ZNX0FSTV9JUlFfVkNQVV9NQVNLCQkweGZmCiAjZGVmaW5lIEtWTV9BUk1fSVJRX05VTV9T SElGVAkJMApkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oIGIv YXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oCmluZGV4IDlhNTA3NzE2YWUyZi4uNjdj MjFmOWJkYmFkIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgK KysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oCkBAIC0zMjUsOCArMzI1LDEw IEBAIHN0cnVjdCBrdm1fdmNwdV9ldmVudHMgewogI2RlZmluZSAgIEtWTV9BUk1fVkNQVV9USU1F Ul9JUlFfUFRJTUVSCQkxCiAKIC8qIEtWTV9JUlFfTElORSBpcnEgZmllbGQgaW5kZXggdmFsdWVz ICovCisjZGVmaW5lIEtWTV9BUk1fSVJRX1ZDUFUyX1NISUZUCQkyOAorI2RlZmluZSBLVk1fQVJN X0lSUV9WQ1BVMl9NQVNLCQkweGYKICNkZWZpbmUgS1ZNX0FSTV9JUlFfVFlQRV9TSElGVAkJMjQK LSNkZWZpbmUgS1ZNX0FSTV9JUlFfVFlQRV9NQVNLCQkweGZmCisjZGVmaW5lIEtWTV9BUk1fSVJR X1RZUEVfTUFTSwkJMHhmCiAjZGVmaW5lIEtWTV9BUk1fSVJRX1ZDUFVfU0hJRlQJCTE2CiAjZGVm aW5lIEtWTV9BUk1fSVJRX1ZDUFVfTUFTSwkJMHhmZgogI2RlZmluZSBLVk1fQVJNX0lSUV9OVU1f U0hJRlQJCTAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUv dWFwaS9saW51eC9rdm0uaAppbmRleCA1ZTNmMTJkNTM1OWUuLjU0MTRiNjU4OGZiYiAxMDA2NDQK LS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9r dm0uaApAQCAtOTk2LDYgKzk5Niw3IEBAIHN0cnVjdCBrdm1fcHBjX3Jlc2l6ZV9ocHQgewogI2Rl ZmluZSBLVk1fQ0FQX0FSTV9QVFJBVVRIX0FERFJFU1MgMTcxCiAjZGVmaW5lIEtWTV9DQVBfQVJN X1BUUkFVVEhfR0VORVJJQyAxNzIKICNkZWZpbmUgS1ZNX0NBUF9QTVVfRVZFTlRfRklMVEVSIDE3 MworI2RlZmluZSBLVk1fQ0FQX0FSTV9JUlFfTElORV9MQVlPVVRfMiAxNzQKIAogI2lmZGVmIEtW TV9DQVBfSVJRX1JPVVRJTkcKIApkaWZmIC0tZ2l0IGEvdmlydC9rdm0vYXJtL2FybS5jIGIvdmly dC9rdm0vYXJtL2FybS5jCmluZGV4IDM1YTA2OTgxNWJhZi4uODZjNmFhMWNiNThlIDEwMDY0NAot LS0gYS92aXJ0L2t2bS9hcm0vYXJtLmMKKysrIGIvdmlydC9rdm0vYXJtL2FybS5jCkBAIC0xOTYs NiArMTk2LDcgQEAgaW50IGt2bV92bV9pb2N0bF9jaGVja19leHRlbnNpb24oc3RydWN0IGt2bSAq a3ZtLCBsb25nIGV4dCkKIAljYXNlIEtWTV9DQVBfTVBfU1RBVEU6CiAJY2FzZSBLVk1fQ0FQX0lN TUVESUFURV9FWElUOgogCWNhc2UgS1ZNX0NBUF9WQ1BVX0VWRU5UUzoKKwljYXNlIEtWTV9DQVBf QVJNX0lSUV9MSU5FX0xBWU9VVF8yOgogCQlyID0gMTsKIAkJYnJlYWs7CiAJY2FzZSBLVk1fQ0FQ X0FSTV9TRVRfREVWSUNFX0FERFI6CkBAIC04ODgsNiArODg5LDcgQEAgaW50IGt2bV92bV9pb2N0 bF9pcnFfbGluZShzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1faXJxX2xldmVsICppcnFfbGV2 ZWwsCiAKIAlpcnFfdHlwZSA9IChpcnEgPj4gS1ZNX0FSTV9JUlFfVFlQRV9TSElGVCkgJiBLVk1f QVJNX0lSUV9UWVBFX01BU0s7CiAJdmNwdV9pZHggPSAoaXJxID4+IEtWTV9BUk1fSVJRX1ZDUFVf U0hJRlQpICYgS1ZNX0FSTV9JUlFfVkNQVV9NQVNLOworCXZjcHVfaWR4ICs9ICgoaXJxID4+IEtW TV9BUk1fSVJRX1ZDUFUyX1NISUZUKSAmIEtWTV9BUk1fSVJRX1ZDUFUyX01BU0spICogKEtWTV9B Uk1fSVJRX1ZDUFVfTUFTSyArIDEpOwogCWlycV9udW0gPSAoaXJxID4+IEtWTV9BUk1fSVJRX05V TV9TSElGVCkgJiBLVk1fQVJNX0lSUV9OVU1fTUFTSzsKIAogCXRyYWNlX2t2bV9pcnFfbGluZShp cnFfdHlwZSwgdmNwdV9pZHgsIGlycV9udW0sIGlycV9sZXZlbC0+bGV2ZWwpOwotLSAKMi4yMC4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprdm1hcm0g bWFpbGluZyBsaXN0Cmt2bWFybUBsaXN0cy5jcy5jb2x1bWJpYS5lZHUKaHR0cHM6Ly9saXN0cy5j cy5jb2x1bWJpYS5lZHUvbWFpbG1hbi9saXN0aW5mby9rdm1hcm0K 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=-10.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 1633FC4740C for ; Mon, 9 Sep 2019 13:53:44 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 DBFAE2196E for ; Mon, 9 Sep 2019 13:53:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TUu9ftKR" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DBFAE2196E 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+infradead-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=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Md9TC/M3Sexz68WVoTy4EBNV58HTzez6EKQ0mDBXRyE=; b=TUu9ftKRVvlhlA tNKkzxK3yptbowyMjiyhrbYtM9D0yRyJMiwGcJsNG5ltg41yDwwpi4A+PeQkcRsj6Xjvssz3gRT/m gyAURejUQ3/uxkSS28qkmIGD8RR+8FquzwPvWYXiqz0gih4/NE+/pGLF8EwT8K3HHhjXBL82UL3Px ifqHG+jw4Hhz16exQPCAcZa76zwSUS3tgvK3Zufiaw6qVzpNf4m57A/HlvBEj4wPf868zoplipCw3 HIRv65/YYqIzXQrH+ACzR62hIsDIf6O0Vb6vdqkRPBPz3FGHaTW2sFIL5j54jU+xkaZviMUZKSbvc uMZTjaSIelQva1X5/6ZA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i7K6q-0007aD-SQ; Mon, 09 Sep 2019 13:53:36 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i7K2x-0002uv-5B for linux-arm-kernel@lists.infradead.org; Mon, 09 Sep 2019 13:49:36 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DF3461C01; Mon, 9 Sep 2019 06:49:34 -0700 (PDT) Received: from localhost.localdomain (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A9FD53F59C; Mon, 9 Sep 2019 06:49:32 -0700 (PDT) From: Marc Zyngier To: Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= Subject: [PATCH 17/17] KVM: arm/arm64: vgic: Allow more than 256 vcpus for KVM_IRQ_LINE Date: Mon, 9 Sep 2019 14:48:07 +0100 Message-Id: <20190909134807.27978-18-maz@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190909134807.27978-1-maz@kernel.org> References: <20190909134807.27978-1-maz@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190909_064935_371817_3EC98792 X-CRM114-Status: GOOD ( 17.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: Mark Rutland , kvm@vger.kernel.org, Andre Przywara , Eric Auger , James Morse , Zenghui Yu , Alexandru Elisei , kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org V2hpbGUgcGFydHMgb2YgdGhlIFZHSUMgc3VwcG9ydCBhIGxhcmdlIG51bWJlciBvZiB2Y3B1cyAo d2UKYnJhdmVseSBhbGxvdyB1cCB0byA1MTIpLCBvdGhlciBwYXJ0cyBhcmUgbW9yZSBsaW1pdGVk LgoKT25lIG9mIHRoZXNlIGxpbWl0cyBpcyB2aXNpYmxlIGluIHRoZSBLVk1fSVJRX0xJTkUgaW9j dGwsIHdoaWNoCm9ubHkgYWxsb3dzIDI1NiB2Y3B1cyB0byBiZSBzaWduYWxsZWQgd2hlbiB1c2lu ZyB0aGUgQ1BVIG9yIFBQSQp0eXBlcy4gVW5mb3J0dW5hdGVseSwgd2UndmUgY29ybmVyZWQgb3Vy c2VsdmVzIGJhZGx5IGJ5IGFsbG9jYXRpbmcKYWxsIHRoZSBiaXRzIGluIHRoZSBpcnEgZmllbGQu CgpTaW5jZSB0aGUgaXJxX3R5cGUgc3ViZmllbGQgKDggYml0IHdpZGUpIGlzIGN1cnJlbnRseSBv bmx5IHRha2luZwp0aGUgdmFsdWVzIDAsIDEgYW5kIDIgKGFuZCB3ZSBoYXZlIGJlZW4gY2FyZWZ1 bCBub3QgdG8gYWxsb3cgYW55dGhpbmcKZWxzZSksIGxldCdzIHJlZHVjZSB0aGlzIGZpZWxkIHRv IG9ubHkgNCBiaXRzLCBhbmQgYWxsb2NhdGUgdGhlCnJlbWFpbmluZyA0IGJpdHMgdG8gYSB2Y3B1 Ml9pbmRleCwgd2hpY2ggYWN0cyBhcyBhIG11bHRpcGxpZXI6CgogIHZjcHVfaWQgPSAyNTYgKiB2 Y3B1Ml9pbmRleCArIHZjcHVfaW5kZXgKCldpdGggdGhhdCwgYW5kIGEgbmV3IGNhcGFiaWxpdHkg KEtWTV9DQVBfQVJNX0lSUV9MSU5FX0xBWU9VVF8yKQphbGxvd2luZyB0aGlzIHRvIGJlIGRpc2Nv dmVyZWQsIGl0IGJlY29tZXMgcG9zc2libGUgdG8gaW5qZWN0ClBQSXMgdG8gdXAgdG8gNDA5NiB2 Y3B1cy4gQnV0IHBsZWFzZSBqdXN0IGRvbid0LgoKV2hpbHN0IHdlJ3JlIHRoZXJlLCBhZGQgYSBj bGFyaWZpY2F0aW9uIGFib3V0IHRoZSB1c2Ugb2YgS1ZNX0lSUV9MSU5FCm9uIGFybSwgd2hpY2gg aXMgbm90IGNvbXBsZXRlbHkgY29uZGl0aW9ubmVkIGJ5IEtWTV9DQVBfSVJRQ0hJUC4KClJlcG9y dGVkLWJ5OiBaZW5naHVpIFl1IDx5dXplbmdodWlAaHVhd2VpLmNvbT4KUmV2aWV3ZWQtYnk6IEVy aWMgQXVnZXIgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IFplbmdodWkgWXUg PHl1emVuZ2h1aUBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXJjIFp5bmdpZXIgPG1hekBr ZXJuZWwub3JnPgotLS0KIERvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnR4dCAgICB8IDEyICsr KysrKysrKystLQogYXJjaC9hcm0vaW5jbHVkZS91YXBpL2FzbS9rdm0uaCAgIHwgIDQgKysrLQog YXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oIHwgIDQgKysrLQogaW5jbHVkZS91YXBp L2xpbnV4L2t2bS5oICAgICAgICAgIHwgIDEgKwogdmlydC9rdm0vYXJtL2FybS5jICAgICAgICAg ICAgICAgIHwgIDIgKysKIDUgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS50eHQgYi9E b2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS50eHQKaW5kZXggMmQwNjc3NjdiNjE3Li4yNTkzMWNh MWNiMzggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnR4dAorKysgYi9E b2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS50eHQKQEAgLTc1Myw4ICs3NTMsOCBAQCBpbi1rZXJu ZWwgaXJxY2hpcCAoR0lDKSwgYW5kIGZvciBpbi1rZXJuZWwgaXJxY2hpcCBjYW4gdGVsbCB0aGUg R0lDIHRvCiB1c2UgUFBJcyBkZXNpZ25hdGVkIGZvciBzcGVjaWZpYyBjcHVzLiAgVGhlIGlycSBm aWVsZCBpcyBpbnRlcnByZXRlZAogbGlrZSB0aGlzOgogCi0gwqBiaXRzOiAgfCAzMSAuLi4gMjQg fCAyMyAgLi4uIDE2IHwgMTUgICAgLi4uICAgIDAgfAotICBmaWVsZDogfCBpcnFfdHlwZSAgfCB2 Y3B1X2luZGV4IHwgICAgIGlycV9pZCAgICAgfAorIMKgYml0czogIHwgIDMxIC4uLiAyOCAgfCAy NyAuLi4gMjQgfCAyMyAgLi4uIDE2IHwgMTUgLi4uIDAgfAorICBmaWVsZDogfCB2Y3B1Ml9pbmRl eCB8IGlycV90eXBlICB8IHZjcHVfaW5kZXggfCAgaXJxX2lkICB8CiAKIFRoZSBpcnFfdHlwZSBm aWVsZCBoYXMgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CiAtIGlycV90eXBlWzBdOiBvdXQtb2Yta2Vy bmVsIEdJQzogaXJxX2lkIDAgaXMgSVJRLCBpcnFfaWQgMSBpcyBGSVEKQEAgLTc2Niw2ICs3NjYs MTQgQEAgVGhlIGlycV90eXBlIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIHZhbHVlczoKIAogSW4g Ym90aCBjYXNlcywgbGV2ZWwgaXMgdXNlZCB0byBhc3NlcnQvZGVhc3NlcnQgdGhlIGxpbmUuCiAK K1doZW4gS1ZNX0NBUF9BUk1fSVJRX0xJTkVfTEFZT1VUXzIgaXMgc3VwcG9ydGVkLCB0aGUgdGFy Z2V0IHZjcHUgaXMKK2lkZW50aWZpZWQgYXMgKDI1NiAqIHZjcHUyX2luZGV4ICsgdmNwdV9pbmRl eCkuIE90aGVyd2lzZSwgdmNwdTJfaW5kZXgKK211c3QgYmUgemVyby4KKworTm90ZSB0aGF0IG9u IGFybS9hcm02NCwgdGhlIEtWTV9DQVBfSVJRQ0hJUCBjYXBhYmlsaXR5IG9ubHkgY29uZGl0aW9u cworaW5qZWN0aW9uIG9mIGludGVycnVwdHMgZm9yIHRoZSBpbi1rZXJuZWwgaXJxY2hpcC4gS1ZN X0lSUV9MSU5FIGNhbiBhbHdheXMKK2JlIHVzZWQgZm9yIGEgdXNlcnNwYWNlIGludGVycnVwdCBj b250cm9sbGVyLgorCiBzdHJ1Y3Qga3ZtX2lycV9sZXZlbCB7CiAJdW5pb24gewogCQlfX3UzMiBp cnE7ICAgICAvKiBHU0kgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20v a3ZtLmggYi9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oCmluZGV4IGE0MjE3YzFhNWQw MS4uMjc2OTM2MGYxOTVjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9pbmNsdWRlL3VhcGkvYXNtL2t2 bS5oCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKQEAgLTI2Niw4ICsyNjYs MTAgQEAgc3RydWN0IGt2bV92Y3B1X2V2ZW50cyB7CiAjZGVmaW5lICAgS1ZNX0RFVl9BUk1fSVRT X0NUUkxfUkVTRVQJCTQKIAogLyogS1ZNX0lSUV9MSU5FIGlycSBmaWVsZCBpbmRleCB2YWx1ZXMg Ki8KKyNkZWZpbmUgS1ZNX0FSTV9JUlFfVkNQVTJfU0hJRlQJCTI4CisjZGVmaW5lIEtWTV9BUk1f SVJRX1ZDUFUyX01BU0sJCTB4ZgogI2RlZmluZSBLVk1fQVJNX0lSUV9UWVBFX1NISUZUCQkyNAot I2RlZmluZSBLVk1fQVJNX0lSUV9UWVBFX01BU0sJCTB4ZmYKKyNkZWZpbmUgS1ZNX0FSTV9JUlFf VFlQRV9NQVNLCQkweGYKICNkZWZpbmUgS1ZNX0FSTV9JUlFfVkNQVV9TSElGVAkJMTYKICNkZWZp bmUgS1ZNX0FSTV9JUlFfVkNQVV9NQVNLCQkweGZmCiAjZGVmaW5lIEtWTV9BUk1fSVJRX05VTV9T SElGVAkJMApkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oIGIv YXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oCmluZGV4IDlhNTA3NzE2YWUyZi4uNjdj MjFmOWJkYmFkIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgK KysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oCkBAIC0zMjUsOCArMzI1LDEw IEBAIHN0cnVjdCBrdm1fdmNwdV9ldmVudHMgewogI2RlZmluZSAgIEtWTV9BUk1fVkNQVV9USU1F Ul9JUlFfUFRJTUVSCQkxCiAKIC8qIEtWTV9JUlFfTElORSBpcnEgZmllbGQgaW5kZXggdmFsdWVz ICovCisjZGVmaW5lIEtWTV9BUk1fSVJRX1ZDUFUyX1NISUZUCQkyOAorI2RlZmluZSBLVk1fQVJN X0lSUV9WQ1BVMl9NQVNLCQkweGYKICNkZWZpbmUgS1ZNX0FSTV9JUlFfVFlQRV9TSElGVAkJMjQK LSNkZWZpbmUgS1ZNX0FSTV9JUlFfVFlQRV9NQVNLCQkweGZmCisjZGVmaW5lIEtWTV9BUk1fSVJR X1RZUEVfTUFTSwkJMHhmCiAjZGVmaW5lIEtWTV9BUk1fSVJRX1ZDUFVfU0hJRlQJCTE2CiAjZGVm aW5lIEtWTV9BUk1fSVJRX1ZDUFVfTUFTSwkJMHhmZgogI2RlZmluZSBLVk1fQVJNX0lSUV9OVU1f U0hJRlQJCTAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUv dWFwaS9saW51eC9rdm0uaAppbmRleCA1ZTNmMTJkNTM1OWUuLjU0MTRiNjU4OGZiYiAxMDA2NDQK LS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9r dm0uaApAQCAtOTk2LDYgKzk5Niw3IEBAIHN0cnVjdCBrdm1fcHBjX3Jlc2l6ZV9ocHQgewogI2Rl ZmluZSBLVk1fQ0FQX0FSTV9QVFJBVVRIX0FERFJFU1MgMTcxCiAjZGVmaW5lIEtWTV9DQVBfQVJN X1BUUkFVVEhfR0VORVJJQyAxNzIKICNkZWZpbmUgS1ZNX0NBUF9QTVVfRVZFTlRfRklMVEVSIDE3 MworI2RlZmluZSBLVk1fQ0FQX0FSTV9JUlFfTElORV9MQVlPVVRfMiAxNzQKIAogI2lmZGVmIEtW TV9DQVBfSVJRX1JPVVRJTkcKIApkaWZmIC0tZ2l0IGEvdmlydC9rdm0vYXJtL2FybS5jIGIvdmly dC9rdm0vYXJtL2FybS5jCmluZGV4IDM1YTA2OTgxNWJhZi4uODZjNmFhMWNiNThlIDEwMDY0NAot LS0gYS92aXJ0L2t2bS9hcm0vYXJtLmMKKysrIGIvdmlydC9rdm0vYXJtL2FybS5jCkBAIC0xOTYs NiArMTk2LDcgQEAgaW50IGt2bV92bV9pb2N0bF9jaGVja19leHRlbnNpb24oc3RydWN0IGt2bSAq a3ZtLCBsb25nIGV4dCkKIAljYXNlIEtWTV9DQVBfTVBfU1RBVEU6CiAJY2FzZSBLVk1fQ0FQX0lN TUVESUFURV9FWElUOgogCWNhc2UgS1ZNX0NBUF9WQ1BVX0VWRU5UUzoKKwljYXNlIEtWTV9DQVBf QVJNX0lSUV9MSU5FX0xBWU9VVF8yOgogCQlyID0gMTsKIAkJYnJlYWs7CiAJY2FzZSBLVk1fQ0FQ X0FSTV9TRVRfREVWSUNFX0FERFI6CkBAIC04ODgsNiArODg5LDcgQEAgaW50IGt2bV92bV9pb2N0 bF9pcnFfbGluZShzdHJ1Y3Qga3ZtICprdm0sIHN0cnVjdCBrdm1faXJxX2xldmVsICppcnFfbGV2 ZWwsCiAKIAlpcnFfdHlwZSA9IChpcnEgPj4gS1ZNX0FSTV9JUlFfVFlQRV9TSElGVCkgJiBLVk1f QVJNX0lSUV9UWVBFX01BU0s7CiAJdmNwdV9pZHggPSAoaXJxID4+IEtWTV9BUk1fSVJRX1ZDUFVf U0hJRlQpICYgS1ZNX0FSTV9JUlFfVkNQVV9NQVNLOworCXZjcHVfaWR4ICs9ICgoaXJxID4+IEtW TV9BUk1fSVJRX1ZDUFUyX1NISUZUKSAmIEtWTV9BUk1fSVJRX1ZDUFUyX01BU0spICogKEtWTV9B Uk1fSVJRX1ZDUFVfTUFTSyArIDEpOwogCWlycV9udW0gPSAoaXJxID4+IEtWTV9BUk1fSVJRX05V TV9TSElGVCkgJiBLVk1fQVJNX0lSUV9OVU1fTUFTSzsKIAogCXRyYWNlX2t2bV9pcnFfbGluZShp cnFfdHlwZSwgdmNwdV9pZHgsIGlycV9udW0sIGlycV9sZXZlbC0+bGV2ZWwpOwotLSAKMi4yMC4x CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo= 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=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 1DF6AC49ED9 for ; Mon, 9 Sep 2019 13:49:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E98B320828 for ; Mon, 9 Sep 2019 13:49:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1568036977; bh=MfggMCT1M6uuIEl5yVEbJg+JR2pyG+C4bwgJB6Uxj9E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=xar/WU3iHfIVBxOmLD8wosWavBut7ChtLoaLFn3Bm981Nzoq1Leq51UV1P7YKW+fc 60x5OU78tSIn6BJkYK8UoRUpq5igFHysPcuomZ2qqNCNqkrwIsVfljocdExX3AejGc 6UM4Y/PwtGawCeb+5Bwc0k6z2iYCiJwazROIWJEs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404951AbfIINtg (ORCPT ); Mon, 9 Sep 2019 09:49:36 -0400 Received: from foss.arm.com ([217.140.110.172]:50818 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404915AbfIINtf (ORCPT ); Mon, 9 Sep 2019 09:49:35 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DF3461C01; Mon, 9 Sep 2019 06:49:34 -0700 (PDT) Received: from localhost.localdomain (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A9FD53F59C; Mon, 9 Sep 2019 06:49:32 -0700 (PDT) From: Marc Zyngier To: Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= Cc: Alexandru Elisei , Andre Przywara , Eric Auger , James Morse , Mark Rutland , Zenghui Yu , kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org Subject: [PATCH 17/17] KVM: arm/arm64: vgic: Allow more than 256 vcpus for KVM_IRQ_LINE Date: Mon, 9 Sep 2019 14:48:07 +0100 Message-Id: <20190909134807.27978-18-maz@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190909134807.27978-1-maz@kernel.org> References: <20190909134807.27978-1-maz@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org While parts of the VGIC support a large number of vcpus (we bravely allow up to 512), other parts are more limited. One of these limits is visible in the KVM_IRQ_LINE ioctl, which only allows 256 vcpus to be signalled when using the CPU or PPI types. Unfortunately, we've cornered ourselves badly by allocating all the bits in the irq field. Since the irq_type subfield (8 bit wide) is currently only taking the values 0, 1 and 2 (and we have been careful not to allow anything else), let's reduce this field to only 4 bits, and allocate the remaining 4 bits to a vcpu2_index, which acts as a multiplier: vcpu_id = 256 * vcpu2_index + vcpu_index With that, and a new capability (KVM_CAP_ARM_IRQ_LINE_LAYOUT_2) allowing this to be discovered, it becomes possible to inject PPIs to up to 4096 vcpus. But please just don't. Whilst we're there, add a clarification about the use of KVM_IRQ_LINE on arm, which is not completely conditionned by KVM_CAP_IRQCHIP. Reported-by: Zenghui Yu Reviewed-by: Eric Auger Reviewed-by: Zenghui Yu Signed-off-by: Marc Zyngier --- Documentation/virt/kvm/api.txt | 12 ++++++++++-- arch/arm/include/uapi/asm/kvm.h | 4 +++- arch/arm64/include/uapi/asm/kvm.h | 4 +++- include/uapi/linux/kvm.h | 1 + virt/kvm/arm/arm.c | 2 ++ 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Documentation/virt/kvm/api.txt b/Documentation/virt/kvm/api.txt index 2d067767b617..25931ca1cb38 100644 --- a/Documentation/virt/kvm/api.txt +++ b/Documentation/virt/kvm/api.txt @@ -753,8 +753,8 @@ in-kernel irqchip (GIC), and for in-kernel irqchip can tell the GIC to use PPIs designated for specific cpus. The irq field is interpreted like this: -  bits: | 31 ... 24 | 23 ... 16 | 15 ... 0 | - field: | irq_type | vcpu_index | irq_id | +  bits: | 31 ... 28 | 27 ... 24 | 23 ... 16 | 15 ... 0 | + field: | vcpu2_index | irq_type | vcpu_index | irq_id | The irq_type field has the following values: - irq_type[0]: out-of-kernel GIC: irq_id 0 is IRQ, irq_id 1 is FIQ @@ -766,6 +766,14 @@ The irq_type field has the following values: In both cases, level is used to assert/deassert the line. +When KVM_CAP_ARM_IRQ_LINE_LAYOUT_2 is supported, the target vcpu is +identified as (256 * vcpu2_index + vcpu_index). Otherwise, vcpu2_index +must be zero. + +Note that on arm/arm64, the KVM_CAP_IRQCHIP capability only conditions +injection of interrupts for the in-kernel irqchip. KVM_IRQ_LINE can always +be used for a userspace interrupt controller. + struct kvm_irq_level { union { __u32 irq; /* GSI */ diff --git a/arch/arm/include/uapi/asm/kvm.h b/arch/arm/include/uapi/asm/kvm.h index a4217c1a5d01..2769360f195c 100644 --- a/arch/arm/include/uapi/asm/kvm.h +++ b/arch/arm/include/uapi/asm/kvm.h @@ -266,8 +266,10 @@ struct kvm_vcpu_events { #define KVM_DEV_ARM_ITS_CTRL_RESET 4 /* KVM_IRQ_LINE irq field index values */ +#define KVM_ARM_IRQ_VCPU2_SHIFT 28 +#define KVM_ARM_IRQ_VCPU2_MASK 0xf #define KVM_ARM_IRQ_TYPE_SHIFT 24 -#define KVM_ARM_IRQ_TYPE_MASK 0xff +#define KVM_ARM_IRQ_TYPE_MASK 0xf #define KVM_ARM_IRQ_VCPU_SHIFT 16 #define KVM_ARM_IRQ_VCPU_MASK 0xff #define KVM_ARM_IRQ_NUM_SHIFT 0 diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h index 9a507716ae2f..67c21f9bdbad 100644 --- a/arch/arm64/include/uapi/asm/kvm.h +++ b/arch/arm64/include/uapi/asm/kvm.h @@ -325,8 +325,10 @@ struct kvm_vcpu_events { #define KVM_ARM_VCPU_TIMER_IRQ_PTIMER 1 /* KVM_IRQ_LINE irq field index values */ +#define KVM_ARM_IRQ_VCPU2_SHIFT 28 +#define KVM_ARM_IRQ_VCPU2_MASK 0xf #define KVM_ARM_IRQ_TYPE_SHIFT 24 -#define KVM_ARM_IRQ_TYPE_MASK 0xff +#define KVM_ARM_IRQ_TYPE_MASK 0xf #define KVM_ARM_IRQ_VCPU_SHIFT 16 #define KVM_ARM_IRQ_VCPU_MASK 0xff #define KVM_ARM_IRQ_NUM_SHIFT 0 diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 5e3f12d5359e..5414b6588fbb 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -996,6 +996,7 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_ARM_PTRAUTH_ADDRESS 171 #define KVM_CAP_ARM_PTRAUTH_GENERIC 172 #define KVM_CAP_PMU_EVENT_FILTER 173 +#define KVM_CAP_ARM_IRQ_LINE_LAYOUT_2 174 #ifdef KVM_CAP_IRQ_ROUTING diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c index 35a069815baf..86c6aa1cb58e 100644 --- a/virt/kvm/arm/arm.c +++ b/virt/kvm/arm/arm.c @@ -196,6 +196,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) case KVM_CAP_MP_STATE: case KVM_CAP_IMMEDIATE_EXIT: case KVM_CAP_VCPU_EVENTS: + case KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: r = 1; break; case KVM_CAP_ARM_SET_DEVICE_ADDR: @@ -888,6 +889,7 @@ int kvm_vm_ioctl_irq_line(struct kvm *kvm, struct kvm_irq_level *irq_level, irq_type = (irq >> KVM_ARM_IRQ_TYPE_SHIFT) & KVM_ARM_IRQ_TYPE_MASK; vcpu_idx = (irq >> KVM_ARM_IRQ_VCPU_SHIFT) & KVM_ARM_IRQ_VCPU_MASK; + vcpu_idx += ((irq >> KVM_ARM_IRQ_VCPU2_SHIFT) & KVM_ARM_IRQ_VCPU2_MASK) * (KVM_ARM_IRQ_VCPU_MASK + 1); irq_num = (irq >> KVM_ARM_IRQ_NUM_SHIFT) & KVM_ARM_IRQ_NUM_MASK; trace_kvm_irq_line(irq_type, vcpu_idx, irq_num, irq_level->level); -- 2.20.1