On Wed, Jun 19, 2019 at 12:46:33PM -0600, Alex Williamson wrote:
On Wed, 19 Jun 2019 11:46:59 +0200
Cornelia Huck <cohuck(a)redhat.com> wrote:
> On Wed, 19 Jun 2019 08:28:02 +0100
> Daniel P. Berrangé <berrange(a)redhat.com> wrote:
>
> > On Tue, Jun 18, 2019 at 04:12:10PM -0600, Alex Williamson wrote:
> > > On Tue, 18 Jun 2019 14:48:11 +0200
> > > Sylvain Bauza <sbauza(a)redhat.com> wrote:
> > >
> > > > On Tue, Jun 18, 2019 at 1:01 PM Cornelia Huck
<cohuck(a)redhat.com> wrote:
>
> > > > > I think we need to reach consensus about the actual scope of
the
> > > > > mdevctl tool.
> > > > >
> > > > >
> > > > Thanks Cornelia, my thoughts:
> > > >
> > > > - Is it supposed to be responsible for managing *all* mdev devices in
> > > > > the system, or is it more supposed to be a convenience helper
for
> > > > > users/software wanting to manage mdevs?
> > > > >
> > > >
> > > > The latter. If an operator (or some software) wants to create mdevs
by not
> > > > using mdevctl (and rather directly calling the sysfs), I think
it's OK.
> > > > That said, mdevs created by mdevctl would be supported by systemctl,
while
> > > > the others not but I think it's okay.
> > >
> > > I agree (sort of), and I'm hearing that we should drop any sort of
> > > automatic persistence of mdevs created outside of mdevctl. The problem
> > > comes when we try to draw the line between unmanaged and manged
> > > devices. For instance, if we have a command to list mdevs it would
> > > feel incomplete if it didn't list all mdevs both those managed by
> > > mdevctl and those created elsewhere. For managed devices, I expect
> > > we'll also have commands that allow the mode of the device to be
> > > switched between transient, saved, and persistent. Should a user then
>
> Hm, what's the difference between 'saved' and 'persistent'?
That
> 'saved' devices are not necessarily present?
It seems like we're coming up with the following classes:
1) transient
a) mdevctl created
b) foreign
2) defined
a) automatic start-up
b) manual start-up
I was using persistent for 2b), but that's probably not a good name
because devices can still be stopped, so they're not really
persistently available even in this class.
NB, for terminology when libvirt calls something "persistent" it just
means that there's a configuration file recorded on disk, thus when you
stop the thing, you can still query its config & restart it from that
same config later.
The best solution for libvirt would be to cope with all 4 of those
classes. 1b is the least important for us, so not the end of the
world if it was missing.
> > To my mind there shouldn't really need to be a
difference between
> > transient mdevs created by mdevctrl and mdevs created by an user
> > directly using sysfs. Both are mdevs on the running system with
> > no config file that you have to enumerate by looking at sysfs.
> > This ties back to my belief that we shouldn't need to have any
> > config on disk for a transient mdev, just discover them all
> > dynamically when required.
>
> So mdevctl can potentially interact with any mdev device on the system,
> it just has to be instructed by a user or software to do so? I think we
> can work with that.
Some TBDs around systemd/init support for transient devices and how
transient devices can be promoted to defined. For instance if a
vfio-ap device requires matrix programming after instantiation, can we
glean that programming from sysfs or is there metadata irrecoverably
lost if no config file is created for a transient device? This would
also imply that a 1b) foreign device could not be promoted to 2x)
defined device.
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|