Linux-HyperV List
 help / color / mirror / Atom feed
From: Wei Liu <wei.liu@kernel.org>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Wei Liu <wei.liu@kernel.org>,
	"Enrico Weigelt, metux IT consult" <lkml@metux.net>,
	kvm <kvm@vger.kernel.org>,
	Linux on Hyper-V List <linux-hyperv@vger.kernel.org>,
	virtualization@lists.linux-foundation.org,
	Linux Kernel List <linux-kernel@vger.kernel.org>,
	Michael Kelley <mikelley@microsoft.com>,
	Vineeth Pillai <viremana@linux.microsoft.com>,
	Sunil Muthuswamy <sunilmut@microsoft.com>,
	Nuno Das Neves <nunodasneves@linux.microsoft.com>,
	sameo@linux.intel.com, robert.bradford@intel.com,
	sebastien.boeuf@intel.com
Subject: Re: [PATCH v3 00/17] Introducing Linux root partition support for Microsoft Hypervisor
Date: Tue, 2 Feb 2021 12:16:54 +0000	[thread overview]
Message-ID: <20210202121654.5sscxniybt524b6s@liuwe-devbox-debian-v2> (raw)
In-Reply-To: <c39553770dc895d7a4f172c337f3bad77642f131.camel@infradead.org>

On Tue, Feb 02, 2021 at 10:40:43AM +0000, David Woodhouse wrote:
> On Tue, 2020-12-15 at 16:42 +0000, Wei Liu wrote:
> > On Tue, Dec 15, 2020 at 04:25:03PM +0100, Enrico Weigelt, metux IT consult wrote:
> > > On 03.12.20 00:22, Wei Liu wrote:
> > > 
> > > Hi,
> > > 
> > > > I don't follow. Do you mean reusing /dev/kvm but with a different set of
> > > > APIs underneath? I don't think that will work.
> > > 
> > > My idea was using the same uapi for both hypervisors, so that we can use
> > > the same userlands for both.
> > > 
> > > Are the semantis so different that we can't provide the same API ?
> > 
> > We can provide some similar APIs for ease of porting, but can't provide
> > 1:1 mappings. By definition KVM and MSHV are two different things. There
> > is no goal to make one ABI / API compatible with the other.
> 
> I'm not sure I understand.
> 
> KVM is the Linux userspace API for virtualisation. It is designed to be
> versatile enough that it can support multiple implementations across
> multiple architectures, including both AMD SVM and Intel VMX on x86.
> 
> Are you saying that KVM has *failed* to be versatile enough that this
> can be "just another implementation"? What are the problems? Is it
> unfixable? 

The KVM APIs are good enough to cover guest life cycle management. To
make MSHV another implementation of the KVM APIs, we essentially need to
massage the data structures both way.

They are There is also an aspect for controlling the hypervisor that
affect the whole virtualization system. KVM APIs don't handle those. We
would need /dev/mshv for that purpose alone.

There is another aspect for Microsoft Hypervisor specific features and
enhancements, which aren't applicable to KVM. Features make sense for a
specific type-1 hypervisor may not make sense for KVM (a type-2
hypervisor). We have no intention to pollute KVM APIs with those. 

All in all the latter two points make /dev/mshv is a more viable route
in the long run.

Wei.

      reply	other threads:[~2021-02-02 12:19 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-24 17:07 [PATCH v3 00/17] Introducing Linux root partition support for Microsoft Hypervisor Wei Liu
2020-11-24 17:07 ` [PATCH v3 01/17] asm-generic/hyperv: change HV_CPU_POWER_MANAGEMENT to HV_CPU_MANAGEMENT Wei Liu
2021-01-06 15:45   ` Wei Liu
2020-11-24 17:07 ` [PATCH v3 02/17] x86/hyperv: detect if Linux is the root partition Wei Liu
2020-11-24 17:07 ` [PATCH v3 03/17] Drivers: hv: vmbus: skip VMBus initialization if Linux is root Wei Liu
2020-11-24 17:07 ` [PATCH v3 04/17] iommu/hyperv: don't setup IRQ remapping when running as root Wei Liu
2020-11-24 17:07 ` [PATCH v3 05/17] clocksource/hyperv: use MSR-based access if " Wei Liu
2020-11-24 17:07 ` [PATCH v3 06/17] x86/hyperv: allocate output arg pages if required Wei Liu
2020-11-24 17:07 ` [PATCH v3 07/17] x86/hyperv: extract partition ID from Microsoft Hypervisor if necessary Wei Liu
2020-11-24 17:07 ` [PATCH v3 08/17] x86/hyperv: handling hypercall page setup for root Wei Liu
2020-11-24 17:07 ` [PATCH v3 09/17] x86/hyperv: provide a bunch of helper functions Wei Liu
2020-11-24 17:07 ` [PATCH v3 10/17] x86/hyperv: implement and use hv_smp_prepare_cpus Wei Liu
2020-11-24 17:07 ` [PATCH v3 11/17] asm-generic/hyperv: update hv_msi_entry Wei Liu
2020-11-24 17:07 ` [PATCH v3 12/17] asm-generic/hyperv: update hv_interrupt_entry Wei Liu
2020-11-24 18:05   ` David Woodhouse
2020-12-02 13:39     ` Wei Liu
2020-11-24 17:07 ` [PATCH v3 13/17] asm-generic/hyperv: introduce hv_device_id and auxiliary structures Wei Liu
2020-11-24 17:07 ` [PATCH v3 14/17] asm-generic/hyperv: import data structures for mapping device interrupts Wei Liu
2020-11-24 17:07 ` [PATCH v3 15/17] x86/hyperv: implement an MSI domain for root partition Wei Liu
2020-11-24 20:10   ` kernel test robot
2020-11-25  4:01   ` kernel test robot
2020-11-24 17:07 ` [PATCH v3 16/17] x86/ioapic: export a few functions and data structures via io_apic.h Wei Liu
2020-11-25 10:26   ` Andy Shevchenko
2020-12-02 14:11     ` Wei Liu
2020-12-02 15:18       ` Andy Shevchenko
2020-11-24 17:07 ` [PATCH v3 17/17] x86/hyperv: handle IO-APIC when running as root Wei Liu
2020-11-25  5:16   ` kernel test robot
2020-12-02 19:51 ` [PATCH v3 00/17] Introducing Linux root partition support for Microsoft Hypervisor Enrico Weigelt, metux IT consult
2020-12-02 23:22   ` Wei Liu
2020-12-15 15:25     ` Enrico Weigelt, metux IT consult
2020-12-15 16:42       ` Wei Liu
2021-02-02 10:40         ` David Woodhouse
2021-02-02 12:16           ` Wei Liu [this message]

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=20210202121654.5sscxniybt524b6s@liuwe-devbox-debian-v2 \
    --to=wei.liu@kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkml@metux.net \
    --cc=mikelley@microsoft.com \
    --cc=nunodasneves@linux.microsoft.com \
    --cc=robert.bradford@intel.com \
    --cc=sameo@linux.intel.com \
    --cc=sebastien.boeuf@intel.com \
    --cc=sunilmut@microsoft.com \
    --cc=viremana@linux.microsoft.com \
    --cc=virtualization@lists.linux-foundation.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