Re: Reading from /dev/fb0 very slow?

Alan Cox (alan@lxorguk.ukuu.org.uk)
Sat, 2 Jun 2001 23:49:25 +0100 (BST)


> Unfortunately, at least X and few framebuffer modes can not survive
> that too well.

Actually most X servers are heavily optimised to avoid video->video copies and
use the accelerators. If you are using the frame buffer X server then yes
it can be a problem but look up 'shadowfb'.

> > Writes to a PCI device can be queued or posted. Reads from a PCI device for
> > obvious reasons have to stall the CPU until the data returns.
>
> But they can't be posted indifinitely, right? I'm copying whole
> framebuffer at a time, I do not believe PCI has enough buffers to
> cache *that*. [Or is it using some kind of burst mode it can not use
> for reading? That does not give a sense, you can cache reads, too....]

Your writes are running at bus speed. Assuming the video ram has an mtrr for
write combining you are doing full bursts. When you read the sequence instead
is

issue read
stall cpu
pci cycle goes out for one longword
pci cycle hits the video card
video card replies a longword
cpu gets it

So the entire pci bus latency is directly biting you for each fetch.

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/