[Spice-devel] [PATCH linux vdagent] Don't abort if XRRSetCrtcConfig fails

Alon Levy alevy at redhat.com
Mon Dec 23 05:39:21 PST 2013


On 12/19/2013 09:32 PM, Jonathon Jongsma wrote:
> No, the cause is not identified yet.  Still debugging that.  This patch just makes the vdagent more robust in the meantime.  
> 

using nomodeset fixes the problem for me (F19 guest from iso, upstream
with the qemu patch below to reproduce the problem without nomodeset),
so this is a kernel/X driver issue, still investigating.

diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index e4f172e..2ab45f1 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -972,6 +972,10 @@ static void
interface_set_client_capabilities(QXLInstance *sin,
     qxl_send_events(qxl, QXL_INTERRUPT_CLIENT);
 }

+#define DEBUG_AGENT_CLIENT_MONITORS_CONFIG
+
+#ifndef DEBUG_AGENT_CLIENT_MONITORS_CONFIG
+
 static uint32_t qxl_crc32(const uint8_t *p, unsigned len)
 {
     /*
@@ -1045,6 +1049,7 @@ static int
interface_client_monitors_config(QXLInstance *sin,
     qxl_send_events(qxl, QXL_INTERRUPT_CLIENT_MONITORS_CONFIG);
     return 1;
 }
+#endif // DEBUG_AGENT_CLIENT_MONITORS_CONFIG

 static const QXLInterface qxl_interface = {
     .base.type               = SPICE_INTERFACE_QXL,
@@ -1068,7 +1073,11 @@ static const QXLInterface qxl_interface = {
     .async_complete          = interface_async_complete,
     .update_area_complete    = interface_update_area_complete,
     .set_client_capabilities = interface_set_client_capabilities,
+#ifdef DEBUG_AGENT_CLIENT_MONITORS_CONFIG
+    .client_monitors_config  = NULL,
+#else
     .client_monitors_config = interface_client_monitors_config,
+#endif
 };

 static void qxl_enter_vga_mode(PCIQXLDevice *d)


> 
> 
> ----- Original Message -----
>> From: "Marc-André Lureau" <mlureau at redhat.com>
>> To: "Jonathon Jongsma" <jjongsma at redhat.com>
>> Cc: spice-devel at freedesktop.org
>> Sent: Thursday, December 19, 2013 1:25:18 PM
>> Subject: Re: [Spice-devel] [PATCH linux vdagent] Don't abort if XRRSetCrtcConfig	fails
>>
>>
>>
>> ----- Original Message -----
>>> In certain configurations (Fedora 20 or RHEL7 guests on a RHEL6 host), this
>>> call
>>> fails, which cause the vdagent to abort. This patch prevents the crash,
>>> though
>>> arbitrary resizing is obviously still non-functional in this situation.
>>
>> Is the cause identified? I guess it would make sense to log a debug message
>> with some hints how to fix it.
>>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
> 



More information about the Spice-devel mailing list