OLS BoF? Mainline Virtualization API status?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nivedita Singhvi wrote:

 > What is the current state of mainline inclusion?
 >
 > Is there a set of tasks/patches/timetable that we can agree
 > to prior to KS/OLS? I'm hoping so..and when Rusty gets back


Summarizing/quoting here for the community some conversation
that took place off-list, from a related thread, so that the
discussion can continue here...

thanks,
Nivedita

---
Chris Wright wrote:

> Here's my (intentionally simplified) take:
> 
> 1) Xen
>    pros - supports Xen w/out requiring major changes
>    cons - doesn't support other projects directly, informal API (some
>    bits are pushed into shared data structures w/ no formal API)
> 
> 2) VMI
>    pros - supports binary plug and play for the platform (native,
>    hypervisor du jour)
>    cons - the binary interface, requires an extra glue-layer that is
>    neither hv nor kernel, no users.
> 
> 3) paravirt_ops
>    pros - can support multiple platforms, glue layer is part of kernel source
>    cons - no users and just an early prototype (so we need more API to
>    evaluate)
> 
> Personally, I think the following makes good sense:
> 
> 1) Get subarch stuff done, merge Xen
> 2) Refine paravirt_ops, refactor Xen to use paravirt_ops, merge paravirt_ops
> 3) Refine paravirt_ops, more focus on binary interface for both
> optimisation and flexibility (moving more towards VMI).
> 
> This is _not_ to discredit the VMI work at all.  I think it's got some
> quite useful and cool ideas.  I think it's too soon to freeze the ABI,
> and that we can evolve paravirt_ops towards something that looks vaguely
> similar to VMI in a longer term, while making progress along the way.


To which Rusty Russell responded:
> I'll have to see your latest patches.  I'd hope we're going to share
> compile-time interfaces as much as reasonable.  If we're too divergent,
> I would disagree with merging Xen, since we'll just be whiplashing the
> core code.  If the core would remain mostly undisturbed, I would have no
> real objection to this path.
> 
> Could you consider one minor thing.  I've been thinking it might be good
> to have have CONFIG_PARAVIRT with child CONFIG_XEN.
> 
> Later on, we add other children (CONFIG_VMI, CONFIG_NATIVE, etc).  If
> they choose multiple options, we use paravirt_ops rather than direct
> calls.  I don't know if this is overkill, but I do know that the hoops
> Linux/Xen has to jump through to do cli w/SMP and PREEMPT are too large
> to fit in any reasonable-size inline patch 8(


And Chris came back with:

>>> I'll have to see your latest patches.  I'd hope we're going to share
>>> compile-time interfaces as much as reasonable.  If we're too divergent,
>>> I would disagree with merging Xen, since we'll just be whiplashing the
>>> core code.  If the core would remain mostly undisturbed, I would have no
>>> real objection to this path.
> 
> 
> That's the core issue...defining the API.  True, the paravirt_ops route
> is slightly different from the subarch route in terms of source code
> layout, and could result in excessive churn.  From the POV of API,
> they're encapsulating roughly the same requirements, so I do think
> excessive churn is avoidable.
> 
> 
>>> Could you consider one minor thing.  I've been thinking it might be good
>>> to have have CONFIG_PARAVIRT with child CONFIG_XEN.
> 
> 
> The subarch method sort of does that naturally, introduce a new subarch
> and its config and you're done.  However, its shortcoming is mutually
> exclusive config items w/out some dynamic way (VMI, paravirt_ops, or
> similar) to update the subarch overrides.
> 
> 
>>> Later on, we add other children (CONFIG_VMI, CONFIG_NATIVE, etc).  If
>>> they choose multiple options, we use paravirt_ops rather than direct
>>> calls.  I don't know if this is overkill, but I do know that the hoops
>>> Linux/Xen has to jump through to do cli w/SMP and PREEMPT are too large
>>> to fit in any reasonable-size inline patch 8(
> 
> 
> Yeah, there was just some talk of disallowing PREEMPT and simplifying
> that bit.  But, I'd think we'd want to always use the paravirt_ops once
> we have them.
> 






[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux