From nobody Tue Apr 15 17:10:25 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1582291352; cv=none; d=zohomail.com; s=zohoarc; b=X1kl1jPpPOHPhydMwc9uBptufiiZShuDrqnp3hHoE03VH/6CcD2XrAO1BpqeoA5xX2XCNd2mu/xqD4a3cm0TQPx33eX3szXuhBuK8Jf9zsZiE73ioE0jZmmWzr6XkRDyOg1odrZEo59fWG/y8p0WE2BK4qS5T8Gipo9mjQjBkmI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1582291352; h=Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=uveg6XQ+btPciQjR9M/wF8Pu54qyiyTAuMZo4NhoVOI=; b=aaqrb9ymY4TDbQgH1c0ocBCqVS6+txczMvm2YMlnGIvqDPArZqabe+qDu6Ube6QuAO4WBB2Q9Mzsb8fGSodXv2ExrH2rT68EPBDnhBVEEmuDdhBmkSpAiPdKea+X++HWcqhGRsWh4vFLP3PquKU5nWccSju87bbA707WDH+P6sU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1582291352042238.98756161309495; Fri, 21 Feb 2020 05:22:32 -0800 (PST) Received: from localhost ([::1]:57506 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j58GF-0004zw-03 for importer@patchew.org; Fri, 21 Feb 2020 08:22:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56793) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j582T-0007PV-Er for qemu-devel@nongnu.org; Fri, 21 Feb 2020 08:08:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j582S-00034b-2r for qemu-devel@nongnu.org; Fri, 21 Feb 2020 08:08:17 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:33740) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j582R-00033u-S8 for qemu-devel@nongnu.org; Fri, 21 Feb 2020 08:08:16 -0500 Received: by mail-wr1-x433.google.com with SMTP id u6so2020226wrt.0 for ; Fri, 21 Feb 2020 05:08:15 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id p15sm3598892wma.40.2020.02.21.05.08.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 05:08:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=uveg6XQ+btPciQjR9M/wF8Pu54qyiyTAuMZo4NhoVOI=; b=oFij9mrNkIDQEGntjoKsanDjlJHELjzSu1Lpv5MV+UXytzpOegM1ytd7/dT1cqqovN rNCd72obNVjc71pCHI10mRE1SG5MEVxcPBXpUM4XdVM8iWlOsXhE6B1BiqCxZDeE9LYJ 0bFeCdk09xilcOAn7wN5a8KyNv6xW4QVc1uJ7VzZLNDl7osuWNnuX2KIQmrPHyxXEhMd 9K3A7FQpW1lr4r6jrg68oXmlFM8F1nM+WwkF7/f4ivcVVXNiB3y7N6wlvNqaf71jBUVX CirFGRIS1r9mvyg5xJHjPYTNfyQGoxGUdLpMAvzXEjEXp+b392xpZns+mN8eErOetweb wZwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uveg6XQ+btPciQjR9M/wF8Pu54qyiyTAuMZo4NhoVOI=; b=kmMh8Ap7YC0BPdUDLm7NYuOAIzg6LILkyXjX2e8SGgVi8KY59qxCUt5JPA/v086Y1s HvZgMhQ4DzOp0quXIw036eB6pBqe3ATNuTqccOTRjF/p1dqgrUik0jHO9erqZdTiWRFq aTNV1GXTwlKXQI6kGM6Dka3PS09PTdGMrb6EcGaA2qK6Kpla+VccjJzd9lbTjzx9al4o yX+Aj6Bc3KCcJnaRCqKzOqvuqpmNrEQ7JogQu07pNCpTcSUhBA8B0WFP++yLgub+x/xz 86G/oo+XrNt9ZpMs4aniMYwOP5Gdvfvoju7C9IQbPbTf3k/u7wevpd+puguZHub3a6Vd FhmA== X-Gm-Message-State: APjAAAVvjC2GIRtlUIbXoVfQFdYWagN0YSuUwTHwdis7fW2B890W6p8O faAqQJL4U1jTTy246CSvrmxM/xbHU8ATuQ== X-Google-Smtp-Source: APXvYqzBvo/BFz4yT2cQo8cQatwmt7PNxobRbMA9xb+ylsBHr7g4zk+0fqDCKyiBXCl67JnkXAoGgg== X-Received: by 2002:adf:fa87:: with SMTP id h7mr51176917wrr.172.1582290494435; Fri, 21 Feb 2020 05:08:14 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 26/52] target/arm: Implement ARMv8.1-PMU extension Date: Fri, 21 Feb 2020 13:07:14 +0000 Message-Id: <20200221130740.7583-27-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200221130740.7583-1-peter.maydell@linaro.org> References: <20200221130740.7583-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::433 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" The ARMv8.1-PMU extension requires: * the evtCount field in PMETYPER_EL0 is 16 bits, not 10 * MDCR_EL2.HPMD allows event counting to be disabled at EL2 * two new required events, STALL_FRONTEND and STALL_BACKEND * ID register bits in ID_AA64DFR0_EL1 and ID_DFR0 We already implement the 16-bit evtCount field and the HPMD bit, so all that is missing is the two new events: STALL_FRONTEND "counts every cycle counted by the CPU_CYCLES event on which no operation was issued because there are no operations available to issue to this PE from the frontend" STALL_BACKEND "counts every cycle counted by the CPU_CYCLES event on which no operation was issued because the backend is unable to accept any available operations from the frontend" QEMU never stalls in this sense, so our implementation is trivial: always return a zero count. Reviewed-by: Richard Henderson Signed-off-by: Peter Maydell Message-id: 20200214175116.9164-14-peter.maydell@linaro.org --- target/arm/helper.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 68649121250..2fe09c1d604 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -1124,6 +1124,24 @@ static int64_t instructions_ns_per(uint64_t icount) } #endif =20 +static bool pmu_8_1_events_supported(CPUARMState *env) +{ + /* For events which are supported in any v8.1 PMU */ + return cpu_isar_feature(any_pmu_8_1, env_archcpu(env)); +} + +static uint64_t zero_event_get_count(CPUARMState *env) +{ + /* For events which on QEMU never fire, so their count is always zero = */ + return 0; +} + +static int64_t zero_event_ns_per(uint64_t cycles) +{ + /* An event which never fires can never overflow */ + return -1; +} + static const pm_event pm_events[] =3D { { .number =3D 0x000, /* SW_INCR */ .supported =3D event_always_supported, @@ -1140,8 +1158,18 @@ static const pm_event pm_events[] =3D { .supported =3D event_always_supported, .get_count =3D cycles_get_count, .ns_per_count =3D cycles_ns_per, - } + }, #endif + { .number =3D 0x023, /* STALL_FRONTEND */ + .supported =3D pmu_8_1_events_supported, + .get_count =3D zero_event_get_count, + .ns_per_count =3D zero_event_ns_per, + }, + { .number =3D 0x024, /* STALL_BACKEND */ + .supported =3D pmu_8_1_events_supported, + .get_count =3D zero_event_get_count, + .ns_per_count =3D zero_event_ns_per, + }, }; =20 /* @@ -1150,7 +1178,7 @@ static const pm_event pm_events[] =3D { * should first be updated to something sparse instead of the current * supported_event_map[] array. */ -#define MAX_EVENT_ID 0x11 +#define MAX_EVENT_ID 0x24 #define UNSUPPORTED_EVENT UINT16_MAX static uint16_t supported_event_map[MAX_EVENT_ID + 1]; =20 --=20 2.20.1