Patchwork qxl: Default to PCI revision 4 when spice-server is new enough

login
register
mail settings
Submitter Søren Sandmann
Date Oct. 3, 2012, 5:57 p.m.
Message ID <1349287077-10062-1-git-send-email-sandmann@cs.au.dk>
Download mbox | patch
Permalink /patch/188873/
State New
Headers show

Comments

Søren Sandmann - Oct. 3, 2012, 5:57 p.m.
From: Søren Sandmann Pedersen <ssp@redhat.com>

When spice-server is newer than 0.12.0, the default revision should be
QXL_REVISION_STABLE_V12.

Signed-off-by: Soren Sandmann <ssp@redhat.com>
---
 hw/qxl.h |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
Paolo Bonzini - Oct. 4, 2012, 9:44 a.m.
Il 03/10/2012 19:57, Søren Sandmann ha scritto:
> From: Søren Sandmann Pedersen <ssp@redhat.com>
> 
> When spice-server is newer than 0.12.0, the default revision should be
> QXL_REVISION_STABLE_V12.
> 
> Signed-off-by: Soren Sandmann <ssp@redhat.com>
> ---
>  hw/qxl.h |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/qxl.h b/hw/qxl.h
> index 5553824..4460bb2 100644
> --- a/hw/qxl.h
> +++ b/hw/qxl.h
> @@ -129,8 +129,7 @@ typedef struct PCIQXLDevice {
>          }                                                               \
>      } while (0)
>  
> -#if 0
> -/* spice-server 0.12 is still in development */
> +#if SPICE_SERVER_VERSION >= 0x000c00 /* 0x000c00 == 0.12.0 */
>  #define QXL_DEFAULT_REVISION QXL_REVISION_STABLE_V12
>  #else
>  #define QXL_DEFAULT_REVISION QXL_REVISION_STABLE_V10
> 

No, that's not possible.  The revision must be the same for all machines
started with the same "-M" argument.  So your only choice is to make
0.12 a requirement for QEMU 1.3.  Then you can use compatibility
properties (see the long list of strings in hw/pc_piix.c) to ensure that
pc-1.2 and earlier machines use the previous revision.

If you cannot release 0.12 in time for QEMU 1.3, your only choice is to
wait for 1.4.  In the meanwhile, use "-global qxl.revision=4 -global
qxl-vga.revision=4" to create a machine with revision 4.

Paolo
Søren Sandmann - Oct. 4, 2012, 5:31 p.m.
Paolo Bonzini <pbonzini@redhat.com> writes:

> Il 03/10/2012 19:57, Søren Sandmann ha scritto:
>> From: Søren Sandmann Pedersen <ssp@redhat.com>
>> 
>> When spice-server is newer than 0.12.0, the default revision should be
>> QXL_REVISION_STABLE_V12.
>> 
>> Signed-off-by: Soren Sandmann <ssp@redhat.com>
>> ---
>>  hw/qxl.h |    3 +--
>>  1 files changed, 1 insertions(+), 2 deletions(-)
>> 
>> diff --git a/hw/qxl.h b/hw/qxl.h
>> index 5553824..4460bb2 100644
>> --- a/hw/qxl.h
>> +++ b/hw/qxl.h
>> @@ -129,8 +129,7 @@ typedef struct PCIQXLDevice {
>>          }                                                               \
>>      } while (0)
>>  
>> -#if 0
>> -/* spice-server 0.12 is still in development */
>> +#if SPICE_SERVER_VERSION >= 0x000c00 /* 0x000c00 == 0.12.0 */
>>  #define QXL_DEFAULT_REVISION QXL_REVISION_STABLE_V12
>>  #else
>>  #define QXL_DEFAULT_REVISION QXL_REVISION_STABLE_V10
>> 
>
> No, that's not possible.  The revision must be the same for all machines
> started with the same "-M" argument.  So your only choice is to make
> 0.12 a requirement for QEMU 1.3.  Then you can use compatibility
> properties (see the long list of strings in hw/pc_piix.c) to ensure that
> pc-1.2 and earlier machines use the previous revision.

Spice server 0.12 is already, so I'll send a patch to require that
unconditionally. I'm assuming that later strings override earlier ones
so that the revision=3 I added won't take effect for previous machines.


Søren
Paolo Bonzini - Oct. 5, 2012, 7:21 a.m.
Il 04/10/2012 19:31, Søren Sandmann ha scritto:
>> >
>> > No, that's not possible.  The revision must be the same for all machines
>> > started with the same "-M" argument.  So your only choice is to make
>> > 0.12 a requirement for QEMU 1.3.  Then you can use compatibility
>> > properties (see the long list of strings in hw/pc_piix.c) to ensure that
>> > pc-1.2 and earlier machines use the previous revision.
> Spice server 0.12 is already, so I'll send a patch to require that
> unconditionally. I'm assuming that later strings override earlier ones
> so that the revision=3 I added won't take effect for previous machines.

There is a PC_COMPAT_1_2 macro, just add the

        {\
            .driver   = "qxl-vga",\
            .property = "revision",\
            .value    = "3",\
        },{\
        {\
            .driver   = "qxl",\
            .property = "revision",\
            .value    = "3",\
        },{\

there.

Paolo

Patch

diff --git a/hw/qxl.h b/hw/qxl.h
index 5553824..4460bb2 100644
--- a/hw/qxl.h
+++ b/hw/qxl.h
@@ -129,8 +129,7 @@  typedef struct PCIQXLDevice {
         }                                                               \
     } while (0)
 
-#if 0
-/* spice-server 0.12 is still in development */
+#if SPICE_SERVER_VERSION >= 0x000c00 /* 0x000c00 == 0.12.0 */
 #define QXL_DEFAULT_REVISION QXL_REVISION_STABLE_V12
 #else
 #define QXL_DEFAULT_REVISION QXL_REVISION_STABLE_V10