Re: Balloon driver?

Dor Laor
2007-06-08T21:41:04Z

>> > Now that more platforms are joining the KVM wagon, we should define
a
>> > common bus. PCI was a overkill anyway - its irq are shared and we
don't
>> > have to use its io/mmio areas.
>> > Do you guys have something to start with?
>> We do have something basic, our vdev bus. The bad thing is, it is
>> platform specific. I really prefer to aim for an idea that Arnd came
>> up with when discussing this issue:
>> We could define a virtual device bus.
>
>I guess, more specifically, you mean a bus_type in Linux terminology.
>
>> Now functionality like device drivers can sit on top of the
>> abstraction layer. We need to invent a similar abstraction on the
>> hypervisor side, which is a tricky task indeed.
>> The best approach into this direction I have seen so far is not our
>> own vdev thing but Rusty's virtio infrastructure. That's what I think
>> I would start with.
>
>So you suggest having a PCI driver that exports a virtio device for
>each PCI device it matches? Sounds fine to me, though it goes beyond
>what I think Rusty had in mind with his latest set of virtio
>patches.
>
>Note that contrary to what I may have said previously, I think that
>such a virtio device on top of a PCI device need not use any PCI
>specific APIs (readl/writel, pci_map_*, ioremap_, pci_dev->irq, ...)
>but could do all of that by means of a hypercall interface. The
>only real point we want to use PCI for is to find out about the
>existence of a device and to get an identifier that gets passed
>to the hypercalls.

This is exactly our current approach. This is the way the current pv
network device is implemented and also the windows balloon driver.
Currently there is a small advantage of using io port/mmio because there
is no need to define additional shared page data, but that's negligible.