Re: Thoughts about introducing virtio-cpu

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

 



Hi Christian,

On Mon, 2019-04-01 at 13:57 +0200, Christian Borntraeger wrote:
> 
> On 27.03.19 16:46, David Hildenbrand wrote:
> > On 27.03.19 15:45, Boeuf, Sebastien wrote:
> > > Hi everyone,
> > > 
> > > I have recently learned about the on-going work from David
> > > Hildenbrand
> > > about virtio-mem, with a strong focus on proposing a unified
> > > solution
> > > for every architecture, which is the point of using
> > > paravirtualization
> > > here.
> > > This proposes a standardized way across different hypervisors to
> > > manage
> > > the guest RAM available, which at the same time will allow for a
> > > clean
> > > memory hot(un)plug support.
> > > 
> > > Based on this, I was thinking that once this will be ready, and
> > > assuming you manage your devices through a PCI bus, the last bit
> > > to get
> > > rid of ACPI dependency would be about CPU. We could standardize
> > > the way
> > > vCPUs are created and managed by each hypervisors by introducing
> > > virtio-cpu. And the same way I mentioned architecture agnostic
> > > and
> > > clean hotplug for virtio-mem, I would expect this new virtio
> > > device to
> > > target the same goals.
> > > 
> > > The end goal is to propose an approach where hypervisors could be
> > > unified across architectures, which would be convenient to
> > > support CPU
> > > hotplug features, without being forced to use ACPI only for this
> > > purpose.
> > > 
> > > I am really looking for community's feedback here, as I would
> > > like to
> > > understand if there are some technical reasons why this approach
> > > would
> > > not be feasible/acceptable. Also, please let me know if there is
> > > already some on-going work, I'd be happy to participate!
> > > 
> > > Thanks,
> > > Sebastien
> > > 
> > 
> > CCing MST, David G., Christian B.,
> > 
> > In general, on the QEMU side, CPUs are way more different between
> > architectures than e.g. blocks of memory we want to hot(un)plug
> > (virtio-mem). Especially different might be CPU topologies, but
> > also
> > different kinds of IDs and how everything is setup/tear down in
> > QEMU.
> > Then we have CPU features .... The SPAPR architecture which can
> > plug
> > CPUs and COREs pops into my head.
> > 
> > As I am most familiar with the s390x architecture:
> > 
> > We have cpu hotplug support as part of the architecture (e.g.
> > interrupts), but no cpu unplug support. So for the purpose of real
> > CPU
> > unplug, something like that would be required to get it working
> > (without
> > HW or SCLP specification changes).
> > 
> > What would it look like on the QEMU cmdline for s390x?
> > 
> > -device virtio-cpu,model=qemu-s390x-cpu,core-id=1,id=cpu1
> > 
> > vs
> > 
> > -device qemu-s390x-cpu,core-id=1,id=cpu1
> > 
> > device_del cpu1
> > 
> > 
> > I guess there will be quite some issues to be sorted out.
> 
> 
> Claudio has a prototype for the sclp-based unplug, we just need to
> get this
> in the hands of the architects. 

Any pointer to this prototype?

> 
> 
> Anyway, I think that CPUs really differ more than memory. We tried to
> get the cpu
> hotplug proper several years ago and it took quite a while to get
> this right for
> all kind of architectures. With that in mind, I guess that a virtio-
> cpu is
> probably far from easy.

I understand it would not be easy, but it is okay if the idea is
approved and supported by the community as they see this solution as a
generic way to handle the complex CPU use case.
That's why I'm looking for guidance here :)

>  This will also have a lot of churn in the guest operating
> systems. 

Do you have some examples in mind?

> 
> Is your main goal to avoid ACPI?

Yes. In the context of supporting general hotplug
(CPU/Memory/devices(PCI)), CPU is the last bit that will force us to
use ACPI.

> 


Thanks,
Sebastien




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux