From nobody Thu Dec 18 19:25:19 2025 Received: from mail-oa1-f74.google.com (mail-oa1-f74.google.com [209.85.160.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 874193054FE for ; Tue, 9 Dec 2025 20:52:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765313572; cv=none; b=jkBHEaZ7iGzsRBgQ2SMBgld5N6HGh9bYGkiHOB5Y8ECRvyhlGFP+sCu2YXqOGlCMIaAoeVm5kNSsE0QYLZQoWoUzA08yhYUzJSYMDD4wdZXjfueemhzZpugGiet7BGqlbvKSveMnOpyL76REmapeCvUcHi8HPI92i1wXkeK5w8o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765313572; c=relaxed/simple; bh=L6JRHNao9Dv2st9IstObJcFX6EfxZz6LafDaZCOeTJ8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=XDYELUyE4JVS0sWlAcTxZ0CNIBmsTgQBu8PwcgsnTYnbOMQw4PunP8XD7wDjn7+Tj5Hm0GSX8Bo2vJhFFJDIg5byBiOEsXSBerAjbI4nFcgFRp8zO4HFYHzotfZeJ0LjNPcHZfp7xrNd6oGzLdzQyOC1QPbwYmlLKFnqu+oORBY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--coltonlewis.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=tTA237n3; arc=none smtp.client-ip=209.85.160.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--coltonlewis.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="tTA237n3" Received: by mail-oa1-f74.google.com with SMTP id 586e51a60fabf-3e891a895e0so7066173fac.1 for ; Tue, 09 Dec 2025 12:52:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1765313562; x=1765918362; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=0zQsEiABUjsdMkMEnByRoAgIWKd7GLr6DjLwzP+aDHY=; b=tTA237n3Vh+t0TIlK504bUJ84TNu3JyywoJOfI6da3cEuIcPDmvEBP055LtGPDiUQ8 sPg87QSnOrZGUAD5KqTXFD1MV/+XIws2NjpIHidBrZcuyDlxl1+sre2N5ziwwb1/1j0s VgOAOJwCdAjDOTXYYcBhKOyJg2dwDqlxKUxgBK/dO0JQvyLFjDg53pk2EcHxDennl1im X1AKM4Tq2abZFcxxHKHvGPl/fpODydG/lhq/GDqLkYg0l8qYXxOVobanLKjGkLyQDUzZ MRFr3hkKh3qTeFVJZo5YeSzETycwsB/7Tq4ABxzdfZq/2trtFT/PF/m3QhsdODZbyJdE awSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765313562; x=1765918362; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=0zQsEiABUjsdMkMEnByRoAgIWKd7GLr6DjLwzP+aDHY=; b=FWvAxuJQ4z2+0QeT5zazjiJN565P3Sw6U7T5KyO3uyELflr3LlC0hUW8kmG8WsG3zc vB0rqprmot6XkBIWsY4H7uhw0dqmV5nuEIRIPdMkBRiWSdokBnpcAXpXoEwOY5fZOrnG QWVIAutYXU6F4SkKlqVgruHhwlDcPCfFJUTJre0ISDWifQcDqPoTj/qE1vpqUHmot1gx VTQlxtxPIjwNQUC9KXAjVcndlb8jBgeu+eMd5sWPQCGEtu8h7uGkQ1e8p2m5wiobhSU2 JRZQu4JcZh39Qeo2WCdfr7U3IuQux87v+c5VUmNXhRfaClZnvDs1xPifRn6Gi+KhIGZE gkYg== X-Forwarded-Encrypted: i=1; AJvYcCUSRnwTZquULhnhDQIM4NN4brMRrAEKI5yhZ4f0EIiS90Q9zAjDhK9x8k5FtpvZJNJ5j5ErWUujIgZap4A=@vger.kernel.org X-Gm-Message-State: AOJu0YzM1wosOqvbRw7XB3qetDxg4Anz9FgVncuZ0QmNjHnzcrJ+rpiy 1tON3XRfuOpcod1iF9ZFnnevx0N2BrdBktDB1J61cqnm1erCLplhdsv9uERhiB5wZCczChYZQhA 0XwZDPboNZlYRwrnekQxEjqTS/g== X-Google-Smtp-Source: AGHT+IFRKHeoUmjGuNFSlsmzEp/JswAlPAyHOqJKqkJs0+bQVeMX9v3ykC4h/RUbKQXV9XNTVLE12IZWXk6mEzWBCQ== X-Received: from oahn5.prod.google.com ([2002:a05:6870:3485:b0:3ec:4657:83cc]) (user=coltonlewis job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6871:8208:b0:3ec:3b3e:4f38 with SMTP id 586e51a60fabf-3f5bdbe25e0mr227516fac.36.1765313562359; Tue, 09 Dec 2025 12:52:42 -0800 (PST) Date: Tue, 9 Dec 2025 20:51:13 +0000 In-Reply-To: <20251209205121.1871534-1-coltonlewis@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251209205121.1871534-1-coltonlewis@google.com> X-Mailer: git-send-email 2.52.0.239.gd5f0c6e74e-goog Message-ID: <20251209205121.1871534-17-coltonlewis@google.com> Subject: [PATCH v5 16/24] KVM: arm64: Account for partitioning in PMCR_EL0 access From: Colton Lewis To: kvm@vger.kernel.org Cc: Paolo Bonzini , Jonathan Corbet , Russell King , Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Mingwei Zhang , Joey Gouly , Suzuki K Poulose , Zenghui Yu , Mark Rutland , Shuah Khan , Ganapatrao Kulkarni , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-perf-users@vger.kernel.org, linux-kselftest@vger.kernel.org, Colton Lewis Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure reads and writes to PMCR_EL0 conform to additional constraints imposed when the PMU is partitioned. Signed-off-by: Colton Lewis --- arch/arm64/kvm/pmu.c | 2 +- arch/arm64/kvm/sys_regs.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/kvm/pmu.c b/arch/arm64/kvm/pmu.c index 1fd012f8ff4a9..48b39f096fa12 100644 --- a/arch/arm64/kvm/pmu.c +++ b/arch/arm64/kvm/pmu.c @@ -877,7 +877,7 @@ u64 kvm_pmu_accessible_counter_mask(struct kvm_vcpu *vc= pu) u64 kvm_vcpu_read_pmcr(struct kvm_vcpu *vcpu) { u64 pmcr =3D __vcpu_sys_reg(vcpu, PMCR_EL0); - u64 n =3D vcpu->kvm->arch.nr_pmu_counters; + u64 n =3D kvm_pmu_guest_num_counters(vcpu); =20 if (vcpu_has_nv(vcpu) && !vcpu_is_el2(vcpu)) n =3D FIELD_GET(MDCR_EL2_HPMN, __vcpu_sys_reg(vcpu, MDCR_EL2)); diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index 70104087b6c7b..f2ae761625a66 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -1360,7 +1360,7 @@ static int set_pmcr(struct kvm_vcpu *vcpu, const stru= ct sys_reg_desc *r, */ if (!kvm_vm_has_ran_once(kvm) && !vcpu_has_nv(vcpu) && - new_n <=3D kvm_arm_pmu_get_max_counters(kvm)) + new_n <=3D kvm_pmu_hpmn(vcpu)) kvm->arch.nr_pmu_counters =3D new_n; =20 mutex_unlock(&kvm->arch.config_lock); --=20 2.52.0.239.gd5f0c6e74e-goog