Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3478363ybl; Fri, 20 Dec 2019 09:57:37 -0800 (PST) X-Google-Smtp-Source: APXvYqzWems/g/obK1eOc8bDRA9aA+ujQIAejmM+mb+XEUjUTZcNriMctNPGGtj3lCa4ZNE0caI3 X-Received: by 2002:a9d:3e16:: with SMTP id a22mr14823273otd.259.1576864657805; Fri, 20 Dec 2019 09:57:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576864657; cv=none; d=google.com; s=arc-20160816; b=LHybc8SKMLvIh56dWiBuIuYir3TGnlZUHp4y3J83CNbQi9Vm1PgGtVQO/rAMmKwH32 PuBG6iOVuSgYaRpVXm9jGHCMoxtY57ihKWVzJfL+nZXBzeaYu5FltVCjBSGQBkjnxHIy EdCvpGM/anSwCy15hHGu3+FeM1VhENrMFBcDC2Ta+IFSiyen885z1pvEy6egSFboUmt4 eApBqIZfOQ5aeVroF3H/JA+LksOiSX1EBkvu2tijc0gQXRcIlohCp3sYK+aVsk2DZluH V/v56rf+cojWfJygkhDxtQ9MpClkOsJ+CLVEwovzhFD65yRmrrLr1ILl0DopJuPNGQcS ZQFQ== 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=1pKuO5Amx289COPqH0a6dZXDhTxqCOyBVaJxQx2g6b0=; b=cHhheLXUzNFV45i8lOitMcKk82WpcFXu0XOVN3luR0huisJ3wf6xkuLRC0Le/6R2Zq CIviFU9ueFv0UwBk0yM8ntvG4jsQS9zBzu1eQTcF7mCArih4Jb0zaiN2IdM4EZOrSpn+ X4RhTh6P9YwYBi1vuFIDKhL0zWDAEFUB0cKOq3VadvCuQDOZn6UIoopVHPbuxrA5jsxo HWfuJLw7XKF/JvWU0G7oYcvOjvRa2YJCppheT7nEhKH/YQCu3m3wOya61RHtpUYrFrWr h1sk2CZ1h8aqNKAze9zIQeIPEoXxQVgeCggogQO+YKP+WMQNKm0dKdWQ0vFtNoQiaMxf SZdQ== 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 i13si5283439otc.228.2019.12.20.09.57.26; Fri, 20 Dec 2019 09:57:37 -0800 (PST) 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 S1727485AbfLTRz3 (ORCPT + 99 others); Fri, 20 Dec 2019 12:55:29 -0500 Received: from foss.arm.com ([217.140.110.172]:53762 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727421AbfLTRz2 (ORCPT ); Fri, 20 Dec 2019 12:55:28 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 619A01FB; Fri, 20 Dec 2019 09:55:28 -0800 (PST) Received: from lakrids.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2D2C13F67D; Fri, 20 Dec 2019 09:55:27 -0800 (PST) Date: Fri, 20 Dec 2019 17:55:25 +0000 From: Mark Rutland To: Andrew Murray Cc: Marc Zyngier , Catalin Marinas , Will Deacon , Sudeep Holla , kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 00/18] arm64: KVM: add SPE profiling support Message-ID: <20191220175524.GC25258@lakrids.cambridge.arm.com> References: <20191220143025.33853-1-andrew.murray@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191220143025.33853-1-andrew.murray@arm.com> User-Agent: Mutt/1.11.1+11 (2f07cb52) (2018-12-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Andrew, On Fri, Dec 20, 2019 at 02:30:07PM +0000, Andrew Murray wrote: > This series implements support for allowing KVM guests to use the Arm > Statistical Profiling Extension (SPE). > > It has been tested on a model to ensure that both host and guest can > simultaneously use SPE with valid data. E.g. > > $ perf record -e arm_spe/ts_enable=1,pa_enable=1,pct_enable=1/ \ > dd if=/dev/zero of=/dev/null count=1000 > $ perf report --dump-raw-trace > spe_buf.txt What happens if I run perf record on the VMM, or on the CPU(s) that the VMM is running on? i.e. $ perf record -e arm_spe/ts_enable=1,pa_enable=1,pct_enable=1/ \ lkvm ${OPTIONS_FOR_GUEST_USING_SPE} ... or: $ perf record -a -c 0 -e arm_spe/ts_enable=1,pa_enable=1,pct_enable=1/ \ sleep 1000 & $ taskset -c 0 lkvm ${OPTIONS_FOR_GUEST_USING_SPE} & > As we save and restore the SPE context, the guest can access the SPE > registers directly, thus in this version of the series we remove the > trapping and emulation. > > In the previous series of this support, when KVM SPE isn't supported > (e.g. via CONFIG_KVM_ARM_SPE) we were able to return a value of 0 to > all reads of the SPE registers - as we can no longer do this there isn't > a mechanism to prevent the guest from using SPE - thus I'm keen for > feedback on the best way of resolving this. When not providing SPE to the guest, surely we should be trapping the registers and injecting an UNDEF? What happens today, without these patches? > It appears necessary to pin the entire guest memory in order to provide > guest SPE access - otherwise it is possible for the guest to receive > Stage-2 faults. AFAICT these patches do not implement this. I assume that's what you're trying to point out here, but I just want to make sure that's explicit. Maybe this is a reason to trap+emulate if there's something more sensible that hyp can do if it sees a Stage-2 fault. Thanks, Mark.