Received: by 2002:ac0:a591:0:0:0:0:0 with SMTP id m17-v6csp686457imm; Thu, 5 Jul 2018 07:17:02 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfh0D2qP0hvUyV0qxYix/9H2aKeWVUBx4nojCAvIok2bjZny/3BWEO4K5MtePtrSLPyIzQX X-Received: by 2002:a62:fb05:: with SMTP id x5-v6mr6701699pfm.210.1530800222860; Thu, 05 Jul 2018 07:17:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530800222; cv=none; d=google.com; s=arc-20160816; b=jp4ZCtGBDHQSRuO6oFLKoXTNHZ/5QO0kFS0n/YsDuLCL1IfqKpqH4Ur5i+geVHzaoj YC3IVyaWTOPU2t4iqiG7O1h7c4XQMwNZxC8bcJkvHN9hTa7ma5ei+eSFpQDhTbJgoq5o FQYyzDhqzSa8+3AWYx609ihr+bA1v0coJOmLD9WHr1kiVJH1bKPPdGqVdQhWolVf55z0 MUL4IFmYBphOEQNO0YLjecUox10E4v9eix5wfNgbKGR/RF9MP2X4VfTowK5O/b8LrPEp j0lvgpD2FoCEZwLvtCTOp43ovIQhnZ9Ns2TJjA3aM1wbkMDV7LPFQv8+dsw78b9K0jpN 8iAA== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:cc:to:subject :arc-authentication-results; bh=G+r5ZvhAOr1GnNtASXkqFbZj1lfoU+VbDg7ycwsZekw=; b=lUOWuMs/mNaC6gku8kxCLhnSZvNgSo2vQpvNSDpL1tUrKeWlcbQR2/6SY/8TmrE7CG ofBp2onUGnHahC5KbsxGqOjLmAOgNGdoOaATFimNgrK1RgcSx9FcO7Y/IVr3Q87Ys/hw K38Qb6jI8Gp4T0DA8OcM6VKvE+TuIcHG2bhaaY4JCkdXQDutkpa61+GgzCourbXUgWWw 7+aVudASjjnnvXSFJ20wsMHzTOjPuoUe2t47eeuzx532zNYopdj2FIHw96HcizqIYzRX 8L7AkTS58rD6LKwjOKe7Cf1zPajavmv+gy0wA9D4bm7wZxtvOlXZgthb2x/PunIgdCXO xBUQ== 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 o3-v6si6420218pfa.15.2018.07.05.07.16.38; Thu, 05 Jul 2018 07:17:02 -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 S1753820AbeGEOPx (ORCPT + 99 others); Thu, 5 Jul 2018 10:15:53 -0400 Received: from foss.arm.com ([217.140.101.70]:50576 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753785AbeGEOPv (ORCPT ); Thu, 5 Jul 2018 10:15: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 6E52318A; Thu, 5 Jul 2018 07:15:51 -0700 (PDT) Received: from [10.1.206.75] (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0DDA83F5BA; Thu, 5 Jul 2018 07:15:47 -0700 (PDT) Subject: Re: [kvmtool test PATCH 22/24] kvmtool: arm64: Add support for guest physical address size To: Auger Eric , Julien Grall , Will Deacon Cc: Suzuki K Poulose , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu, james.morse@arm.com, cdall@kernel.org, catalin.marinas@arm.com, punit.agrawal@arm.com, qemu-devel@nongnu.org References: <1530270944-11351-1-git-send-email-suzuki.poulose@arm.com> <1530270944-11351-23-git-send-email-suzuki.poulose@arm.com> <20180704140943.GF4828@arm.com> <8c9bb3cd-f673-17f3-656f-66b7e14fc73c@arm.com> <20180704155231.GP4828@arm.com> From: Marc Zyngier Organization: ARM Ltd Message-ID: <29208b59-0224-00d2-0e2a-6f53a0cbc963@arm.com> Date: Thu, 5 Jul 2018 15:15:46 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Eric, On 05/07/18 14:46, Auger Eric wrote: > Hi Marc, > > On 07/05/2018 03:20 PM, Marc Zyngier wrote: >> On 05/07/18 13:47, Julien Grall wrote: >>> Hi Will, >>> >>> On 04/07/18 16:52, Will Deacon wrote: >>>> On Wed, Jul 04, 2018 at 04:00:11PM +0100, Julien Grall wrote: >>>>> On 04/07/18 15:09, Will Deacon wrote: >>>>>> On Fri, Jun 29, 2018 at 12:15:42PM +0100, Suzuki K Poulose wrote: >>>>>>> Add an option to specify the physical address size used by this >>>>>>> VM. >>>>>>> >>>>>>> Signed-off-by: Suzuki K Poulose >>>>>>> --- >>>>>>> arm/aarch64/include/kvm/kvm-config-arch.h | 5 ++++- >>>>>>> arm/include/arm-common/kvm-config-arch.h | 1 + >>>>>>> 2 files changed, 5 insertions(+), 1 deletion(-) >>>>>>> >>>>>>> diff --git a/arm/aarch64/include/kvm/kvm-config-arch.h b/arm/aarch64/include/kvm/kvm-config-arch.h >>>>>>> index 04be43d..dabd22c 100644 >>>>>>> --- a/arm/aarch64/include/kvm/kvm-config-arch.h >>>>>>> +++ b/arm/aarch64/include/kvm/kvm-config-arch.h >>>>>>> @@ -8,7 +8,10 @@ >>>>>>> "Create PMUv3 device"), \ >>>>>>> OPT_U64('\0', "kaslr-seed", &(cfg)->kaslr_seed, \ >>>>>>> "Specify random seed for Kernel Address Space " \ >>>>>>> - "Layout Randomization (KASLR)"), >>>>>>> + "Layout Randomization (KASLR)"), \ >>>>>>> + OPT_INTEGER('\0', "phys-shift", &(cfg)->phys_shift, \ >>>>>>> + "Specify maximum physical address size (not " \ >>>>>>> + "the amount of memory)"), >>>>>> >>>>>> Given that this is a shift value, I think the help message could be more >>>>>> informative. Something like: >>>>>> >>>>>> "Specify maximum number of bits in a guest physical address" >>>>>> >>>>>> I think I'd actually leave out any mention of memory, because this does >>>>>> actually have an effect on the amount of addressable memory in a way that I >>>>>> don't think we want to describe in half of a usage message line :) >>>>> Is there any particular reasons to expose this option to the user? >>>>> >>>>> I have recently sent a series to allow the user to specify the position >>>>> of the RAM [1]. With that series in mind, I think the user would not really >>>>> need to specify the maximum physical shift. Instead we could automatically >>>>> find it. >>>> >>>> Marc makes a good point that it doesn't help for MMIO regions, so I'm trying >>>> to understand whether we can do something differently there and avoid >>>> sacrificing the type parameter. >>> >>> I am not sure to understand this. kvmtools knows the memory layout >>> (including MMIOs) of the guest, so couldn't it guess the maximum >>> physical shift for that? >> >> That's exactly what Will was trying to avoid, by having KVM to compute >> the size of the IPA space based on the registered memslots. We've now >> established that it doesn't work, so what we need to define is: >> >> - whether we need another ioctl(), or do we carry on piggy-backing on >> the CPU type, > kvm type I guess I really meant target here. Whatever you pass as a "-cpu" on your QEMU command line. >> - assuming the latter, whether we can reduce the number of bits used in >> the ioctl parameter by subtly encoding the IPA size. > Getting benefit from your Freudian slip, how should guest CPU PARange > and maximum number of bits in a guest physical address relate? Freudian? I'm not on the sofa yet... ;-) > My understanding is they are not correlated at the moment and our guest > PARange is fixed at the moment. But shouldn't they? > > On Intel there is > qemu-system-x86_64 -M pc,accel=kvm -cpu SandyBridge,phys-bits=36 > or > qemu-system-x86_64 -M pc,accel=kvm -cpu SandyBridge,host-phys-bits=true > > where phys-bits, as far as I understand has a a similar semantics as the > PARange. I think there is value in having it global, just like on x86. We don't really support heterogeneous guests anyway. Independently, we should also repaint/satinize PARange so that the guest observes the same thing, no matter what CPU it runs on (an A53/A57 system could be confusing in that respect). Thanks, M. -- Jazz is not dead. It just smells funny...