linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Karim Manaouil <karim.manaouil@linaro.org>,
	Oliver Upton <oliver.upton@linux.dev>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
	Alexander Graf <graf@amazon.com>, Alex Elder <elder@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Fuad Tabba <tabba@google.com>, Joey Gouly <joey.gouly@arm.com>,
	Jonathan Corbet <corbet@lwn.net>, Mark Brown <broonie@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Prakruthi Deepak Heragu <quic_pheragu@quicinc.com>,
	Quentin Perret <qperret@google.com>,
	Rob Herring <robh@kernel.org>,
	Srinivas Kandagatla <srini@kernel.org>,
	Srivatsa Vaddagiri <quic_svaddagi@quicinc.com>,
	Will Deacon <will@kernel.org>,
	Haripranesh S <haripran@qti.qualcomm.com>,
	Carl van Schaik <cvanscha@qti.qualcomm.com>,
	Murali Nalajala <mnalajal@quicinc.com>,
	Sreenivasulu Chalamcharla <sreeniva@qti.qualcomm.com>,
	Trilok Soni <tsoni@quicinc.com>,
	Stefan Schmidt <stefan.schmidt@linaro.org>
Subject: Re: [RFC PATCH 00/34] Running Qualcomm's Gunyah Guests via KVM in EL1
Date: Thu, 24 Apr 2025 17:57:14 +0100	[thread overview]
Message-ID: <86ikmtjy51.wl-maz@kernel.org> (raw)
In-Reply-To: <aApaGnFPhsWBZoQ2@linux.dev>

On Thu, 24 Apr 2025 16:34:50 +0100,
Oliver Upton <oliver.upton@linux.dev> wrote:
> 
> On Thu, Apr 24, 2025 at 03:13:07PM +0100, Karim Manaouil wrote:
> > This series introduces the capability of running Gunyah guests via KVM on
> > Qualcomm SoCs shipped with Gunyah hypervisor [1] (e.g. RB3 Gen2).
> > 
> > The goal of this work is to port the existing Gunyah hypervisor support from a
> > standalone driver interface [2] to KVM, with the aim of leveraging as much of the
> > existing KVM infrastructure as possible to reduce duplication of effort around
> > memory management (e.g. guest_memfd), irqfd, and other core components.
> > 
> > In short, Gunyah is a Type-1 hypervisor, meaning that it runs independently of any
> > high-level OS kernel such as Linux and runs in a higher CPU privilege level than VMs.
> > Gunyah is shipped as firmware and guests typically talk with Gunyah via hypercalls.
> > KVM is designed to run as Type-2 hypervisor. This port allows KVM to run in EL1 and
> > serve as the interface for VM lifecycle management,while offloading virtualization
> > to Gunyah.
> 
> If you're keen on running your own hypervisor then I'm sorry, you get to
> deal with it soup to nuts. Other hypervisors (e.g. mshv) have their own
> kernel drivers for managing the host / UAPI parts of driving VMs.
> 
> The KVM arch interface is *internal* to KVM, not something to be
> (ab)used for cramming in a non-KVM hypervisor. KVM and other hypervisors
> can still share other bits of truly common infrastructure, like
> guest_memfd.
> 
> I understand the value in what you're trying to do, but if you want it
> to smell like KVM you may as well just let the user run it at EL2.

+1. KVM is not a generic interface for random third party hypervisors.

If you want to run KVM on your Qualcomm HW, boot at EL2, and enjoy the
real thing -- it is worth it. If Gunyah is what you want, then there
is enough code out there to use it with crosvm.

But mixing the two is not happening, sorry.

	M.

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

  parent reply	other threads:[~2025-04-24 16:57 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-24 14:13 [RFC PATCH 00/34] Running Qualcomm's Gunyah Guests via KVM in EL1 Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 01/34] KVM: Allow arch-specific vCPU allocation and freeing Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 02/34] KVM: irqfd: Add architecture hooks for irqfd allocation and initialization Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 03/34] KVM: irqfd: Allow KVM backends to override IRQ injection via set_irq callback Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 04/34] KVM: Add weak stubs for irqchip-related functions for Gunyah builds Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 05/34] KVM: Add KVM_SET_DTB_ADDRESS ioctl to pass guest DTB address from userspace Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 06/34] KVM: gunyah: Add initial Gunyah backend support Karim Manaouil
2025-08-01 12:25   ` David Woodhouse
2025-04-24 14:13 ` [RFC PATCH 07/34] KVM: gunyah: Pin guest memory Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 08/34] docs: gunyah: Introduce Gunyah Hypervisor Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 09/34] dt-bindings: Add binding for gunyah hypervisor Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 10/34] gunyah: Common types and error codes for Gunyah hypercalls Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 11/34] gunyah: Add hypercalls to identify Gunyah Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 12/34] gunyah: Add hypervisor driver Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 13/34] gunyah: Add hypercalls to send and receive messages Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 14/34] gunyah: Add resource manager RPC core Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 15/34] gunyah: Add VM lifecycle RPC Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 16/34] gunyah: Add basic VM lifecycle management Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 17/34] gunyah: Translate gh_rm_hyp_resource into gunyah_resource Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 18/34] gunyah: Add resource tickets Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 19/34] gunyah: Add hypercalls for running a vCPU Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 20/34] gunyah: add proxy-scheduled vCPUs Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 21/34] gunyah: Add hypercalls for demand paging Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 22/34] gunyah: Add memory parcel RPC Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 23/34] gunyah: Add interfaces to map memory into guest address space Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 24/34] gunyah: Add platform ops on mem_lend/mem_reclaim Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 25/34] gunyah: Add Qualcomm Gunyah platform ops Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 26/34] gunyah: Share memory parcels Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 27/34] gunyah: Share guest VM dtb configuration to Gunyah Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 28/34] gunyah: Add RPC to enable demand paging Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 29/34] gunyah: Enable " Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 30/34] gunyah: Add RPC to set VM boot context Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 31/34] gunyah: allow userspace to set boot cpu context Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 32/34] gunyah: Add hypercalls for sending doorbell Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 33/34] KVM: gunyah: Implement irqfd interface Karim Manaouil
2025-04-24 14:13 ` [RFC PATCH 34/34] KVM: gunyah: enable KVM for Gunyah Karim Manaouil
2025-04-24 15:34 ` [RFC PATCH 00/34] Running Qualcomm's Gunyah Guests via KVM in EL1 Oliver Upton
2025-04-24 16:12   ` Trilok Soni
2025-04-24 16:43   ` Karim Manaouil
2025-04-24 16:57   ` Marc Zyngier [this message]
2025-06-19 15:50     ` David Woodhouse

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=86ikmtjy51.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=corbet@lwn.net \
    --cc=cvanscha@qti.qualcomm.com \
    --cc=elder@kernel.org \
    --cc=graf@amazon.com \
    --cc=haripran@qti.qualcomm.com \
    --cc=joey.gouly@arm.com \
    --cc=karim.manaouil@linaro.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mnalajal@quicinc.com \
    --cc=oliver.upton@linux.dev \
    --cc=pbonzini@redhat.com \
    --cc=qperret@google.com \
    --cc=quic_pheragu@quicinc.com \
    --cc=quic_svaddagi@quicinc.com \
    --cc=robh@kernel.org \
    --cc=sreeniva@qti.qualcomm.com \
    --cc=srini@kernel.org \
    --cc=stefan.schmidt@linaro.org \
    --cc=tabba@google.com \
    --cc=tsoni@quicinc.com \
    --cc=will@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).