Received: by 10.192.165.148 with SMTP id m20csp776417imm; Fri, 27 Apr 2018 07:21:25 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrENMRhEIuiRBfEo0Qc9hq6jj/FLX6lbhjhSYD4nxlBHyNnRcSpSLt56CqWzCZ0g+UJEXQg X-Received: by 2002:a65:6316:: with SMTP id g22-v6mr2355466pgv.410.1524838885322; Fri, 27 Apr 2018 07:21:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524838885; cv=none; d=google.com; s=arc-20160816; b=A0R69InUGIMgOMkhg2S5jZ5tRffC3sJBeacUnBLjtMF2IwHP+BT58fpDAG9rf7DBcJ GBgNE1OaZTHvT5VWdPm8OKH5gURqI/kWukpxXz0KL5dHMtFX/af6v+dypxFvkIHraird 2YXJJm5l7YkbKyRPP51o6zEOYNeiiBR55akpUD0uUQW2chN5VSvQ1YZbBiNoBziAxftw oBNwEqQoiJJNxuGfXW4Fhtwy5I8jC3lXI18k56dN/P2+S5qBTsOxYbA5VsXwnjZcT519 hTeYbUoPsipuCQMRqh+2u5aZ27rOGtl21fTkxN9G3nyMpboQwV/3wftlPBcZDwdosbS6 HFOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:cc:references:to :subject:arc-authentication-results; bh=Reeg/yHHZkNPlappfelTI9qt5g9LLDTXiVSVIjz0/1E=; b=Qmf4V32/qPvsyvUvIVAwc5GOV0nc11RG/7Gbv01vXK1Nwv1iwTKhmeXarGAP46XTcK 50SWZbZQksE/ytQmCG1KSWDV10WCD7qvPlBKJ3++t4TG0KN75UMmndL9sou1gKOpFVVJ RZF28g2QQoF1Ir8rFHA++hSduyIlekyoBCsAYGp6D9j+FnDYVDbXBLFTvwToJcj3H8P8 7Zvf6FnMAHh3NE8kWx2tAwrh2hfKkeTRyUbeKb7+8Q9b1BKUy6Ui7DP2KIlKhytc+CfN IwFAjR+kHhWb3qHhRg+ndfV5W1oWDrtSRxB28Mtvt9kr+ACqZHuSbcTBKKpWVwu1fFfP qWZQ== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f14-v6si1278223pgu.612.2018.04.27.07.21.11; Fri, 27 Apr 2018 07:21:25 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935534AbeD0OSZ (ORCPT + 99 others); Fri, 27 Apr 2018 10:18:25 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:59338 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S935339AbeD0OSX (ORCPT ); Fri, 27 Apr 2018 10:18:23 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CB6F44023141; Fri, 27 Apr 2018 14:18:22 +0000 (UTC) Received: from localhost.localdomain (ovpn-116-57.ams2.redhat.com [10.36.116.57]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 30D48215CDCB; Fri, 27 Apr 2018 14:18:21 +0000 (UTC) Subject: Re: [PATCH v4 00/12] KVM: arm/arm64: Allow multiple GICv3 redistributor regions To: 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 References: <1524837993-23396-1-git-send-email-eric.auger@redhat.com> Cc: andre.przywara@arm.com, drjones@redhat.com, wei@redhat.com From: Auger Eric Message-ID: <7a4742d7-cae3-0e90-42a9-42d469ffddb2@redhat.com> Date: Fri, 27 Apr 2018 16:18:19 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1524837993-23396-1-git-send-email-eric.auger@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Fri, 27 Apr 2018 14:18:22 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Fri, 27 Apr 2018 14:18:22 +0000 (UTC) for IP:'10.11.54.6' DOMAIN:'int-mx06.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'eric.auger@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 04/27/2018 04:06 PM, Eric Auger wrote: > At the moment the KVM VGICv3 only supports a single redistributor > region (whose base address is set through the GICv3 kvm device > KVM_DEV_ARM_VGIC_GRP_ADDR/KVM_VGIC_V3_ADDR_TYPE_REDIST). There, > all the redistributors are laid out contiguously. The size of this > single redistributor region is not set explicitly but instead > induced at a late stage by the number of online vcpus. > > The GIC specification does not mandate all redistributors to be > contiguous. Moreover DT and ACPI were specified so that multiple > redistributors regions can be defined. > > The current interface brings a limitation on QEMU where ARM > virt machine available GPA holes only allowed to assign a > redistributor region fitting a max of 123 vcpus. Overcoming this > limitation would force either to create a new machine or relocate > the single rdist region or allow the allocation of multiple rdist > regions. > > This series enables this last alternative. A new GICv3 KVM device > KVM_DEV_ARM_VGIC_GRP_ADDR/KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION allows > to register individual redistributor regions whose size is defined > explicitly. Those rdist regions then are filled by vcpu rdist frames > according to the need. The vgic init and related base address checks > are impacted. For some unknown reason I got a timeout on the git send-email command, hence this isolated cover letter. The series was fully resent. Sorry for the inconvenience. Thanks Eric > > Best Regards > > Eric > > Git: complete series available at > https://github.com/eauger/linux/tree/v4.17-rc2-rdist-regions-v4 > Previous version: > https://github.com/eauger/linux/tree/v4.16-rdist-regions-v3 > > History: > > v3 -> v4: > - Collected Christoffer's R-b > - reworked vgic_v3_rdist_overlap and introduced vgic_dist_overlap > - vgic_v3_insert_redist_region cleanup > - inverse order for patches 6 and 7 > > v2 -> v3: > - Add details to the user API documentation > - early exit if vgic_v3_rdist_region_from_index() fails > - return -EINVAL if legacy and new redist region API are mixed > > v1 -> v2: > - Rework the uapi. Only bits [51:16] of the redist region are > exposed. Also a new flags field was introduced > - Do not store the last bit in the vgic_cpu struct anymore > - remove dist->spis check in 1st patch > - add last patch to bump VGIC_V3_MAX_CPUS to 512 > - advertise the new attribute > > Eric Auger (12): > KVM: arm/arm64: Set dist->spis to NULL after kfree > KVM: arm/arm64: Document KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION > KVM: arm/arm64: Replace the single rdist region by a list > KVM: arm/arm64: Helper to locate free rdist index > KVM: arm/arm64: Revisit Redistributor TYPER last bit computation > KVM: arm/arm64: Adapt vgic_v3_check_base to multiple rdist regions > KVM: arm/arm64: Helper to register a new redistributor region > KVM: arm/arm64: Check vcpu redist base before registering an iodev > KVM: arm/arm64: Check all vcpu redistributors are set on map_resources > KVM: arm/arm64: Add KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION > KVM: arm/arm64: Implement KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION > KVM: arm/arm64: Bump VGIC_V3_MAX_CPUS to 512 > > Documentation/virtual/kvm/devices/arm-vgic-v3.txt | 25 ++++- > arch/arm/include/uapi/asm/kvm.h | 1 + > arch/arm64/include/uapi/asm/kvm.h | 1 + > include/kvm/arm_vgic.h | 16 ++- > virt/kvm/arm/vgic/vgic-init.c | 20 +++- > virt/kvm/arm/vgic/vgic-kvm-device.c | 55 ++++++++++- > virt/kvm/arm/vgic/vgic-mmio-v3.c | 114 +++++++++++++++++++--- > virt/kvm/arm/vgic/vgic-v3.c | 101 +++++++++++++++---- > virt/kvm/arm/vgic/vgic.h | 42 +++++++- > 9 files changed, 330 insertions(+), 45 deletions(-) >