qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] qemu-ga -- virtio driver version reporting


From: Tomáš Golembiovský
Subject: Re: [Qemu-devel] qemu-ga -- virtio driver version reporting
Date: Mon, 5 Aug 2019 12:58:26 +0200
User-agent: NeoMutt/20180716

On Sat, Aug 03, 2019 at 05:07:09PM +0400, Marc-André Lureau wrote:
> Hi
> 
> On Fri, Aug 2, 2019 at 5:12 PM Tomáš Golembiovský <address@hidden> wrote:
> >
> > Hi,
> >
> > I would like to add version reporting of Windows virtio drivers to qemu-ga.
> > Obviously this is specific to Windows as for POSIX systems it corelates with
> > the version of kernel. I would appreciate your ideas on a few topics.
> >
> > Does it make sense to add this information as new (optonal) field to result 
> > of
> > 'guest-get-osinfo'. Or would it be better to add whole new command? I expect
> 
> If the information is cheap to retrieve, I think it is fine as part of
> get-osinfo.

Hmm, good point. Actually fetching the list takes several seconds. A
special command may be preferable.

> 
> > the result to look something like this:
> >
> >     "component-versions": [
> >         {
> >             "name": "VirtIO Balloon Driver",
> >             "version": "03/10/2019,62.77.104.16900"
> >         },
> >         {
> >             "name": "QEMU PVPanic Device",
> >             "version": "06/11/2018,62.76.104.15400"
> >         },
> >         ...
> >     ]
> 
> I am not a Windows expert, but I can imagine drivers have a more
> uniquely identifiable ID than a human string.

I am not an expert either, but I don't see any unique identifier. Don't
see anything like that in INF files nor in API.

But another option would be to list the actual hardware and match it by
vendor IDs. Then list the driver name and version that is assigned to
the hardware. The up-side of this would be that one would also notice
situation where there is unsuitable driver (e.g. generic display driver
on QXL device).

> 
> >
> > Alternatively we could report all available versions of the specific
> > driver instead of just the latest. Note that this does not say much
> > about which version is in use or if a device is available in the
> > system.
> 
> What's the goal of this version reporting btw? to audit the VM? Isn't
> there other mechanism to keep Windows systems up to date and alert
> management layers? Perhaps that's Windows business/enterprise
> solutions that are too expensive though, and we want something more
> specific to qemu VMs.

The goal is to notify admin when there is old driver in the guest so
that he/she can update.

The "enterprise" solution you speak of is called Windows Update. The
problem is however two-fold. Virtio drivers are not yet available
through Windows Update. While the topic has been on the table for many
years it is still work-in-progress. But even when we get the drivers
into Windows Update, there are administrators who have automatic updates
disabled and prefer to do updates in a controlled manner. 


> > I have checked the available drivers and the names quite vary. I guess we'll
> > need to list and match the complete name and not just some substring (like
> > "VirtIO"). See the following list:
> >
> >     QEMU FWCfg Device
> >     QEMU PVPanic Device
> >     QEMU Serial PCI Card
> >     Red Hat Q35 SM Bus driver
> >     Red Hat QXL controller
> >     Red Hat VirtIO Ethernet Adapter
> >     Red Hat VirtIO SCSI controller
> >     Red Hat VirtIO SCSI controller
> >     Red Hat VirtIO SCSI pass-through controller
> >     VirtIO Balloon Driver
> >     VirtIO Input Driver
> >     VirtIO RNG Device
> >     VirtIO Serial Driver
> >     VirtIO-Serial Driver
> >
> > Is it OK to hardcode the list in qemu-ga source? Is there already any 
> > support
> > for dealing with regexes or tries in qemu source tree?
> 
> glib has GRegexp.

Ah, good!

    Tomas

> 
> >
> > Any other ideas, concerns?
> >
> >     Tomas
> >
> > --
> > Tomáš Golembiovský <address@hidden>

-- 
Tomáš Golembiovský <address@hidden>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]