> > > I heard Virge locks really easy if you use accels at the same time as
> > > accessing the framebuffer. How do you get around this?
> > Synchronous acceleration. The Kernel blocks while the accel call runs.
> Blocks how? 

It just polls the accelIdle bit and waits for it to come up while the ioctl 
is still running.

On non-SMP-machines, this is safe.

> > I doublt it does so in an SMP-safe way, but actually who uses a Virge on
> > an SMP machine ? :-).
> Me!!

On SMP machines, you will have to put an explicit lock there. This needs
some support in the kernel. The IMHO best implementation would be to
unmap the framebuffer for _all_ processes while an accel is running.

However this has a serious performance impact. Another possibility would be
to influence the scheduler to make sure only one process that accesses
/dev/gfx would run during this operation.

This has also its advantages, as umapping buffers is a very expensive
operation, while the other solution maybe allows for a little less
concurrency for apps that do calculations between accesses.

CU, Andy.

-- 
= Andreas Beck                    |  Email :  <[EMAIL PROTECTED]> =

Reply via email to