[Spice-devel] [spice-server 1/2] cursor: Delay release of QXL guest cursor resources

Christophe Fergeau cfergeau at redhat.com
Thu Apr 12 09:08:14 UTC 2018


On Wed, Apr 11, 2018 at 01:24:59PM -0400, Frediano Ziglio wrote:
> > 
> > There's an implicit API/ABI contract between QEMU and SPICE that SPICE
> > will keep the guest QXL resources alive as long as QEMU can hold a
> > pointer to them. This implicit contract was broken in 1c6e7cf7 "Release
> > cursor as soon as possible", causing crashes at migration time.
> > While the proper fix would be in QEMU so that spice-server does not need
> > to have that kind of knowledge regarding QEMU internal implementation,
> > this commit reverts to the pre-1c6e7cf7 behaviour to avoid a regression
> > while QEMU is being fixed.
> > 
> > This version of the fix is based on a suggestion from Frediano Ziglio.
> > 
> > https://bugzilla.redhat.com/show_bug.cgi?id=1540919
> > 
> > Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>
> > ---
> >  server/red-parse-qxl.c | 3 +++
> >  server/red-parse-qxl.h | 1 +
> >  server/red-worker.c    | 2 +-
> >  3 files changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/server/red-parse-qxl.c b/server/red-parse-qxl.c
> > index d0e7eb718..ebd7dcee7 100644
> > --- a/server/red-parse-qxl.c
> > +++ b/server/red-parse-qxl.c
> > @@ -1497,4 +1497,7 @@ void red_put_cursor_cmd(RedCursorCmd *red)
> >          red_put_cursor(&red->u.set.shape);
> >          break;
> >      }
> > +    if (red->qxl) {
> > +        red_qxl_release_resource(red->qxl, red->release_info_ext);
> > +    }
> >  }
> 
> Yes, fix of my code is correct.
> However I cannot compile without the include!
> Why is compiling for you? Maybe you have another commit in?

Yep, my bad, I did not test it independantly of other commits, I
squashed the missing #include <red-qxl.h> in this commit.

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20180412/ccab9c49/attachment.sig>


More information about the Spice-devel mailing list