From: Paolo Bonzini <pbonzini@redhat.com>
To: "Søren Sandmann" <sandmann@cs.au.dk>
Cc: "Søren Sandmann Pedersen" <ssp@redhat.com>,
qemu-devel@nongnu.org, kraxel@redhat.com
Subject: Re: [Qemu-devel] [PATCH] Require spice-server 0.12.0 and spice-protocol 0.12.2
Date: Fri, 05 Oct 2012 09:25:34 +0200 [thread overview]
Message-ID: <506E8B6E.3010308@redhat.com> (raw)
In-Reply-To: <1349372231-26019-1-git-send-email-sandmann@cs.au.dk>
Il 04/10/2012 19:37, Søren Sandmann ha scritto:
> From: Søren Sandmann Pedersen <ssp@redhat.com>
>
> Set the default PCI revision to QXL_REVISION_STABLE_V12, and remove
> the various #ifs on various subversions of spice-server 0.11.x.
>
> Also set the revision to 3 for the PC 1.2 machine for compatibility.
>
> Signed-off-by: Soren Sandmann <ssp@redhat.com>
> ---
> configure | 10 ++--------
> hw/pc_piix.c | 8 ++++++++
> hw/qxl.c | 29 -----------------------------
> hw/qxl.h | 5 -----
> 4 files changed, 10 insertions(+), 42 deletions(-)
>
> diff --git a/configure b/configure
> index 8f99b7b..317a6b0 100755
> --- a/configure
> +++ b/configure
> @@ -2685,20 +2685,14 @@ int main(void) { spice_server_new(); return 0; }
> EOF
> spice_cflags=$($pkg_config --cflags spice-protocol spice-server 2>/dev/null)
> spice_libs=$($pkg_config --libs spice-protocol spice-server 2>/dev/null)
> - if $pkg_config --atleast-version=0.8.2 spice-server >/dev/null 2>&1 && \
> - $pkg_config --atleast-version=0.8.1 spice-protocol > /dev/null 2>&1 && \
> + if $pkg_config --atleast-version=0.12.0 spice-server >/dev/null 2>&1 && \
> + $pkg_config --atleast-version=0.12.2 spice-protocol > /dev/null 2>&1 && \
> compile_prog "$spice_cflags" "$spice_libs" ; then
> spice="yes"
> libs_softmmu="$libs_softmmu $spice_libs"
> QEMU_CFLAGS="$QEMU_CFLAGS $spice_cflags"
> spice_protocol_version=$($pkg_config --modversion spice-protocol)
> spice_server_version=$($pkg_config --modversion spice-server)
> - if $pkg_config --atleast-version=0.12.0 spice-protocol >/dev/null 2>&1; then
> - spice_qxl_io_monitors_config_async="yes"
> - fi
> - if $pkg_config --atleast-version=0.12.2 spice-protocol > /dev/null 2>&1; then
> - spice_qxl_client_monitors_config="yes"
> - fi
> else
> if test "$spice" = "yes" ; then
> feature_not_found "spice"
> diff --git a/hw/pc_piix.c b/hw/pc_piix.c
> index fd5898f..82364ab 100644
> --- a/hw/pc_piix.c
> +++ b/hw/pc_piix.c
> @@ -371,6 +371,14 @@ static QEMUMachine pc_machine_v1_3 = {
> .driver = "ivshmem",\
> .property = "use64",\
> .value = "0",\
> + },{\
> + .driver = "qxl",\
> + .property = "revision",\
> + .value = stringify(3),\
> + },{\
> + .driver = "qxl-vga",\
> + .property = "revision",\
> + .value = stringify(3),\
> }
>
> static QEMUMachine pc_machine_v1_2 = {
> diff --git a/hw/qxl.c b/hw/qxl.c
> index 33169f3..c256bda 100644
> --- a/hw/qxl.c
> +++ b/hw/qxl.c
> @@ -29,11 +29,6 @@
>
> #include "qxl.h"
>
> -#ifndef CONFIG_QXL_IO_MONITORS_CONFIG_ASYNC
> -/* spice-protocol is too old, add missing definitions */
> -#define QXL_IO_MONITORS_CONFIG_ASYNC (QXL_IO_FLUSH_RELEASE + 1)
> -#endif
> -
> /*
> * NOTE: SPICE_RING_PROD_ITEM accesses memory on the pci bar and as
> * such can be changed by the guest, so to avoid a guest trigerrable
> @@ -262,9 +257,6 @@ static void qxl_spice_destroy_surfaces(PCIQXLDevice *qxl, qxl_async_io async)
> static void qxl_spice_monitors_config_async(PCIQXLDevice *qxl, int replay)
> {
> trace_qxl_spice_monitors_config(qxl->id);
> -/* 0x000b01 == 0.11.1 */
> -#if SPICE_SERVER_VERSION >= 0x000b01 && \
> - defined(CONFIG_QXL_IO_MONITORS_CONFIG_ASYNC)
> if (replay) {
> /*
> * don't use QXL_COOKIE_TYPE_IO:
> @@ -286,10 +278,6 @@ static void qxl_spice_monitors_config_async(PCIQXLDevice *qxl, int replay)
> (uintptr_t)qxl_cookie_new(QXL_COOKIE_TYPE_IO,
> QXL_IO_MONITORS_CONFIG_ASYNC));
> }
> -#else
> - fprintf(stderr, "qxl: too old spice-protocol/spice-server for "
> - "QXL_IO_MONITORS_CONFIG_ASYNC\n");
> -#endif
> }
>
> void qxl_spice_reset_image_cache(PCIQXLDevice *qxl)
> @@ -948,8 +936,6 @@ static void interface_async_complete(QXLInstance *sin, uint64_t cookie_token)
> }
> }
>
> -#if SPICE_SERVER_VERSION >= 0x000b04
> -
> /* called from spice server thread context only */
> static void interface_set_client_capabilities(QXLInstance *sin,
> uint8_t client_present,
> @@ -971,11 +957,6 @@ static void interface_set_client_capabilities(QXLInstance *sin,
> qxl_send_events(qxl, QXL_INTERRUPT_CLIENT);
> }
>
> -#endif
> -
> -#if defined(CONFIG_QXL_CLIENT_MONITORS_CONFIG) \
> - && SPICE_SERVER_VERSION >= 0x000b05
> -
> static uint32_t qxl_crc32(const uint8_t *p, unsigned len)
> {
> /*
> @@ -1044,7 +1025,6 @@ static int interface_client_monitors_config(QXLInstance *sin,
> qxl_send_events(qxl, QXL_INTERRUPT_CLIENT_MONITORS_CONFIG);
> return 1;
> }
> -#endif
>
> static const QXLInterface qxl_interface = {
> .base.type = SPICE_INTERFACE_QXL,
> @@ -1067,13 +1047,8 @@ static const QXLInterface qxl_interface = {
> .flush_resources = interface_flush_resources,
> .async_complete = interface_async_complete,
> .update_area_complete = interface_update_area_complete,
> -#if SPICE_SERVER_VERSION >= 0x000b04
> .set_client_capabilities = interface_set_client_capabilities,
> -#endif
> -#if SPICE_SERVER_VERSION >= 0x000b05 && \
> - defined(CONFIG_QXL_CLIENT_MONITORS_CONFIG)
> .client_monitors_config = interface_client_monitors_config,
> -#endif
> };
>
> static void qxl_enter_vga_mode(PCIQXLDevice *d)
> @@ -1971,14 +1946,10 @@ static int qxl_init_common(PCIQXLDevice *qxl)
> pci_device_rev = QXL_REVISION_STABLE_V10;
> io_size = 32; /* PCI region size must be pow2 */
> break;
> -/* 0x000b01 == 0.11.1 */
> -#if SPICE_SERVER_VERSION >= 0x000b01 && \
> - defined(CONFIG_QXL_IO_MONITORS_CONFIG_ASYNC)
> case 4: /* qxl-4 */
> pci_device_rev = QXL_REVISION_STABLE_V12;
> io_size = msb_mask(QXL_IO_RANGE_SIZE * 2 - 1);
> break;
> -#endif
> default:
> error_report("Invalid revision %d for qxl device (max %d)",
> qxl->revision, QXL_DEFAULT_REVISION);
> diff --git a/hw/qxl.h b/hw/qxl.h
> index 5553824..e583cfb 100644
> --- a/hw/qxl.h
> +++ b/hw/qxl.h
> @@ -129,12 +129,7 @@ typedef struct PCIQXLDevice {
> } \
> } while (0)
>
> -#if 0
> -/* spice-server 0.12 is still in development */
> #define QXL_DEFAULT_REVISION QXL_REVISION_STABLE_V12
> -#else
> -#define QXL_DEFAULT_REVISION QXL_REVISION_STABLE_V10
> -#endif
>
> /* qxl.c */
> void *qxl_phys2virt(PCIQXLDevice *qxl, QXLPHYSICAL phys, int group_id);
>
Nice cleanup, thanks!
As a followup, there is some confusion between values of the revision
property (1-4) and PCI device revisions (QXL_REVISION_STABLE_Vxy). They
are the same right now, but this means that you can do one of the following:
1) if they are always going to be the same, eliminate pci_device_rev
from qxl_init_common, just use qxl->revision instead;
2) if they might diverge, change the value of QXL_DEFAULT_REVISION from
QXL_REVISION_STABLE_V12 to 4.
Paolo
next prev parent reply other threads:[~2012-10-05 7:25 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-03 17:57 [Qemu-devel] [PATCH] qxl: Default to PCI revision 4 when spice-server is new enough Søren Sandmann
2012-10-04 9:44 ` Paolo Bonzini
2012-10-04 17:31 ` Søren Sandmann
2012-10-04 17:37 ` [Qemu-devel] [PATCH] Require spice-server 0.12.0 and spice-protocol 0.12.2 Søren Sandmann
2012-10-05 7:25 ` Paolo Bonzini [this message]
2012-10-05 14:02 ` Søren Sandmann
2012-10-08 7:33 ` Gerd Hoffmann
2012-10-05 7:21 ` [Qemu-devel] [PATCH] qxl: Default to PCI revision 4 when spice-server is new enough Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=506E8B6E.3010308@redhat.com \
--to=pbonzini@redhat.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sandmann@cs.au.dk \
--cc=ssp@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).