Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp4829082ybi; Tue, 28 May 2019 03:14:20 -0700 (PDT) X-Google-Smtp-Source: APXvYqzQGFKmOwyUepAqcQF5HfkY1+y9NY2Mcuk8kh0obN1Pbnl4DtHHUq3Jr2Npu3Hdf0lRvoJH X-Received: by 2002:a17:902:e40a:: with SMTP id ci10mr86966386plb.195.1559038460405; Tue, 28 May 2019 03:14:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559038460; cv=none; d=google.com; s=arc-20160816; b=ZxnUxKUcz7638ZmCeZqjohZpCG3h3pHIEKfxByzXR+IbO/hzGml1mjLrK6OTqOUHLD aGoITYAAaxgnfUZBqnOVD/RIMbH7ax5HjqDLWto0FZWJgpFUCVcP6JztycPT46LIweR/ ojzREgLQ7GPVXjvpU69jcVXo+te541Gp1JCrSh1zDf5bGK1plwwFYTmbJ7uIbBzcFDDD rsveIR1vwy42DfOwH2NF5YLnT2ENPkySI2SKKoaiNlaev7aG6QGVnftuBHrbhXdAokKc eAqUV93ZUIgWBrvUzhEui13roMpdvQ+/gW82RYwzK99CENm3t2PSQe1uibB6jYlUUQcW SQzw== 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; bh=xQgEQThExZsj0mVTmR/IYhQZ6th2LwkIGuhDHu6sqoI=; b=W+jo0sI80jTfHmeASWEcpTvUaLAjjyt+htUpzZrVrWHsjlwZ0PtAZ1cZqT2P0cpljs qSLNyi1BHXAefhV2V/BeyAKAJWsZKlqVCjctgKFT+hS+G3hKhR0KT7Jn6R+rPQQDinEN KJe19YmAu9fsi49lkNNOv3t4WNULMwGcgR7ev8fKPl59oPyiToPkOMr/k2D84Shl1FPc x+bngifLqDm3MSVsVjcGWfEtk47QlRAg8Iz8JxJY3Kbb0XtKRAhvvXw2oJ1NiGfyeiXv 5TA7HbzCl2764BYIshVZWt+ol/GznqEySWO//a+6v4Uo0J+qQA+IEWMuhigmTHZOrGB1 WxFA== 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 d1si2734497pjv.85.2019.05.28.03.14.03; Tue, 28 May 2019 03:14:20 -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 S1726560AbfE1KLg (ORCPT + 99 others); Tue, 28 May 2019 06:11:36 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:54176 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726362AbfE1KLg (ORCPT ); Tue, 28 May 2019 06:11:36 -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 5E041341; Tue, 28 May 2019 03:11:35 -0700 (PDT) Received: from e103592.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B45033F59C; Tue, 28 May 2019 03:11:33 -0700 (PDT) Date: Tue, 28 May 2019 11:11:31 +0100 From: Dave Martin To: Amit Daniel Kachhap Cc: Marc Zyngier , Catalin Marinas , Will Deacon , linux-kernel@vger.kernel.org, Kristina Martsenko , Ramana Radhakrishnan , kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org Subject: Re: [kvmtool PATCH v10 5/5] KVM: arm/arm64: Add a vcpu feature for pointer authentication Message-ID: <20190528101128.GB28398@e103592.cambridge.arm.com> References: <1555994558-26349-1-git-send-email-amit.kachhap@arm.com> <1555994558-26349-6-git-send-email-amit.kachhap@arm.com> <20190423154625.GP3567@e103592.cambridge.arm.com> <3b7bafc9-5d6a-7845-ef1f-577ea59000e2@arm.com> <20190424134120.GW3567@e103592.cambridge.arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190424134120.GW3567@e103592.cambridge.arm.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 24, 2019 at 02:41:21PM +0100, Dave Martin wrote: > On Wed, Apr 24, 2019 at 12:32:22PM +0530, Amit Daniel Kachhap wrote: > > Hi, > > > > On 4/23/19 9:16 PM, Dave Martin wrote: [...] > > >>diff --git a/arm/kvm-cpu.c b/arm/kvm-cpu.c > > >>index 7780251..acd1d5f 100644 > > >>--- a/arm/kvm-cpu.c > > >>+++ b/arm/kvm-cpu.c > > >>@@ -68,6 +68,18 @@ struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm, unsigned long cpu_id) > > >> vcpu_init.features[0] |= (1UL << KVM_ARM_VCPU_PSCI_0_2); > > >> } > > >>+ /* Check Pointer Authentication command line arguments. */ > > >>+ if (kvm->cfg.arch.enable_ptrauth && kvm->cfg.arch.disable_ptrauth) > > >>+ die("Both enable-ptrauth and disable-ptrauth option cannot be present"); > > > > > >Preferably, print the leading dashes, the same as the user would see > > >on the command line (e.g., --enable-ptrauth, --disable-ptrauth). > > > > > >For brevity, we could write something like: > > > > > > die("--enable-ptrauth conflicts with --disable-ptrauth"); [...] > > >>@@ -106,8 +118,12 @@ struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm, unsigned long cpu_id) > > >> die("Unable to find matching target"); > > >> } > > >>- if (err || target->init(vcpu)) > > >>- die("Unable to initialise vcpu"); > > >>+ if (err || target->init(vcpu)) { > > >>+ if (kvm->cfg.arch.enable_ptrauth) > > >>+ die("Unable to initialise vcpu with pointer authentication feature"); > > > > > >We don't special-case this error message for any other feature yet: > > >there are a variety of reasons why we might have failed, so suggesting > > >that the failure is something to do with ptrauth may be misleading to > > >the user. > > > > > >If we want to be more informative, we could do something like the > > >following: > > > > > > bool supported; > > > > > > supported = kvm__supports_extension(kvm, KVM_CAP_ARM_PTRAUTH_ADDRESS) && > > > kvm__supports_extension(kvm, KVM_CAP_ARM_PTRAUTH_GENERIC); > > > > > > if (kvm->cfg.arch.enable_ptrauth && !supported) > > > die("--enable-ptrauth not supported on this host"); > > > > > > if (supported && !kvm->cfg.arch.disable_ptrauth) > > > vcpu_init.features[0] |= ARM_VCPU_PTRAUTH_FEATURE; > > > > > > /* ... */ > > > > > > if (err || target->init(vcpu)) > > > die("Unable to initialise vcpu"); > > > > > >We don't do this for any other feature today, but since it helps the > > >user to understand what went wrong it's probably a good idea. > > Yes this is more clear. As Mark has picked the core guest ptrauth patches. I > > will post this changes as standalone. > > Sounds good. (I also need to do that separately for SVE...) Were you planning to repost this? Alternatively, I can fix up the diagnostic messages discussed here and post it together with the SVE support. I'll do that locally for now, but let me know what you plan to do. I'd like to get the SVE support posted soon so that people can test it. Cheers ---Dave