On Wed, Mar 21, 2012 at 11:26:50AM -0500, Anthony Liguori wrote: > On 03/21/2012 11:11 AM, Michael S. Tsirkin wrote: > >On Wed, Mar 21, 2012 at 10:14:35AM -0500, Anthony Liguori wrote: > >>On 03/21/2012 10:10 AM, Michael S. Tsirkin wrote: > >>>On Wed, Mar 21, 2012 at 09:42:41AM -0500, Anthony Liguori wrote: > >>>>On 03/21/2012 08:08 AM, Michael S. Tsirkin wrote: > >>>>>On Wed, Mar 21, 2012 at 11:26:15AM +0000, Stefan Hajnoczi wrote: > >>>>>>On Tue, Mar 20, 2012 at 09:19:47PM +1100, David Gibson wrote: > >>>>>>Looking at hw/pc_piix.c there are QEMUMachine types for each QEMU > >>>>>>release. Legacy machine types (e.g. pc_machine_v0_14) have a > >>>>>>.compat_props array that can override qdev properties. > >>>>>> > >>>>>>Perhaps Michael Tsirkin or someone else can comment on how to wire up > >>>>>>hw/virtio-pci.c so that the class code can be overridden. > >>>>>> > >>>>>>Stefan > >>>>> > >>>>>afaik we already let users over-write it for some other pci devices, > >>>>>look there for examples. > >>>> > >>>> From hw/pc_piix.c: > >>>> > >>>> .name = "pc-0.10", > >>>> .desc = "Standard PC, qemu 0.10", > >>>> .init = pc_init_pci_no_kvmclock, > >>>> .max_cpus = 255, > >>>> .compat_props = (GlobalProperty[]) { > >>>> { > >>>> .driver = "virtio-blk-pci", > >>>> .property = "class", > >>>> .value = stringify(PCI_CLASS_STORAGE_OTHER), > >>>> },{ > >>>> > >>>>And from the earlier part of the thread, yes, it's imperative that > >>>>we do not change anything in the PCI configuration space for older > >>>>pc versions regardless of whether it may or may not work. > >>>> > >>>>Certain guests (like Windows) use a complex fingerprinting algorithm > >>>>to determine when hardware changes. It can be hard to detect in > >>>>simple testing because it's based on a threshold. > >>>> > >>>>Regards, > >>>> > >>>>Anthony Liguori > >>> > >>>Which reminds me - qemu sticks the release version in > >>>guest visible places like CPU version. > >>>This is wrong and causes windows guests to print messages > >>>about driver updates when you switch. > >>>We should find all these places and stop doing this. > >> > >>We could probably get away with doing a query/replace of > >>QEMU_VERSION with qemu_get_version(), make version a static variable > >>that defaults to QEMU_VERSION, and then provide a way for machines > >>to override it. > >> > >>Then pc-0.10 could report a version of 0.10. > >> > >>Regards, > >> > >>Anthony Liguori > > > >Frankly I don't see value in making it visible to the user, > >at all. We are just triggering windows reactivations > >without any user benefit. Why not return a fixed value there > >to avoid that? > > I don't see a problem making it fixed for 1.1, but for 1.0 and > older, we should expose what we were supposed to expose. > We need to fix the bug first, then we can change the behavior. > > Regards, > > Anthony Liguori > > > > >>>>> > >>>>>
Makes sense to me.