From: "Yi-De Wu (吳一德)" <Yi-De.Wu@mediatek.com>
To: "maz@kernel.org" <maz@kernel.org>
Cc: "corbet@lwn.net" <corbet@lwn.net>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"robh+dt@kernel.org" <robh+dt@kernel.org>,
"angelogioacchino.delregno@collabora.com"
<angelogioacchino.delregno@collabora.com>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
"MY Chuang (莊明躍)" <MY.Chuang@mediatek.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"quic_tsoni@quicinc.com" <quic_tsoni@quicinc.com>,
"Shawn Hsiao (蕭志祥)" <shawn.hsiao@mediatek.com>,
"Miles Chen (陳民樺)" <Miles.Chen@mediatek.com>,
"PeiLun Suei (隋培倫)" <PeiLun.Suei@mediatek.com>,
"Liju-clr Chen (陳麗如)" <Liju-clr.Chen@mediatek.com>,
"yi-de.wu@mediatek.corp-partner.google.com"
<yi-de.wu@mediatek.corp-partner.google.com>,
"Jades Shih (施向玨)" <jades.shih@mediatek.com>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
"conor+dt@kernel.org" <conor+dt@kernel.org>,
"yipei.chang@gmail.com" <yipei.chang@gmail.com>,
"dbrazdil@google.com" <dbrazdil@google.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"Yingshiuan Pan (潘穎軒)" <Yingshiuan.Pan@mediatek.com>,
"krzysztof.kozlowski+dt@linaro.org"
<krzysztof.kozlowski+dt@linaro.org>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
"arnd@arndb.de" <arnd@arndb.de>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"Ze-yu Wang (王澤宇)" <Ze-yu.Wang@mediatek.com>,
"will@kernel.org" <will@kernel.org>,
"Ivan Tseng (曾志軒)" <ivan.tseng@mediatek.com>
Subject: Re: [PATCH v3 3/7] virt: geniezone: Introduce GenieZone hypervisor support
Date: Mon, 22 May 2023 05:37:16 +0000 [thread overview]
Message-ID: <eebbda6330367957ea1bd082fd8a775389688bf0.camel@mediatek.com> (raw)
In-Reply-To: <86h6sakprk.wl-maz@kernel.org>
On Thu, 2023-05-18 at 09:27 +0100, Marc Zyngier wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>
>
> On Fri, 12 May 2023 09:04:01 +0100,
> Yi-De Wu <yi-de.wu@mediatek.com> wrote:
> >
> > From: "Yingshiuan Pan" <yingshiuan.pan@mediatek.com>
> >
> > GenieZone is MediaTek hypervisor solution, and it is running in EL2
> > stand alone as a type-I hypervisor. This patch exports a set of
> > ioctl
> > interfaces for userspace VMM (e.g., crosvm) to operate guest VMs
> > lifecycle (creation and destroy) on GenieZone.
> >
> > Signed-off-by: Yingshiuan Pan <yingshiuan.pan@mediatek.com>
> > Signed-off-by: Yi-De Wu <yi-de.wu@mediatek.com>
>
> [...]
>
> > +/**
> > + * gzvm_gfn_to_pfn_memslot() - Translate gfn (guest ipa) to pfn
> > (host pa),
> > + * result is in @pfn
> > + *
> > + * Leverage KVM's gfn_to_pfn_memslot(). Because
> > gfn_to_pfn_memslot() needs
> > + * kvm_memory_slot as parameter, this function populates necessary
> > fileds
> > + * for calling gfn_to_pfn_memslot().
> > + *
> > + * Return:
> > + * * 0 - Succeed
> > + * * -EFAULT - Failed to convert
> > + */
> > +static int gzvm_gfn_to_pfn_memslot(struct gzvm_memslot *memslot,
> > u64 gfn, u64 *pfn)
> > +{
> > + hfn_t __pfn;
> > + struct kvm_memory_slot kvm_slot = {0};
> > +
> > + kvm_slot.base_gfn = memslot->base_gfn;
> > + kvm_slot.npages = memslot->npages;
> > + kvm_slot.dirty_bitmap = NULL;
> > + kvm_slot.userspace_addr = memslot->userspace_addr;
> > + kvm_slot.flags = memslot->flags;
> > + kvm_slot.id = memslot->slot_id;
> > + kvm_slot.as_id = 0;
> > +
> > + __pfn = gfn_to_pfn_memslot(&kvm_slot, gfn);
> > + if (is_error_noslot_pfn(__pfn)) {
> > + *pfn = 0;
> > + return -EFAULT;
> > + }
>
> I have commented on this before: there is absolutely *no way* that
> you
> can use KVM as the unwilling helper for your stuff. You are passing
> uninitialised data to the core KVM, completely ignoring the semantics
> of all the other fields.
>
> More importantly, you are now holding us responsible for any breakage
> that would be caused to your code if we change the internals of this
> *PRIVATE FUNCTION*.
>
> Do you see Xen or Hyper-V using KVM's internals as some sort of
> backend to make their life easier? No, because they understand that
> this is off-limits, and creates an unhealthy dependency for both
> hypervisors.
>
> So this is a strong NAK. And you can trust me to keep voicing my
> opposition to this sort of horror, wherever I will see these patches.
>
> M.
>
> --
> Without deviation from the norm, progress is not possible.
Noted and fully understood. The patch for this bug fix using our own
implementation would be submitted soon.
next prev parent reply other threads:[~2023-05-22 5:37 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-12 8:03 [PATCH v3 0/7] GenieZone hypervisor drivers Yi-De Wu
2023-05-12 8:03 ` [PATCH v3 1/7] docs: geniezone: Introduce GenieZone hypervisor Yi-De Wu
2023-05-12 8:04 ` [PATCH v3 2/7] dt-bindings: hypervisor: Add MediaTek " Yi-De Wu
2023-05-12 11:09 ` Conor Dooley
2023-06-08 6:11 ` Yi-De Wu (吳一德)
2023-05-12 8:04 ` [PATCH v3 3/7] virt: geniezone: Introduce GenieZone hypervisor support Yi-De Wu
2023-05-18 8:27 ` Marc Zyngier
2023-05-22 5:37 ` Yi-De Wu (吳一德) [this message]
2023-05-12 8:04 ` [PATCH v3 4/7] virt: geniezone: Add vcpu support Yi-De Wu
2023-05-12 8:04 ` [PATCH v3 5/7] virt: geniezone: Add irqchip support for virtual interrupt injection Yi-De Wu
2023-05-12 8:04 ` [PATCH v3 6/7] virt: geniezone: Add irqfd support Yi-De Wu
2023-05-12 8:04 ` [PATCH v3 7/7] virt: geniezone: Add ioeventfd support Yi-De Wu
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=eebbda6330367957ea1bd082fd8a775389688bf0.camel@mediatek.com \
--to=yi-de.wu@mediatek.com \
--cc=Liju-clr.Chen@mediatek.com \
--cc=MY.Chuang@mediatek.com \
--cc=Miles.Chen@mediatek.com \
--cc=PeiLun.Suei@mediatek.com \
--cc=Yingshiuan.Pan@mediatek.com \
--cc=Ze-yu.Wang@mediatek.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=arnd@arndb.de \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=dbrazdil@google.com \
--cc=devicetree@vger.kernel.org \
--cc=ivan.tseng@mediatek.com \
--cc=jades.shih@mediatek.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=maz@kernel.org \
--cc=quic_tsoni@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=shawn.hsiao@mediatek.com \
--cc=will@kernel.org \
--cc=yi-de.wu@mediatek.corp-partner.google.com \
--cc=yipei.chang@gmail.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 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).