All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Vincent Donnefort <vdonnefort@google.com>
Cc: rostedt@goodmis.org, mhiramat@kernel.org,
	mathieu.desnoyers@efficios.com,
	linux-trace-kernel@vger.kernel.org, oliver.upton@linux.dev,
	joey.gouly@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com,
	kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	jstultz@google.com, qperret@google.com, will@kernel.org,
	aneesh.kumar@kernel.org, kernel-team@android.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v9 21/30] KVM: arm64: Initialise hyp_nr_cpus for nVHE hyp
Date: Wed, 07 Jan 2026 13:45:11 +0000	[thread overview]
Message-ID: <86cy3lmt94.wl-maz@kernel.org> (raw)
In-Reply-To: <20251202093623.2337860-22-vdonnefort@google.com>

On Tue, 02 Dec 2025 09:36:14 +0000,
Vincent Donnefort <vdonnefort@google.com> wrote:
> 
> Knowing the number of CPUs is necessary for determining the boundaries
> of per-cpu variables, which will be used for upcoming hypervisor
> tracing. hyp_nr_cpus which stores this value, is only initialised for
> the pKVM hypervisor. Make it accessible for the nVHE hypervisor as well.
> 
> With the kernel now responsible for initialising hyp_nr_cpus, the
> nr_cpus parameter is no longer needed in __pkvm_init.
> 
> Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
> 
> diff --git a/arch/arm64/include/asm/kvm_hyp.h b/arch/arm64/include/asm/kvm_hyp.h
> index e6be1f5d0967..b169d85458f9 100644
> --- a/arch/arm64/include/asm/kvm_hyp.h
> +++ b/arch/arm64/include/asm/kvm_hyp.h
> @@ -128,8 +128,7 @@ void __noreturn __hyp_do_panic(struct kvm_cpu_context *host_ctxt, u64 spsr,
>  #ifdef __KVM_NVHE_HYPERVISOR__
>  void __pkvm_init_switch_pgd(phys_addr_t pgd, unsigned long sp,
>  		void (*fn)(void));
> -int __pkvm_init(phys_addr_t phys, unsigned long size, unsigned long nr_cpus,
> -		unsigned long *per_cpu_base, u32 hyp_va_bits);
> +int __pkvm_init(phys_addr_t phys, unsigned long size, unsigned long *per_cpu_base, u32 hyp_va_bits);
>  void __noreturn __host_enter(struct kvm_cpu_context *host_ctxt);
>  #endif
>  
> @@ -146,5 +145,6 @@ extern u64 kvm_nvhe_sym(id_aa64smfr0_el1_sys_val);
>  extern unsigned long kvm_nvhe_sym(__icache_flags);
>  extern unsigned int kvm_nvhe_sym(kvm_arm_vmid_bits);
>  extern unsigned int kvm_nvhe_sym(kvm_host_sve_max_vl);
> +extern unsigned long kvm_nvhe_sym(hyp_nr_cpus);
>  
>  #endif /* __ARM64_KVM_HYP_H__ */
> diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
> index 052bf0d4d0b0..7ba427f9608c 100644
> --- a/arch/arm64/kvm/arm.c
> +++ b/arch/arm64/kvm/arm.c
> @@ -35,6 +35,7 @@
>  #include <asm/kvm_arm.h>
>  #include <asm/kvm_asm.h>
>  #include <asm/kvm_emulate.h>
> +#include <asm/kvm_hyp.h>
>  #include <asm/kvm_mmu.h>
>  #include <asm/kvm_nested.h>
>  #include <asm/kvm_pkvm.h>
> @@ -2396,7 +2397,7 @@ static int __init do_pkvm_init(u32 hyp_va_bits)
>  	preempt_disable();
>  	cpu_hyp_init_context();
>  	ret = kvm_call_hyp_nvhe(__pkvm_init, hyp_mem_base, hyp_mem_size,
> -				num_possible_cpus(), kern_hyp_va(per_cpu_base),
> +				kern_hyp_va(per_cpu_base),
>  				hyp_va_bits);
>  	cpu_hyp_init_features();
>  
> @@ -2605,6 +2606,8 @@ static int __init init_hyp_mode(void)
>  		kvm_nvhe_sym(kvm_arm_hyp_percpu_base)[cpu] = (unsigned long)page_addr;
>  	}
>  
> +	kvm_nvhe_sym(hyp_nr_cpus) = num_possible_cpus();

Is num_possible_cpus() always the correct thing to do? Given that pKVM
doesn't support late onlining, this really should be the number of
online CPUs.

Probably not a big deal, but worth thinking about it.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.

  reply	other threads:[~2026-01-07 13:45 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-02  9:35 [PATCH v9 00/30] Tracefs support for pKVM Vincent Donnefort
2025-12-02  9:35 ` [PATCH v9 01/30] ring-buffer: Add page statistics to the meta-page Vincent Donnefort
2025-12-02  9:35 ` [PATCH v9 02/30] ring-buffer: Store bpage pointers into subbuf_ids Vincent Donnefort
2025-12-02  9:35 ` [PATCH v9 03/30] ring-buffer: Introduce ring-buffer remotes Vincent Donnefort
2025-12-02  9:35 ` [PATCH v9 04/30] ring-buffer: Add non-consuming read for " Vincent Donnefort
2025-12-02  9:35 ` [PATCH v9 05/30] tracing: Introduce trace remotes Vincent Donnefort
2025-12-02  9:35 ` [PATCH v9 06/30] tracing: Add reset to " Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 07/30] tracing: Add non-consuming read " Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 08/30] tracing: Add init callback " Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 09/30] tracing: Add events " Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 10/30] tracing: Add events/ root files " Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 11/30] tracing: Add helpers to create trace remote events Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 12/30] ring-buffer: Export buffer_data_page and macros Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 13/30] tracing: Introduce simple_ring_buffer Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 14/30] tracing: Add a trace remote module for testing Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 15/30] tracing: selftests: Add trace remote tests Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 16/30] Documentation: tracing: Add tracing remotes Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 17/30] tracing: load/unload page callbacks for simple_ring_buffer Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 18/30] tracing: Check for undefined symbols in simple_ring_buffer Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 19/30] KVM: arm64: Add PKVM_DISABLE_STAGE2_ON_PANIC Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 20/30] KVM: arm64: Add clock support to nVHE/pKVM hyp Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 21/30] KVM: arm64: Initialise hyp_nr_cpus for nVHE hyp Vincent Donnefort
2026-01-07 13:45   ` Marc Zyngier [this message]
2025-12-02  9:36 ` [PATCH v9 22/30] KVM: arm64: Support unaligned fixmap in the pKVM hyp Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 23/30] KVM: arm64: Add tracing capability for the nVHE/pKVM hyp Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 24/30] KVM: arm64: Add trace remote " Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 25/30] KVM: arm64: Sync boot clock with " Vincent Donnefort
2026-01-07 14:23   ` Marc Zyngier
2026-01-23 12:12     ` Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 26/30] KVM: arm64: Add trace reset to " Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 27/30] KVM: arm64: Add event support to the nVHE/pKVM hyp and trace remote Vincent Donnefort
2025-12-02  9:36 ` [PATCH v9 28/30] KVM: arm64: Add hyp_enter/hyp_exit events to nVHE/pKVM hyp Vincent Donnefort
2026-01-07 14:37   ` Marc Zyngier
2026-01-07 16:36     ` Steven Rostedt
2025-12-02  9:36 ` [PATCH v9 29/30] KVM: arm64: Add selftest event support " Vincent Donnefort
2026-01-07 15:40   ` Marc Zyngier
2026-01-23 12:14     ` Vincent Donnefort
2026-01-23 12:21       ` Vincent Donnefort
2026-01-23 12:47         ` Marc Zyngier
2026-01-23 12:47       ` Marc Zyngier
2025-12-02  9:36 ` [PATCH v9 30/30] tracing: selftests: Add hypervisor trace remote tests Vincent Donnefort
2026-01-07 16:00 ` [PATCH v9 00/30] Tracefs support for pKVM Marc Zyngier
2026-01-07 16:59   ` Steven Rostedt
2026-01-16 10:08     ` Marc Zyngier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86cy3lmt94.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=aneesh.kumar@kernel.org \
    --cc=joey.gouly@arm.com \
    --cc=jstultz@google.com \
    --cc=kernel-team@android.com \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=oliver.upton@linux.dev \
    --cc=qperret@google.com \
    --cc=rostedt@goodmis.org \
    --cc=suzuki.poulose@arm.com \
    --cc=vdonnefort@google.com \
    --cc=will@kernel.org \
    --cc=yuzenghui@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.