Re: kvm PCI assignment & VFIO ramblings
From: Roedel, Joerg <hidden>
Date: 2011-08-26 09:34:10
Also in:
kvm, qemu-devel
On Fri, Aug 26, 2011 at 12:20:00AM -0400, David Gibson wrote:
On Wed, Aug 24, 2011 at 01:03:32PM +0200, Roedel, Joerg wrote:quoted
On Wed, Aug 24, 2011 at 05:33:00AM -0400, David Gibson wrote:quoted
On Wed, Aug 24, 2011 at 11:14:26AM +0200, Roedel, Joerg wrote:quoted
quoted
I don't see a reason to make this meta-grouping static. It would harm flexibility on x86. I think it makes things easier on power but there are options on that platform to get the dynamic solution too.I think several people are misreading what Ben means by "static". I would prefer to say 'persistent', in that the meta-groups lifetime is not tied to an fd, but they can be freely created, altered and removed during runtime.Even if it can be altered at runtime, from a usability perspective it is certainly the best to handle these groups directly in qemu. Or are there strong reasons to do it somewhere else?Funny, Ben and I think usability demands it be the other way around.
The reason is that you mean the usability for the programmer and I mean it for the actual user of qemu :)
If the meta-groups are transient - that is lifetime tied to an fd - then any program that wants to use meta-groups *must* know the interfaces for creating one, whatever they are. But if they're persistent, the admin can use other tools to create the meta-group then just hand it to a program to use, since the interfaces for _using_ a meta-group are identical to those for an atomic group. This doesn't preclude a program from being meta-group aware, and creating its own if it wants to, of course. My guess is that qemu would not want to build its own meta-groups, but libvirt probably would.
Doing it in libvirt makes it really hard for a plain user of qemu to assign more than one device to a guest. What I want it that a user just types qemu -device vfio,host=00:01.0 -device vfio,host=00:02.0 ... and it just works. Qemu creates the meta-groups and they are automatically destroyed when qemu exits. That the programs are not aware of meta-groups is not a big problem because all software using vfio needs still to be written :) Btw, with this concept the programmer can still decide to not use meta-groups and just multiplex the mappings to all open device-fds it uses. Joerg -- AMD Operating System Research Center Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach General Managers: Alberto Bozzo, Andrew Bowd Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632