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

2019-08-05 Thread Tomáš Golembiovský
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ý  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ý 

-- 
Tomáš Golembiovský 



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

2019-08-03 Thread Marc-André Lureau
Hi

On Fri, Aug 2, 2019 at 5:12 PM Tomáš Golembiovský  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.

> 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.

>
> 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.

>
>
> 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.

>
> Any other ideas, concerns?
>
> Tomas
>
> --
> Tomáš Golembiovský 



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

2019-08-02 Thread Tomáš Golembiovský
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
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"
},
...
]

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.


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?

Any other ideas, concerns?

Tomas

-- 
Tomáš Golembiovský