[Spice-devel] About the QXL update_area processing

Alon Levy alevy at redhat.com
Thu Dec 30 01:33:32 PST 2010


On Wed, Dec 29, 2010 at 10:45:11PM +0800, lin gu wrote:
> but these is no called qxl_worker_update_area,except
> "dispatcher->base.update_area = qxl_worker_update_area".
> 

You could use systemtap or just add a printf to see who/when it is actually called,
and if you just want to find out statically (browsing the source) grep for update_area,
you'll find:
playa:qemu alon spice.kvm.v18.ccid.v8.1.based $ git grep -p update_area
hw/qxl-render.c=void qxl_render_update(PCIQXLDevice *qxl)
hw/qxl-render.c:    qxl->ssd.worker->update_area(qxl->ssd.worker, 0, &update,
hw/qxl.c=static void ioport_write(void *opaque, uint32_t addr, uint32_t val)
hw/qxl.c:        QXLRect update = d->ram->update_area;
hw/qxl.c:        d->ssd.worker->update_area(d->ssd.worker, d->ram->update_surface,

So other then on rendering (qxl_render_update, called from qxl_hw_update or screendump)
the main path is by io port QXL_IO_UPDATE_AREA from the driver. If you look at the driver
you can see when that is triggered.

> 2010/12/29 Alon Levy <alevy at redhat.com>
> 
> >  On Wed, Dec 29, 2010 at 10:27:57PM +0800, lin gu wrote:
> > > Hi,guys!
> > > I thought that when the QXL update_area,it will send a
> > > RED_WORKER_MESSAGE_UPDATE
> > >  use Red_dispather,then the Red_worker will handler the message.
> > > but I can't find any code to create the the
> > > message--"RED_WORKER_MESSAGE_UPDATE".
> > > so I want to know if the QXL send the RED_WORKER_MESSAGE_UPDATE message?
> > > or it's only a definition that dosenot use in spice?
> > > Thanks!
> >
> > U playa:spice alon master $ git grep -p RED_WORKER_MESSAGE_UPDATE
> > server/red_dispatcher.c=static void qxl_worker_update_area(QXLWorker
> > *qxl_worker, uint32_t surface_i
> > server/red_dispatcher.c:    RedWorkerMessage message =
> > RED_WORKER_MESSAGE_UPDATE;
> > server/red_worker.c=static void handle_dev_input(EventListener *listener,
> > uint32_t events)
> > server/red_worker.c:    case RED_WORKER_MESSAGE_UPDATE:
> > server/red_worker.h=enum {
> > server/red_worker.h:    RED_WORKER_MESSAGE_UPDATE,
> >
> >
> > > Spice-devel mailing list
> > > Spice-devel at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/spice-devel
> >
> >

> _______________________________________________
> 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