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=-8.6 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,USER_AGENT_SANE_2 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 89355C38A29 for ; Tue, 14 Apr 2020 13:43:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 630AB20644 for ; Tue, 14 Apr 2020 13:43:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1586871809; bh=3koUbGe2LBHalbakeLDQom7EXe+LBTn/mZU+H8wy818=; h=Date:From:To:Cc:Subject:In-Reply-To:References:List-ID:From; b=YaxWeo9zizdYZb9omEGOAVBQqe5+W5Up/zYuVlUhtjdeA+rlgnyh4QP/FM+HCHj9p NYN95e1jiDDnX+aANU9yea3BVmc5IOzgubPbqIQFLbW8ZoJv+AamWQHxao8KZELSea ULXYDveiSusa4Hnvtf35GAVxvtFJyMXjIv1oapGs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387948AbgDNNn1 (ORCPT ); Tue, 14 Apr 2020 09:43:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:55338 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732736AbgDNNnR (ORCPT ); Tue, 14 Apr 2020 09:43:17 -0400 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 61A3320644; Tue, 14 Apr 2020 13:43:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1586871796; bh=3koUbGe2LBHalbakeLDQom7EXe+LBTn/mZU+H8wy818=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=wvTuJ2KvMEs7RpYKRjMqdZ7Noxqbzu3FUz84V073BNWMVq4DecOZ7bcI5eY7Vk3os UeYuUradQiVbk4CiVsGslmtxQBXxWNaJ74F/n0jD7EObUMUgymqHhHdC2jwmmnxKuS Bd8vCxQYxboemoA0+5ye6cxU6zTkDdzw7K0EVOAA= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jOLqM-003Abw-Jl; Tue, 14 Apr 2020 14:43:14 +0100 Date: Tue, 14 Apr 2020 14:43:13 +0100 From: Marc Zyngier To: =?UTF-8?Q?Andr=C3=A9?= Przywara Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, Zenghui Yu , Eric Auger , Julien Grall , James Morse , Julien Thierry , Suzuki K Poulose Subject: Re: [PATCH 1/3] KVM: arm: vgic: Synchronize the whole guest on GIC{D,R}_I{S,C}ACTIVER read Message-ID: <20200414144313.1f9645cd@why> In-Reply-To: References: <20200414103517.2824071-1-maz@kernel.org> <20200414103517.2824071-2-maz@kernel.org> Organization: Approximate X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: andre.przywara@arm.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, yuzenghui@huawei.com, eric.auger@redhat.com, julien@xen.org, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org On Tue, 14 Apr 2020 12:16:27 +0100 Andr=C3=A9 Przywara wrote: > On 14/04/2020 11:35, Marc Zyngier wrote: > > When a guest tries to read the active state of its interrupts, > > we currently just return whatever state we have in memory. This > > means that if such an interrupt lives in a List Register on another > > CPU, we fail to obsertve the latest active state for this interrupt. =20 >=20 > ^^^^^^^^ >=20 > > In order to remedy this, stop all the other vcpus so that they exit > > and we can observe the most recent value for the state. =20 >=20 > Maybe worth mentioning that this copies the approach we already deal > with write accesses (split userland and guess accessors). This is in the > cover letter, but until I found it there it took me a while to grasp > what this patch really does. Fair enough. >=20 > >=20 > > Reported-by: Julien Grall > > Signed-off-by: Marc Zyngier > > --- > > virt/kvm/arm/vgic/vgic-mmio-v2.c | 4 +- > > virt/kvm/arm/vgic/vgic-mmio-v3.c | 4 +- > > virt/kvm/arm/vgic/vgic-mmio.c | 100 ++++++++++++++++++++----------- > > virt/kvm/arm/vgic/vgic-mmio.h | 3 + > > 4 files changed, 71 insertions(+), 40 deletions(-) > >=20 > > diff --git a/virt/kvm/arm/vgic/vgic-mmio-v2.c b/virt/kvm/arm/vgic/vgic-= mmio-v2.c > > index 5945f062d749..d63881f60e1a 100644 > > --- a/virt/kvm/arm/vgic/vgic-mmio-v2.c > > +++ b/virt/kvm/arm/vgic/vgic-mmio-v2.c > > @@ -422,11 +422,11 @@ static const struct vgic_register_region vgic_v2_= dist_registers[] =3D { > > VGIC_ACCESS_32bit), > > REGISTER_DESC_WITH_BITS_PER_IRQ(GIC_DIST_ACTIVE_SET, > > vgic_mmio_read_active, vgic_mmio_write_sactive, > > - NULL, vgic_mmio_uaccess_write_sactive, 1, > > + vgic_uaccess_read_active, vgic_mmio_uaccess_write_sactive, 1, > > VGIC_ACCESS_32bit), > > REGISTER_DESC_WITH_BITS_PER_IRQ(GIC_DIST_ACTIVE_CLEAR, > > vgic_mmio_read_active, vgic_mmio_write_cactive, > > - NULL, vgic_mmio_uaccess_write_cactive, 1, > > + vgic_uaccess_read_active, vgic_mmio_uaccess_write_cactive, 1, > > VGIC_ACCESS_32bit), > > REGISTER_DESC_WITH_BITS_PER_IRQ(GIC_DIST_PRI, > > vgic_mmio_read_priority, vgic_mmio_write_priority, NULL, NULL, > > diff --git a/virt/kvm/arm/vgic/vgic-mmio-v3.c b/virt/kvm/arm/vgic/vgic-= mmio-v3.c > > index e72dcc454247..77c8ba1a2535 100644 > > --- a/virt/kvm/arm/vgic/vgic-mmio-v3.c > > +++ b/virt/kvm/arm/vgic/vgic-mmio-v3.c > > @@ -553,11 +553,11 @@ static const struct vgic_register_region vgic_v3_= dist_registers[] =3D { > > VGIC_ACCESS_32bit), > > REGISTER_DESC_WITH_BITS_PER_IRQ_SHARED(GICD_ISACTIVER, > > vgic_mmio_read_active, vgic_mmio_write_sactive, > > - NULL, vgic_mmio_uaccess_write_sactive, 1, > > + vgic_uaccess_read_active, vgic_mmio_uaccess_write_sactive, 1, > > VGIC_ACCESS_32bit), > > REGISTER_DESC_WITH_BITS_PER_IRQ_SHARED(GICD_ICACTIVER, > > vgic_mmio_read_active, vgic_mmio_write_cactive, > > - NULL, vgic_mmio_uaccess_write_cactive, > > + vgic_uaccess_read_active, vgic_mmio_uaccess_write_cactive, > > 1, VGIC_ACCESS_32bit), > > REGISTER_DESC_WITH_BITS_PER_IRQ_SHARED(GICD_IPRIORITYR, > > vgic_mmio_read_priority, vgic_mmio_write_priority, NULL, NULL, > > diff --git a/virt/kvm/arm/vgic/vgic-mmio.c b/virt/kvm/arm/vgic/vgic-mmi= o.c > > index 2199302597fa..4012cd68ac93 100644 > > --- a/virt/kvm/arm/vgic/vgic-mmio.c > > +++ b/virt/kvm/arm/vgic/vgic-mmio.c > > @@ -348,8 +348,39 @@ void vgic_mmio_write_cpending(struct kvm_vcpu *vcp= u, > > } > > } > > =20 > > -unsigned long vgic_mmio_read_active(struct kvm_vcpu *vcpu, > > - gpa_t addr, unsigned int len) > > + > > +/* > > + * If we are fiddling with an IRQ's active state, we have to make sure= the IRQ > > + * is not queued on some running VCPU's LRs, because then the change t= o the > > + * active state can be overwritten when the VCPU's state is synced com= ing back > > + * from the guest. > > + * > > + * For shared interrupts as well as GICv3 private interrupts, we have = to > > + * stop all the VCPUs because interrupts can be migrated while we don'= t hold > > + * the IRQ locks and we don't want to be chasing moving targets. > > + * > > + * For GICv2 private interrupts we don't have to do anything because > > + * userspace accesses to the VGIC state already require all VCPUs to be > > + * stopped, and only the VCPU itself can modify its private interrupts > > + * active state, which guarantees that the VCPU is not running. > > + */ > > +static void vgic_access_active_prepare(struct kvm_vcpu *vcpu, u32 inti= d) > > +{ > > + if (vcpu->kvm->arch.vgic.vgic_model =3D=3D KVM_DEV_TYPE_ARM_VGIC_V3 || > > + intid > VGIC_NR_PRIVATE_IRQS) =20 >=20 > I understand that this is just moved from existing code below, but > shouldn't that either read "intid >=3D VGIC_NR_PRIVATE_IRQS" or > "intid > VGIC_MAX_PRIVATE"? Nice catch. This was introduced in abd7229626b93 ("KVM: arm/arm64: Simplify active_change_prepare and plug race"), while we had the opposite condition before that. This means that on GICv2, GICD_I[CS]ACTIVER writes are unreliable for intids 32-63 (we may fail to clear an active bit if it is set in another vcpu's LRs, for example). I'll add an extra patch for this. Thanks, M. --=20 Jazz is not dead. It just smells funny... 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=-8.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_2 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 A2F08C3815B for ; Tue, 14 Apr 2020 13:43:22 +0000 (UTC) Received: from mm01.cs.columbia.edu (mm01.cs.columbia.edu [128.59.11.253]) by mail.kernel.org (Postfix) with ESMTP id 2B5582075E for ; Tue, 14 Apr 2020 13:43:22 +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="wvTuJ2Kv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2B5582075E 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 95E184B1C9; Tue, 14 Apr 2020 09:43:21 -0400 (EDT) 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 v82DF4iPetyT; Tue, 14 Apr 2020 09:43:20 -0400 (EDT) Received: from mm01.cs.columbia.edu (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 1F6374B16B; Tue, 14 Apr 2020 09:43:20 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id F02044B16B for ; Tue, 14 Apr 2020 09:43:18 -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 44E-gDygC3Sp for ; Tue, 14 Apr 2020 09:43:17 -0400 (EDT) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by mm01.cs.columbia.edu (Postfix) with ESMTPS id 7CA0A4B0D7 for ; Tue, 14 Apr 2020 09:43:17 -0400 (EDT) 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 61A3320644; Tue, 14 Apr 2020 13:43:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1586871796; bh=3koUbGe2LBHalbakeLDQom7EXe+LBTn/mZU+H8wy818=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=wvTuJ2KvMEs7RpYKRjMqdZ7Noxqbzu3FUz84V073BNWMVq4DecOZ7bcI5eY7Vk3os UeYuUradQiVbk4CiVsGslmtxQBXxWNaJ74F/n0jD7EObUMUgymqHhHdC2jwmmnxKuS Bd8vCxQYxboemoA0+5ye6cxU6zTkDdzw7K0EVOAA= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jOLqM-003Abw-Jl; Tue, 14 Apr 2020 14:43:14 +0100 Date: Tue, 14 Apr 2020 14:43:13 +0100 From: Marc Zyngier To: =?UTF-8?Q?Andr=C3=A9?= Przywara Subject: Re: [PATCH 1/3] KVM: arm: vgic: Synchronize the whole guest on GIC{D,R}_I{S,C}ACTIVER read Message-ID: <20200414144313.1f9645cd@why> In-Reply-To: References: <20200414103517.2824071-1-maz@kernel.org> <20200414103517.2824071-2-maz@kernel.org> Organization: Approximate X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: andre.przywara@arm.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, yuzenghui@huawei.com, eric.auger@redhat.com, julien@xen.org, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Cc: Julien Grall , kvm@vger.kernel.org, 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 T24gVHVlLCAxNCBBcHIgMjAyMCAxMjoxNjoyNyArMDEwMApBbmRyw6kgUHJ6eXdhcmEgPGFuZHJl LnByenl3YXJhQGFybS5jb20+IHdyb3RlOgoKPiBPbiAxNC8wNC8yMDIwIDExOjM1LCBNYXJjIFp5 bmdpZXIgd3JvdGU6Cj4gPiBXaGVuIGEgZ3Vlc3QgdHJpZXMgdG8gcmVhZCB0aGUgYWN0aXZlIHN0 YXRlIG9mIGl0cyBpbnRlcnJ1cHRzLAo+ID4gd2UgY3VycmVudGx5IGp1c3QgcmV0dXJuIHdoYXRl dmVyIHN0YXRlIHdlIGhhdmUgaW4gbWVtb3J5LiBUaGlzCj4gPiBtZWFucyB0aGF0IGlmIHN1Y2gg YW4gaW50ZXJydXB0IGxpdmVzIGluIGEgTGlzdCBSZWdpc3RlciBvbiBhbm90aGVyCj4gPiBDUFUs IHdlIGZhaWwgdG8gb2JzZXJ0dmUgdGhlIGxhdGVzdCBhY3RpdmUgc3RhdGUgZm9yIHRoaXMgaW50 ZXJydXB0LiAgCj4gCj4gICAgICAgICAgICAgICAgICAgXl5eXl5eXl4KPiAKPiA+IEluIG9yZGVy IHRvIHJlbWVkeSB0aGlzLCBzdG9wIGFsbCB0aGUgb3RoZXIgdmNwdXMgc28gdGhhdCB0aGV5IGV4 aXQKPiA+IGFuZCB3ZSBjYW4gb2JzZXJ2ZSB0aGUgbW9zdCByZWNlbnQgdmFsdWUgZm9yIHRoZSBz dGF0ZS4gIAo+IAo+IE1heWJlIHdvcnRoIG1lbnRpb25pbmcgdGhhdCB0aGlzIGNvcGllcyB0aGUg YXBwcm9hY2ggd2UgYWxyZWFkeSBkZWFsCj4gd2l0aCB3cml0ZSBhY2Nlc3NlcyAoc3BsaXQgdXNl cmxhbmQgYW5kIGd1ZXNzIGFjY2Vzc29ycykuIFRoaXMgaXMgaW4gdGhlCj4gY292ZXIgbGV0dGVy LCBidXQgdW50aWwgSSBmb3VuZCBpdCB0aGVyZSBpdCB0b29rIG1lIGEgd2hpbGUgdG8gZ3Jhc3AK PiB3aGF0IHRoaXMgcGF0Y2ggcmVhbGx5IGRvZXMuCgpGYWlyIGVub3VnaC4KCj4gCj4gPiAKPiA+ IFJlcG9ydGVkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPgo+ID4gU2lnbmVkLW9m Zi1ieTogTWFyYyBaeW5naWVyIDxtYXpAa2VybmVsLm9yZz4KPiA+IC0tLQo+ID4gIHZpcnQva3Zt L2FybS92Z2ljL3ZnaWMtbW1pby12Mi5jIHwgICA0ICstCj4gPiAgdmlydC9rdm0vYXJtL3ZnaWMv dmdpYy1tbWlvLXYzLmMgfCAgIDQgKy0KPiA+ICB2aXJ0L2t2bS9hcm0vdmdpYy92Z2ljLW1taW8u YyAgICB8IDEwMCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gPiAgdmlydC9rdm0v YXJtL3ZnaWMvdmdpYy1tbWlvLmggICAgfCAgIDMgKwo+ID4gIDQgZmlsZXMgY2hhbmdlZCwgNzEg aW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS92aXJ0 L2t2bS9hcm0vdmdpYy92Z2ljLW1taW8tdjIuYyBiL3ZpcnQva3ZtL2FybS92Z2ljL3ZnaWMtbW1p by12Mi5jCj4gPiBpbmRleCA1OTQ1ZjA2MmQ3NDkuLmQ2Mzg4MWY2MGUxYSAxMDA2NDQKPiA+IC0t LSBhL3ZpcnQva3ZtL2FybS92Z2ljL3ZnaWMtbW1pby12Mi5jCj4gPiArKysgYi92aXJ0L2t2bS9h cm0vdmdpYy92Z2ljLW1taW8tdjIuYwo+ID4gQEAgLTQyMiwxMSArNDIyLDExIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgdmdpY19yZWdpc3Rlcl9yZWdpb24gdmdpY192Ml9kaXN0X3JlZ2lzdGVyc1td ID0gewo+ID4gIAkJVkdJQ19BQ0NFU1NfMzJiaXQpLAo+ID4gIAlSRUdJU1RFUl9ERVNDX1dJVEhf QklUU19QRVJfSVJRKEdJQ19ESVNUX0FDVElWRV9TRVQsCj4gPiAgCQl2Z2ljX21taW9fcmVhZF9h Y3RpdmUsIHZnaWNfbW1pb193cml0ZV9zYWN0aXZlLAo+ID4gLQkJTlVMTCwgdmdpY19tbWlvX3Vh Y2Nlc3Nfd3JpdGVfc2FjdGl2ZSwgMSwKPiA+ICsJCXZnaWNfdWFjY2Vzc19yZWFkX2FjdGl2ZSwg dmdpY19tbWlvX3VhY2Nlc3Nfd3JpdGVfc2FjdGl2ZSwgMSwKPiA+ICAJCVZHSUNfQUNDRVNTXzMy Yml0KSwKPiA+ICAJUkVHSVNURVJfREVTQ19XSVRIX0JJVFNfUEVSX0lSUShHSUNfRElTVF9BQ1RJ VkVfQ0xFQVIsCj4gPiAgCQl2Z2ljX21taW9fcmVhZF9hY3RpdmUsIHZnaWNfbW1pb193cml0ZV9j YWN0aXZlLAo+ID4gLQkJTlVMTCwgdmdpY19tbWlvX3VhY2Nlc3Nfd3JpdGVfY2FjdGl2ZSwgMSwK PiA+ICsJCXZnaWNfdWFjY2Vzc19yZWFkX2FjdGl2ZSwgdmdpY19tbWlvX3VhY2Nlc3Nfd3JpdGVf Y2FjdGl2ZSwgMSwKPiA+ICAJCVZHSUNfQUNDRVNTXzMyYml0KSwKPiA+ICAJUkVHSVNURVJfREVT Q19XSVRIX0JJVFNfUEVSX0lSUShHSUNfRElTVF9QUkksCj4gPiAgCQl2Z2ljX21taW9fcmVhZF9w cmlvcml0eSwgdmdpY19tbWlvX3dyaXRlX3ByaW9yaXR5LCBOVUxMLCBOVUxMLAo+ID4gZGlmZiAt LWdpdCBhL3ZpcnQva3ZtL2FybS92Z2ljL3ZnaWMtbW1pby12My5jIGIvdmlydC9rdm0vYXJtL3Zn aWMvdmdpYy1tbWlvLXYzLmMKPiA+IGluZGV4IGU3MmRjYzQ1NDI0Ny4uNzdjOGJhMWEyNTM1IDEw MDY0NAo+ID4gLS0tIGEvdmlydC9rdm0vYXJtL3ZnaWMvdmdpYy1tbWlvLXYzLmMKPiA+ICsrKyBi L3ZpcnQva3ZtL2FybS92Z2ljL3ZnaWMtbW1pby12My5jCj4gPiBAQCAtNTUzLDExICs1NTMsMTEg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2Z2ljX3JlZ2lzdGVyX3JlZ2lvbiB2Z2ljX3YzX2Rpc3Rf cmVnaXN0ZXJzW10gPSB7Cj4gPiAgCQlWR0lDX0FDQ0VTU18zMmJpdCksCj4gPiAgCVJFR0lTVEVS X0RFU0NfV0lUSF9CSVRTX1BFUl9JUlFfU0hBUkVEKEdJQ0RfSVNBQ1RJVkVSLAo+ID4gIAkJdmdp Y19tbWlvX3JlYWRfYWN0aXZlLCB2Z2ljX21taW9fd3JpdGVfc2FjdGl2ZSwKPiA+IC0JCU5VTEws IHZnaWNfbW1pb191YWNjZXNzX3dyaXRlX3NhY3RpdmUsIDEsCj4gPiArCQl2Z2ljX3VhY2Nlc3Nf cmVhZF9hY3RpdmUsIHZnaWNfbW1pb191YWNjZXNzX3dyaXRlX3NhY3RpdmUsIDEsCj4gPiAgCQlW R0lDX0FDQ0VTU18zMmJpdCksCj4gPiAgCVJFR0lTVEVSX0RFU0NfV0lUSF9CSVRTX1BFUl9JUlFf U0hBUkVEKEdJQ0RfSUNBQ1RJVkVSLAo+ID4gIAkJdmdpY19tbWlvX3JlYWRfYWN0aXZlLCB2Z2lj X21taW9fd3JpdGVfY2FjdGl2ZSwKPiA+IC0JCU5VTEwsIHZnaWNfbW1pb191YWNjZXNzX3dyaXRl X2NhY3RpdmUsCj4gPiArCQl2Z2ljX3VhY2Nlc3NfcmVhZF9hY3RpdmUsIHZnaWNfbW1pb191YWNj ZXNzX3dyaXRlX2NhY3RpdmUsCj4gPiAgCQkxLCBWR0lDX0FDQ0VTU18zMmJpdCksCj4gPiAgCVJF R0lTVEVSX0RFU0NfV0lUSF9CSVRTX1BFUl9JUlFfU0hBUkVEKEdJQ0RfSVBSSU9SSVRZUiwKPiA+ ICAJCXZnaWNfbW1pb19yZWFkX3ByaW9yaXR5LCB2Z2ljX21taW9fd3JpdGVfcHJpb3JpdHksIE5V TEwsIE5VTEwsCj4gPiBkaWZmIC0tZ2l0IGEvdmlydC9rdm0vYXJtL3ZnaWMvdmdpYy1tbWlvLmMg Yi92aXJ0L2t2bS9hcm0vdmdpYy92Z2ljLW1taW8uYwo+ID4gaW5kZXggMjE5OTMwMjU5N2ZhLi40 MDEyY2Q2OGFjOTMgMTAwNjQ0Cj4gPiAtLS0gYS92aXJ0L2t2bS9hcm0vdmdpYy92Z2ljLW1taW8u Ywo+ID4gKysrIGIvdmlydC9rdm0vYXJtL3ZnaWMvdmdpYy1tbWlvLmMKPiA+IEBAIC0zNDgsOCAr MzQ4LDM5IEBAIHZvaWQgdmdpY19tbWlvX3dyaXRlX2NwZW5kaW5nKHN0cnVjdCBrdm1fdmNwdSAq dmNwdSwKPiA+ICAJfQo+ID4gIH0KPiA+ICAKPiA+IC11bnNpZ25lZCBsb25nIHZnaWNfbW1pb19y ZWFkX2FjdGl2ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCj4gPiAtCQkJCSAgICBncGFfdCBhZGRy LCB1bnNpZ25lZCBpbnQgbGVuKQo+ID4gKwo+ID4gKy8qCj4gPiArICogSWYgd2UgYXJlIGZpZGRs aW5nIHdpdGggYW4gSVJRJ3MgYWN0aXZlIHN0YXRlLCB3ZSBoYXZlIHRvIG1ha2Ugc3VyZSB0aGUg SVJRCj4gPiArICogaXMgbm90IHF1ZXVlZCBvbiBzb21lIHJ1bm5pbmcgVkNQVSdzIExScywgYmVj YXVzZSB0aGVuIHRoZSBjaGFuZ2UgdG8gdGhlCj4gPiArICogYWN0aXZlIHN0YXRlIGNhbiBiZSBv dmVyd3JpdHRlbiB3aGVuIHRoZSBWQ1BVJ3Mgc3RhdGUgaXMgc3luY2VkIGNvbWluZyBiYWNrCj4g PiArICogZnJvbSB0aGUgZ3Vlc3QuCj4gPiArICoKPiA+ICsgKiBGb3Igc2hhcmVkIGludGVycnVw dHMgYXMgd2VsbCBhcyBHSUN2MyBwcml2YXRlIGludGVycnVwdHMsIHdlIGhhdmUgdG8KPiA+ICsg KiBzdG9wIGFsbCB0aGUgVkNQVXMgYmVjYXVzZSBpbnRlcnJ1cHRzIGNhbiBiZSBtaWdyYXRlZCB3 aGlsZSB3ZSBkb24ndCBob2xkCj4gPiArICogdGhlIElSUSBsb2NrcyBhbmQgd2UgZG9uJ3Qgd2Fu dCB0byBiZSBjaGFzaW5nIG1vdmluZyB0YXJnZXRzLgo+ID4gKyAqCj4gPiArICogRm9yIEdJQ3Yy IHByaXZhdGUgaW50ZXJydXB0cyB3ZSBkb24ndCBoYXZlIHRvIGRvIGFueXRoaW5nIGJlY2F1c2UK PiA+ICsgKiB1c2Vyc3BhY2UgYWNjZXNzZXMgdG8gdGhlIFZHSUMgc3RhdGUgYWxyZWFkeSByZXF1 aXJlIGFsbCBWQ1BVcyB0byBiZQo+ID4gKyAqIHN0b3BwZWQsIGFuZCBvbmx5IHRoZSBWQ1BVIGl0 c2VsZiBjYW4gbW9kaWZ5IGl0cyBwcml2YXRlIGludGVycnVwdHMKPiA+ICsgKiBhY3RpdmUgc3Rh dGUsIHdoaWNoIGd1YXJhbnRlZXMgdGhhdCB0aGUgVkNQVSBpcyBub3QgcnVubmluZy4KPiA+ICsg Ki8KPiA+ICtzdGF0aWMgdm9pZCB2Z2ljX2FjY2Vzc19hY3RpdmVfcHJlcGFyZShzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUsIHUzMiBpbnRpZCkKPiA+ICt7Cj4gPiArCWlmICh2Y3B1LT5rdm0tPmFyY2gu dmdpYy52Z2ljX21vZGVsID09IEtWTV9ERVZfVFlQRV9BUk1fVkdJQ19WMyB8fAo+ID4gKwkgICAg aW50aWQgPiBWR0lDX05SX1BSSVZBVEVfSVJRUykgIAo+IAo+IEkgdW5kZXJzdGFuZCB0aGF0IHRo aXMgaXMganVzdCBtb3ZlZCBmcm9tIGV4aXN0aW5nIGNvZGUgYmVsb3csIGJ1dAo+IHNob3VsZG4n dCB0aGF0IGVpdGhlciByZWFkICJpbnRpZCA+PSBWR0lDX05SX1BSSVZBVEVfSVJRUyIgb3IKPiAi aW50aWQgPiBWR0lDX01BWF9QUklWQVRFIj8KCk5pY2UgY2F0Y2guIFRoaXMgd2FzIGludHJvZHVj ZWQgaW4gYWJkNzIyOTYyNmI5MyAoIktWTTogYXJtL2FybTY0OgpTaW1wbGlmeSBhY3RpdmVfY2hh bmdlX3ByZXBhcmUgYW5kIHBsdWcgcmFjZSIpLCB3aGlsZSB3ZSBoYWQgdGhlCm9wcG9zaXRlIGNv bmRpdGlvbiBiZWZvcmUgdGhhdC4KClRoaXMgbWVhbnMgdGhhdCBvbiBHSUN2MiwgR0lDRF9JW0NT XUFDVElWRVIgd3JpdGVzIGFyZSB1bnJlbGlhYmxlIGZvcgppbnRpZHMgMzItNjMgKHdlIG1heSBm YWlsIHRvIGNsZWFyIGFuIGFjdGl2ZSBiaXQgaWYgaXQgaXMgc2V0IGluCmFub3RoZXIgdmNwdSdz IExScywgZm9yIGV4YW1wbGUpLgoKSSdsbCBhZGQgYW4gZXh0cmEgcGF0Y2ggZm9yIHRoaXMuCgpU aGFua3MsCgoJTS4KLS0gCkphenogaXMgbm90IGRlYWQuIEl0IGp1c3Qgc21lbGxzIGZ1bm55Li4u Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmt2bWFybSBt YWlsaW5nIGxpc3QKa3ZtYXJtQGxpc3RzLmNzLmNvbHVtYmlhLmVkdQpodHRwczovL2xpc3RzLmNz LmNvbHVtYmlhLmVkdS9tYWlsbWFuL2xpc3RpbmZvL2t2bWFybQo= 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=-8.5 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_SANE_2 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 04319C38A29 for ; Tue, 14 Apr 2020 13:43:22 +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 CB9F920768 for ; Tue, 14 Apr 2020 13:43:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="b5gWZoA6"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="wvTuJ2Kv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CB9F920768 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:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=cVvC1EFJyzMkDHcZXNxOtNWyX5Bxmj3NGheF22JkeaM=; b=b5gWZoA63KI9WB xXKP/lSK56iAgIWwaHdvDAMaKe+e0s9B2J3Dfm7HIi+oTPGvHXZzlT39PbUCUmrEn4RgnvBnC2Fe9 XIu954xgpeUYJjezT0NAnZhkeXoNvk4kPVCwaL4wv2vIMGIY2SLDOMRL4ofEPpl/9ZpYJN7aEUysI szUl7e7GKMbK7uZHamZWnSr8o+lPAherSbkOr01WihbFwGUoOiEZO4OURnLrx18bQdxVZoefGYIWx tMIoeDMTWKZu4XUn91BGtC5vq3y2YEfHs/M4LGLn5PmiGt3CTmPiEXAdsG/qaWNjOZtu/SYSHYh// vbfmwAjWws5KBYbLyw5Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jOLqS-0005SR-K3; Tue, 14 Apr 2020 13:43:20 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jOLqO-0005S5-QS for linux-arm-kernel@lists.infradead.org; Tue, 14 Apr 2020 13:43:18 +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 61A3320644; Tue, 14 Apr 2020 13:43:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1586871796; bh=3koUbGe2LBHalbakeLDQom7EXe+LBTn/mZU+H8wy818=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=wvTuJ2KvMEs7RpYKRjMqdZ7Noxqbzu3FUz84V073BNWMVq4DecOZ7bcI5eY7Vk3os UeYuUradQiVbk4CiVsGslmtxQBXxWNaJ74F/n0jD7EObUMUgymqHhHdC2jwmmnxKuS Bd8vCxQYxboemoA0+5ye6cxU6zTkDdzw7K0EVOAA= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jOLqM-003Abw-Jl; Tue, 14 Apr 2020 14:43:14 +0100 Date: Tue, 14 Apr 2020 14:43:13 +0100 From: Marc Zyngier To: =?UTF-8?Q?Andr=C3=A9?= Przywara Subject: Re: [PATCH 1/3] KVM: arm: vgic: Synchronize the whole guest on GIC{D,R}_I{S,C}ACTIVER read Message-ID: <20200414144313.1f9645cd@why> In-Reply-To: References: <20200414103517.2824071-1-maz@kernel.org> <20200414103517.2824071-2-maz@kernel.org> Organization: Approximate X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: andre.przywara@arm.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, yuzenghui@huawei.com, eric.auger@redhat.com, julien@xen.org, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.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-20200414_064316_901700_7354FC56 X-CRM114-Status: GOOD ( 26.88 ) 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: Julien Grall , kvm@vger.kernel.org, Suzuki K Poulose , Eric Auger , James Morse , Julien Thierry , Zenghui Yu , 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 T24gVHVlLCAxNCBBcHIgMjAyMCAxMjoxNjoyNyArMDEwMApBbmRyw6kgUHJ6eXdhcmEgPGFuZHJl LnByenl3YXJhQGFybS5jb20+IHdyb3RlOgoKPiBPbiAxNC8wNC8yMDIwIDExOjM1LCBNYXJjIFp5 bmdpZXIgd3JvdGU6Cj4gPiBXaGVuIGEgZ3Vlc3QgdHJpZXMgdG8gcmVhZCB0aGUgYWN0aXZlIHN0 YXRlIG9mIGl0cyBpbnRlcnJ1cHRzLAo+ID4gd2UgY3VycmVudGx5IGp1c3QgcmV0dXJuIHdoYXRl dmVyIHN0YXRlIHdlIGhhdmUgaW4gbWVtb3J5LiBUaGlzCj4gPiBtZWFucyB0aGF0IGlmIHN1Y2gg YW4gaW50ZXJydXB0IGxpdmVzIGluIGEgTGlzdCBSZWdpc3RlciBvbiBhbm90aGVyCj4gPiBDUFUs IHdlIGZhaWwgdG8gb2JzZXJ0dmUgdGhlIGxhdGVzdCBhY3RpdmUgc3RhdGUgZm9yIHRoaXMgaW50 ZXJydXB0LiAgCj4gCj4gICAgICAgICAgICAgICAgICAgXl5eXl5eXl4KPiAKPiA+IEluIG9yZGVy IHRvIHJlbWVkeSB0aGlzLCBzdG9wIGFsbCB0aGUgb3RoZXIgdmNwdXMgc28gdGhhdCB0aGV5IGV4 aXQKPiA+IGFuZCB3ZSBjYW4gb2JzZXJ2ZSB0aGUgbW9zdCByZWNlbnQgdmFsdWUgZm9yIHRoZSBz dGF0ZS4gIAo+IAo+IE1heWJlIHdvcnRoIG1lbnRpb25pbmcgdGhhdCB0aGlzIGNvcGllcyB0aGUg YXBwcm9hY2ggd2UgYWxyZWFkeSBkZWFsCj4gd2l0aCB3cml0ZSBhY2Nlc3NlcyAoc3BsaXQgdXNl cmxhbmQgYW5kIGd1ZXNzIGFjY2Vzc29ycykuIFRoaXMgaXMgaW4gdGhlCj4gY292ZXIgbGV0dGVy LCBidXQgdW50aWwgSSBmb3VuZCBpdCB0aGVyZSBpdCB0b29rIG1lIGEgd2hpbGUgdG8gZ3Jhc3AK PiB3aGF0IHRoaXMgcGF0Y2ggcmVhbGx5IGRvZXMuCgpGYWlyIGVub3VnaC4KCj4gCj4gPiAKPiA+ IFJlcG9ydGVkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPgo+ID4gU2lnbmVkLW9m Zi1ieTogTWFyYyBaeW5naWVyIDxtYXpAa2VybmVsLm9yZz4KPiA+IC0tLQo+ID4gIHZpcnQva3Zt L2FybS92Z2ljL3ZnaWMtbW1pby12Mi5jIHwgICA0ICstCj4gPiAgdmlydC9rdm0vYXJtL3ZnaWMv dmdpYy1tbWlvLXYzLmMgfCAgIDQgKy0KPiA+ICB2aXJ0L2t2bS9hcm0vdmdpYy92Z2ljLW1taW8u YyAgICB8IDEwMCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gPiAgdmlydC9rdm0v YXJtL3ZnaWMvdmdpYy1tbWlvLmggICAgfCAgIDMgKwo+ID4gIDQgZmlsZXMgY2hhbmdlZCwgNzEg aW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS92aXJ0 L2t2bS9hcm0vdmdpYy92Z2ljLW1taW8tdjIuYyBiL3ZpcnQva3ZtL2FybS92Z2ljL3ZnaWMtbW1p by12Mi5jCj4gPiBpbmRleCA1OTQ1ZjA2MmQ3NDkuLmQ2Mzg4MWY2MGUxYSAxMDA2NDQKPiA+IC0t LSBhL3ZpcnQva3ZtL2FybS92Z2ljL3ZnaWMtbW1pby12Mi5jCj4gPiArKysgYi92aXJ0L2t2bS9h cm0vdmdpYy92Z2ljLW1taW8tdjIuYwo+ID4gQEAgLTQyMiwxMSArNDIyLDExIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgdmdpY19yZWdpc3Rlcl9yZWdpb24gdmdpY192Ml9kaXN0X3JlZ2lzdGVyc1td ID0gewo+ID4gIAkJVkdJQ19BQ0NFU1NfMzJiaXQpLAo+ID4gIAlSRUdJU1RFUl9ERVNDX1dJVEhf QklUU19QRVJfSVJRKEdJQ19ESVNUX0FDVElWRV9TRVQsCj4gPiAgCQl2Z2ljX21taW9fcmVhZF9h Y3RpdmUsIHZnaWNfbW1pb193cml0ZV9zYWN0aXZlLAo+ID4gLQkJTlVMTCwgdmdpY19tbWlvX3Vh Y2Nlc3Nfd3JpdGVfc2FjdGl2ZSwgMSwKPiA+ICsJCXZnaWNfdWFjY2Vzc19yZWFkX2FjdGl2ZSwg dmdpY19tbWlvX3VhY2Nlc3Nfd3JpdGVfc2FjdGl2ZSwgMSwKPiA+ICAJCVZHSUNfQUNDRVNTXzMy Yml0KSwKPiA+ICAJUkVHSVNURVJfREVTQ19XSVRIX0JJVFNfUEVSX0lSUShHSUNfRElTVF9BQ1RJ VkVfQ0xFQVIsCj4gPiAgCQl2Z2ljX21taW9fcmVhZF9hY3RpdmUsIHZnaWNfbW1pb193cml0ZV9j YWN0aXZlLAo+ID4gLQkJTlVMTCwgdmdpY19tbWlvX3VhY2Nlc3Nfd3JpdGVfY2FjdGl2ZSwgMSwK PiA+ICsJCXZnaWNfdWFjY2Vzc19yZWFkX2FjdGl2ZSwgdmdpY19tbWlvX3VhY2Nlc3Nfd3JpdGVf Y2FjdGl2ZSwgMSwKPiA+ICAJCVZHSUNfQUNDRVNTXzMyYml0KSwKPiA+ICAJUkVHSVNURVJfREVT Q19XSVRIX0JJVFNfUEVSX0lSUShHSUNfRElTVF9QUkksCj4gPiAgCQl2Z2ljX21taW9fcmVhZF9w cmlvcml0eSwgdmdpY19tbWlvX3dyaXRlX3ByaW9yaXR5LCBOVUxMLCBOVUxMLAo+ID4gZGlmZiAt LWdpdCBhL3ZpcnQva3ZtL2FybS92Z2ljL3ZnaWMtbW1pby12My5jIGIvdmlydC9rdm0vYXJtL3Zn aWMvdmdpYy1tbWlvLXYzLmMKPiA+IGluZGV4IGU3MmRjYzQ1NDI0Ny4uNzdjOGJhMWEyNTM1IDEw MDY0NAo+ID4gLS0tIGEvdmlydC9rdm0vYXJtL3ZnaWMvdmdpYy1tbWlvLXYzLmMKPiA+ICsrKyBi L3ZpcnQva3ZtL2FybS92Z2ljL3ZnaWMtbW1pby12My5jCj4gPiBAQCAtNTUzLDExICs1NTMsMTEg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2Z2ljX3JlZ2lzdGVyX3JlZ2lvbiB2Z2ljX3YzX2Rpc3Rf cmVnaXN0ZXJzW10gPSB7Cj4gPiAgCQlWR0lDX0FDQ0VTU18zMmJpdCksCj4gPiAgCVJFR0lTVEVS X0RFU0NfV0lUSF9CSVRTX1BFUl9JUlFfU0hBUkVEKEdJQ0RfSVNBQ1RJVkVSLAo+ID4gIAkJdmdp Y19tbWlvX3JlYWRfYWN0aXZlLCB2Z2ljX21taW9fd3JpdGVfc2FjdGl2ZSwKPiA+IC0JCU5VTEws IHZnaWNfbW1pb191YWNjZXNzX3dyaXRlX3NhY3RpdmUsIDEsCj4gPiArCQl2Z2ljX3VhY2Nlc3Nf cmVhZF9hY3RpdmUsIHZnaWNfbW1pb191YWNjZXNzX3dyaXRlX3NhY3RpdmUsIDEsCj4gPiAgCQlW R0lDX0FDQ0VTU18zMmJpdCksCj4gPiAgCVJFR0lTVEVSX0RFU0NfV0lUSF9CSVRTX1BFUl9JUlFf U0hBUkVEKEdJQ0RfSUNBQ1RJVkVSLAo+ID4gIAkJdmdpY19tbWlvX3JlYWRfYWN0aXZlLCB2Z2lj X21taW9fd3JpdGVfY2FjdGl2ZSwKPiA+IC0JCU5VTEwsIHZnaWNfbW1pb191YWNjZXNzX3dyaXRl X2NhY3RpdmUsCj4gPiArCQl2Z2ljX3VhY2Nlc3NfcmVhZF9hY3RpdmUsIHZnaWNfbW1pb191YWNj ZXNzX3dyaXRlX2NhY3RpdmUsCj4gPiAgCQkxLCBWR0lDX0FDQ0VTU18zMmJpdCksCj4gPiAgCVJF R0lTVEVSX0RFU0NfV0lUSF9CSVRTX1BFUl9JUlFfU0hBUkVEKEdJQ0RfSVBSSU9SSVRZUiwKPiA+ ICAJCXZnaWNfbW1pb19yZWFkX3ByaW9yaXR5LCB2Z2ljX21taW9fd3JpdGVfcHJpb3JpdHksIE5V TEwsIE5VTEwsCj4gPiBkaWZmIC0tZ2l0IGEvdmlydC9rdm0vYXJtL3ZnaWMvdmdpYy1tbWlvLmMg Yi92aXJ0L2t2bS9hcm0vdmdpYy92Z2ljLW1taW8uYwo+ID4gaW5kZXggMjE5OTMwMjU5N2ZhLi40 MDEyY2Q2OGFjOTMgMTAwNjQ0Cj4gPiAtLS0gYS92aXJ0L2t2bS9hcm0vdmdpYy92Z2ljLW1taW8u Ywo+ID4gKysrIGIvdmlydC9rdm0vYXJtL3ZnaWMvdmdpYy1tbWlvLmMKPiA+IEBAIC0zNDgsOCAr MzQ4LDM5IEBAIHZvaWQgdmdpY19tbWlvX3dyaXRlX2NwZW5kaW5nKHN0cnVjdCBrdm1fdmNwdSAq dmNwdSwKPiA+ICAJfQo+ID4gIH0KPiA+ICAKPiA+IC11bnNpZ25lZCBsb25nIHZnaWNfbW1pb19y ZWFkX2FjdGl2ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCj4gPiAtCQkJCSAgICBncGFfdCBhZGRy LCB1bnNpZ25lZCBpbnQgbGVuKQo+ID4gKwo+ID4gKy8qCj4gPiArICogSWYgd2UgYXJlIGZpZGRs aW5nIHdpdGggYW4gSVJRJ3MgYWN0aXZlIHN0YXRlLCB3ZSBoYXZlIHRvIG1ha2Ugc3VyZSB0aGUg SVJRCj4gPiArICogaXMgbm90IHF1ZXVlZCBvbiBzb21lIHJ1bm5pbmcgVkNQVSdzIExScywgYmVj YXVzZSB0aGVuIHRoZSBjaGFuZ2UgdG8gdGhlCj4gPiArICogYWN0aXZlIHN0YXRlIGNhbiBiZSBv dmVyd3JpdHRlbiB3aGVuIHRoZSBWQ1BVJ3Mgc3RhdGUgaXMgc3luY2VkIGNvbWluZyBiYWNrCj4g PiArICogZnJvbSB0aGUgZ3Vlc3QuCj4gPiArICoKPiA+ICsgKiBGb3Igc2hhcmVkIGludGVycnVw dHMgYXMgd2VsbCBhcyBHSUN2MyBwcml2YXRlIGludGVycnVwdHMsIHdlIGhhdmUgdG8KPiA+ICsg KiBzdG9wIGFsbCB0aGUgVkNQVXMgYmVjYXVzZSBpbnRlcnJ1cHRzIGNhbiBiZSBtaWdyYXRlZCB3 aGlsZSB3ZSBkb24ndCBob2xkCj4gPiArICogdGhlIElSUSBsb2NrcyBhbmQgd2UgZG9uJ3Qgd2Fu dCB0byBiZSBjaGFzaW5nIG1vdmluZyB0YXJnZXRzLgo+ID4gKyAqCj4gPiArICogRm9yIEdJQ3Yy IHByaXZhdGUgaW50ZXJydXB0cyB3ZSBkb24ndCBoYXZlIHRvIGRvIGFueXRoaW5nIGJlY2F1c2UK PiA+ICsgKiB1c2Vyc3BhY2UgYWNjZXNzZXMgdG8gdGhlIFZHSUMgc3RhdGUgYWxyZWFkeSByZXF1 aXJlIGFsbCBWQ1BVcyB0byBiZQo+ID4gKyAqIHN0b3BwZWQsIGFuZCBvbmx5IHRoZSBWQ1BVIGl0 c2VsZiBjYW4gbW9kaWZ5IGl0cyBwcml2YXRlIGludGVycnVwdHMKPiA+ICsgKiBhY3RpdmUgc3Rh dGUsIHdoaWNoIGd1YXJhbnRlZXMgdGhhdCB0aGUgVkNQVSBpcyBub3QgcnVubmluZy4KPiA+ICsg Ki8KPiA+ICtzdGF0aWMgdm9pZCB2Z2ljX2FjY2Vzc19hY3RpdmVfcHJlcGFyZShzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUsIHUzMiBpbnRpZCkKPiA+ICt7Cj4gPiArCWlmICh2Y3B1LT5rdm0tPmFyY2gu dmdpYy52Z2ljX21vZGVsID09IEtWTV9ERVZfVFlQRV9BUk1fVkdJQ19WMyB8fAo+ID4gKwkgICAg aW50aWQgPiBWR0lDX05SX1BSSVZBVEVfSVJRUykgIAo+IAo+IEkgdW5kZXJzdGFuZCB0aGF0IHRo aXMgaXMganVzdCBtb3ZlZCBmcm9tIGV4aXN0aW5nIGNvZGUgYmVsb3csIGJ1dAo+IHNob3VsZG4n dCB0aGF0IGVpdGhlciByZWFkICJpbnRpZCA+PSBWR0lDX05SX1BSSVZBVEVfSVJRUyIgb3IKPiAi aW50aWQgPiBWR0lDX01BWF9QUklWQVRFIj8KCk5pY2UgY2F0Y2guIFRoaXMgd2FzIGludHJvZHVj ZWQgaW4gYWJkNzIyOTYyNmI5MyAoIktWTTogYXJtL2FybTY0OgpTaW1wbGlmeSBhY3RpdmVfY2hh bmdlX3ByZXBhcmUgYW5kIHBsdWcgcmFjZSIpLCB3aGlsZSB3ZSBoYWQgdGhlCm9wcG9zaXRlIGNv bmRpdGlvbiBiZWZvcmUgdGhhdC4KClRoaXMgbWVhbnMgdGhhdCBvbiBHSUN2MiwgR0lDRF9JW0NT XUFDVElWRVIgd3JpdGVzIGFyZSB1bnJlbGlhYmxlIGZvcgppbnRpZHMgMzItNjMgKHdlIG1heSBm YWlsIHRvIGNsZWFyIGFuIGFjdGl2ZSBiaXQgaWYgaXQgaXMgc2V0IGluCmFub3RoZXIgdmNwdSdz IExScywgZm9yIGV4YW1wbGUpLgoKSSdsbCBhZGQgYW4gZXh0cmEgcGF0Y2ggZm9yIHRoaXMuCgpU aGFua3MsCgoJTS4KLS0gCkphenogaXMgbm90IGRlYWQuIEl0IGp1c3Qgc21lbGxzIGZ1bm55Li4u CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1h cm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5v cmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0t a2VybmVsCg==