[Spice-devel] Cross-device access in SPICE server

Noel Van Hook noel.van.hook at intelligraphics.com
Tue Mar 6 13:51:56 PST 2012


oooh.... except each head still uses it's own command queue.  So even
if they go into the various queues in the right order, they may come
out in different orders, if one queue is backed up or has very large
operations in it.  Gotta think about that for a bit.  Thanks for the
heads up.

Noel

On Tue, Mar 6, 2012 at 2:40 PM, Noel Van Hook
<noel.van.hook at intelligraphics.com> wrote:
> On Tue, Mar 6, 2012 at 2:33 PM, Yonit Halperin <yhalperi at redhat.com> wrote:
>> On 03/05/2012 06:40 PM, Noel Van Hook wrote:
>>>
>>> On Sun, Mar 4, 2012 at 12:29 PM, Yonit Halperin<yhalperi at redhat.com>
>>>  wrote:
>>>>
>>>> On 03/02/2012 09:06 PM, Noel Van Hook wrote:
>>>>>
>>>>>
>>>>> I was wondering if anyone had any experience or insight into a way for
>>>>> a worker in the server to get access to data from the other workers?
>>>>> Specifically I am looking into some optimization that would require a
>>>>> worker to have access to the surfaces stored in other workers.
>>>>> Is there an easy way for the worker threads to access the other
>>>>> workers?  I'm referring to the worker->surfaces[] array in
>>>>> red_worker.c
>>>>>
>>>>> Thanks,
>>>>> Noel
>>>>>
>>>>
>>>> Hi,
>>>>
>>>> Currently the different workers share the pixmaps' cache (and also the
>>>> glz
>>>> dictionary). I.e., if an image is in use in more than one device, it will
>>>> be
>>>> sent to the client only once and will enter the shared cache.
>>>> The surfaces themselves are not shared, but we plan to change the driver
>>>> to
>>>> use only one device for multiple monitors, and then maybe this will
>>>> change.
>>>> Can you be more specific about what you are trying to achieve? This will
>>>> help to give you more details.
>>>
>>>
>>> We are trying to me the X driver XRandR compliant in such a way that
>>> we don't break other drivers (such as the Windows driver).
>>> We can collect all the heads together and make them look like a single
>>> device, but copy operations that go from one device to the other give
>>> us problems. Currently we are trying to modify the server to be able
>>> to access a source surface which is located on another device.
>>>
>> Note that making the surfaces accessible from all workers (or display
>> channels in the client side) is not enough, You should also be careful with
>> synchronizing the workers: If you have a qxl-1 command that access surface S
>> on qxl-2, all qxl-2 commands that preceded this qxl-1 command (and modified
>> the corresponding are on surface S), should be executed before this qxl-1
>> command.
>>
>
> I thought about that, and I think that as long as all head are
> controlled by a single driver instance which serializes the commands,
> I should be ok.
>
> Noel
>
>
>
> --
> Noel Van Hook - Intelligraphics, Inc
> 522 Cooper Ave N
> Red Lodge, MT 59068
> Noel.Van.Hook at Intelligraphics.com  (425) 770-5561



-- 
Noel Van Hook - Intelligraphics, Inc
522 Cooper Ave N
Red Lodge, MT 59068
Noel.Van.Hook at Intelligraphics.com  (425) 770-5561


More information about the Spice-devel mailing list