Received: by 10.192.165.148 with SMTP id m20csp5121238imm; Tue, 24 Apr 2018 14:09:52 -0700 (PDT) X-Google-Smtp-Source: AIpwx49dCfBl2AaJY0VpEVStTbH6vZDSCZfP4YMGrqTbiZGI9OmT/advfWktH1s4TRyXXQb5RxkW X-Received: by 10.99.156.9 with SMTP id f9mr14908775pge.274.1524604192111; Tue, 24 Apr 2018 14:09:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524604192; cv=none; d=google.com; s=arc-20160816; b=hydnicsAzfToFVO+fnJm/t0BntY+Tk8/vt2pZe5f6lQ3B8HMNmQbK6arEX0qTG9OQB 83t53AiwrOyq1zWMYbarsHDLra809XsrO/kk9RjfLkaBD+Sa0q1Y9+EeBv+LKplmKkgB WV+/61wi+eLwu41D80zNu21bf2W2MZvhul2QTHP2yqeLjPPdNu6BJdnAGIeYpZPoW6Mv k1BhXgkgolYpr3B2gl17/xNu/LdocDVOxBDVT1fCOGn7qhuepZ6Ejp5RxzZpbmfH4TJ2 IRzgVMSdNw4RW9+PZvunFKc07GSr6ltjsmPIQ5Kv9I69DJxem76Rup/ab22I0IjqwAWj yFWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=/vfbU9iFILvl9b/u8yfXa4j6UuAWruDbbIEA2NmgiOM=; b=X+kpxRk+vdeCTl/QZrpmmYP0ihZiroNExGR4hoECzs5ldb2wJ6lASDGWYAI1xSpTPp Bl3e9FsjfciEvCdMvmz+XW/BxPBUvtZzlaV/YmYDF5UOzoiJzruh/1Iw4tPTX5rRUHFL ONe9QLM3KYVwD+Yimv4yJyix4w3tYiaGAfLlzBVmBqZpO+PBGrUOrHaTQ4peTfSFJLVr RzlWWPQDZ2FXNd+iYJTYpLC6y1eSloluITUBiGcfFFuhmD7p7BwzOI6eTDKourzPAf0m WVHcDWft+JBCrnhqRNBb8l3Fe6ubdcM69wgwCNgLoWx3dhpVpcge7aThyGgvBrzWhiII dYfA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e127si14129017pfc.315.2018.04.24.14.09.37; Tue, 24 Apr 2018 14:09:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751990AbeDXVHx (ORCPT + 99 others); Tue, 24 Apr 2018 17:07:53 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:59952 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750862AbeDXVHv (ORCPT ); Tue, 24 Apr 2018 17:07:51 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 602E880D; Tue, 24 Apr 2018 14:07:51 -0700 (PDT) Received: from localhost (usa-sjc-mx-foss1.foss.arm.com [217.140.101.70]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8ED233F25D; Tue, 24 Apr 2018 14:07:50 -0700 (PDT) Date: Tue, 24 Apr 2018 23:07:48 +0200 From: Christoffer Dall To: Eric Auger Cc: eric.auger.pro@gmail.com, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu, marc.zyngier@arm.com, cdall@kernel.org, peter.maydell@linaro.org, andre.przywara@arm.com, drjones@redhat.com, wei@redhat.com Subject: Re: [PATCH v3 07/12] KVM: arm/arm64: Adapt vgic_v3_check_base to multiple rdist regions Message-ID: <20180424210748.GH4533@C02W217FHV2R.local> References: <1523607658-9166-1-git-send-email-eric.auger@redhat.com> <1523607658-9166-8-git-send-email-eric.auger@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1523607658-9166-8-git-send-email-eric.auger@redhat.com> User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 13, 2018 at 10:20:53AM +0200, Eric Auger wrote: > We introduce a new helper to check there is no overlap between > dist region (if set) and registered rdist regions. This both > handles the case of legacy single rdist region (implicitly sized > with the number of online vcpus) and the new case of multiple > explicitly sized rdist regions. I don't understand this change, really. Is this just a cleanup, or changing some functionality (why?). I think this could have come with the introduction of vgic_v3_rdist_overlap() before patch 6, and then patch 6 could have been simplified (hopefully) to just call this "check that nothing in the world ever collides withi itself" function. > > Signed-off-by: Eric Auger > --- > virt/kvm/arm/vgic/vgic-v3.c | 26 +++++++++----------------- > 1 file changed, 9 insertions(+), 17 deletions(-) > > diff --git a/virt/kvm/arm/vgic/vgic-v3.c b/virt/kvm/arm/vgic/vgic-v3.c > index dbcba5f..b80f650 100644 > --- a/virt/kvm/arm/vgic/vgic-v3.c > +++ b/virt/kvm/arm/vgic/vgic-v3.c > @@ -432,31 +432,23 @@ bool vgic_v3_rdist_overlap(struct kvm *kvm, gpa_t base, size_t size) > bool vgic_v3_check_base(struct kvm *kvm) > { > struct vgic_dist *d = &kvm->arch.vgic; > - gpa_t redist_size = KVM_VGIC_V3_REDIST_SIZE; > - struct vgic_redist_region *rdreg = > - list_first_entry(&d->rd_regions, > - struct vgic_redist_region, list); > - > - redist_size *= atomic_read(&kvm->online_vcpus); > + struct vgic_redist_region *rdreg; > > if (!IS_VGIC_ADDR_UNDEF(d->vgic_dist_base) && > d->vgic_dist_base + KVM_VGIC_V3_DIST_SIZE < d->vgic_dist_base) > return false; > > - if (rdreg && (rdreg->base + redist_size < rdreg->base)) > - return false; > + list_for_each_entry(rdreg, &d->rd_regions, list) { > + if (rdreg->base + vgic_v3_rd_region_size(kvm, rdreg) < > + rdreg->base) > + return false; > + } > > - /* Both base addresses must be set to check if they overlap */ > - if (IS_VGIC_ADDR_UNDEF(d->vgic_dist_base) || !rdreg) > + if (IS_VGIC_ADDR_UNDEF(d->vgic_dist_base)) > return true; > > - if (d->vgic_dist_base + KVM_VGIC_V3_DIST_SIZE <= rdreg->base) > - return true; > - > - if (rdreg->base + redist_size <= d->vgic_dist_base) > - return true; > - > - return false; > + return !vgic_v3_rdist_overlap(kvm, d->vgic_dist_base, > + KVM_VGIC_V3_DIST_SIZE); > } > > /** > -- > 2.5.5 > Otherwise this patch looks correct to me. Thanks, -Christoffer