All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vincent Donnefort <vdonnefort@google.com>
To: Fuad Tabba <tabba@google.com>
Cc: maz@kernel.org, oliver.upton@linux.dev, joey.gouly@arm.com,
	suzuki.poulose@arm.com, yuzenghui@huawei.com,
	catalin.marinas@arm.com, will@kernel.org, rostedt@goodmis.org,
	linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
	kernel-team@android.com, qerret@google.com
Subject: Re: [PATCH v1 0/4] trace_hyp_printk() for pKVM/nVHE hypervisor
Date: Mon, 15 Jun 2026 09:27:54 +0100	[thread overview]
Message-ID: <ai-3ii1BtOPP25zZ@google.com> (raw)
In-Reply-To: <CA+EHjTxditViT-yd+y-DZ8zM7dATVEpe8qWNGbugq6sL7KN+uw@mail.gmail.com>

On Sun, Jun 14, 2026 at 01:57:56PM +0100, Fuad Tabba wrote:
> Hi Vincent,
> 
> On Fri, 12 Jun 2026 at 15:22, Vincent Donnefort <vdonnefort@google.com> wrote:
> >
> > Hi all,
> >
> > This series adds a hypervisor event "hyp_printk" which enables
> > developers to log pretty much anything into the hypervisor tracing
> > buffer, just like the kernel function trace_printk().
> >
> > This enables rich logging from the hypervisor, while leaving all the
> > string parsing burden to the kernel. This has been the main way of
> > debugging pKVM in Android.
> 
> I tested the series on v7.1-rc7 under QEMU (cortex-a53 CPU, pKVM nVHE):
> - Booted a host under pKVM with a non-protected kvmtool guest (npVM)
> and a protected kvmtool guest (pVM).
> - Functional test: added a temporary trace_hyp_printk() call site in
> handle___kvm_vcpu_run() with 0-arg, 1-arg, and 2-arg calls. Mounted
> tracefs, enabled the hyp_printk event, ran a kvmtool guest to trigger
> vcpu_run, read the trace buffer. All expected entries appeared with
> correctly formatted output.

Thanks for the testing!

> 
> One question: kvm_hyp_trace_init() returns early when
> is_kernel_in_hyp_mode() is true. On VHE-capable hardware, pKVM uses
> hVHE. So it seams that the entire hyp tracing subsystem (not just
> hyp_printk) is non-functional in hVHE mode. Is hVHE support
> intentionally deferred?

You got me scared for a moment but I did try hVHE and it seems alright:

  [    5.369985] kvm [1]: Protected hVHE mode initialized successfully

  $ ls /sys/kernel/tracing/remotes/hypervisor/

is_kernel_in_hyp_mode() just checks if the kernel is running at EL2 which it
shouldn't in the hVHE case?

> 
> Cheers,
> /fuad
> 
> >
> > Even though not strictly related to trace_hyp_printk, I have added the
> > following two patches:
> >
> >   * KVM: arm64: Allow early calls to pKVM host_share/unshare_hyp
> >
> >     This one mainly intends to support one of the new features I have
> >     posted here [1], which allows to enable tracing as early as
> >     possible. I have added it here to limit cross-posting.
> >
> >   * KVM: arm64: Move kvm_define_hypevents.h to arch/arm64/kvm/
> >
> >     This one is just a cleanup.
> >
> > [1] https://lore.kernel.org/all/20260605163825.1762953-1-vdonnefort@google.com/
> >
> > Vincent Donnefort (4):
> >   KVM: arm64: Allow early calls to pKVM host_share/unshare_hyp
> >   KVM: arm64: Move kvm_define_hypevents.h to arch/arm64/kvm/
> >   tracing/remotes: Add REMOTE_EVENT_CUSTOM_PRINTK() helper
> >   KVM: arm64: Add hyp_printk event to nVHE/pKVM hyp
> >
> >  arch/arm64/include/asm/kvm_asm.h              |  4 +-
> >  arch/arm64/include/asm/kvm_hypevents.h        | 14 ++++
> >  arch/arm64/include/asm/kvm_hyptrace.h         |  8 +++
> >  arch/arm64/kernel/image-vars.h                |  1 +
> >  arch/arm64/kernel/vmlinux.lds.S               |  4 ++
> >  .../define_hypevents.h}                       |  0
> >  .../kvm/hyp/include/nvhe/define_events.h      |  2 -
> >  arch/arm64/kvm/hyp/include/nvhe/trace.h       | 65 +++++++++++++++++++
> >  arch/arm64/kvm/hyp/nvhe/events.c              |  6 ++
> >  arch/arm64/kvm/hyp/nvhe/hyp-main.c            |  2 +-
> >  arch/arm64/kvm/hyp_trace.c                    | 60 ++++++++++++++++-
> >  include/trace/define_remote_events.h          | 19 +++++-
> >  12 files changed, 176 insertions(+), 9 deletions(-)
> >  rename arch/arm64/{include/asm/kvm_define_hypevents.h => kvm/define_hypevents.h} (100%)
> >
> >
> > base-commit: 4549871118cf616eecdd2d939f78e3b9e1dddc48
> > --
> > 2.54.0.1136.gdb2ca164c4-goog
> >


  reply	other threads:[~2026-06-15  8:28 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-12 14:22 [PATCH v1 0/4] trace_hyp_printk() for pKVM/nVHE hypervisor Vincent Donnefort
2026-06-12 14:22 ` [PATCH v1 1/4] KVM: arm64: Allow early calls to pKVM host_share/unshare_hyp Vincent Donnefort
2026-06-12 14:43   ` sashiko-bot
2026-06-14 13:39   ` Fuad Tabba
2026-06-12 14:22 ` [PATCH v1 2/4] KVM: arm64: Move kvm_define_hypevents.h to arch/arm64/kvm/ Vincent Donnefort
2026-06-14 13:41   ` Fuad Tabba
2026-06-12 14:22 ` [PATCH v1 3/4] tracing/remotes: Add REMOTE_EVENT_CUSTOM_PRINTK() helper Vincent Donnefort
2026-06-12 14:40   ` sashiko-bot
2026-06-14 14:46   ` Fuad Tabba
2026-06-12 14:22 ` [PATCH v1 4/4] KVM: arm64: Add hyp_printk event to nVHE/pKVM hyp Vincent Donnefort
2026-06-12 14:33   ` sashiko-bot
2026-06-14 15:25   ` Fuad Tabba
2026-06-15  8:29     ` Vincent Donnefort
2026-06-14 12:57 ` [PATCH v1 0/4] trace_hyp_printk() for pKVM/nVHE hypervisor Fuad Tabba
2026-06-15  8:27   ` Vincent Donnefort [this message]
2026-06-15  8:30     ` Fuad Tabba
2026-06-15  8:57       ` Fuad Tabba

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=ai-3ii1BtOPP25zZ@google.com \
    --to=vdonnefort@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=joey.gouly@arm.com \
    --cc=kernel-team@android.com \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=maz@kernel.org \
    --cc=oliver.upton@linux.dev \
    --cc=qerret@google.com \
    --cc=rostedt@goodmis.org \
    --cc=suzuki.poulose@arm.com \
    --cc=tabba@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.