[SLOF] [PATCH 3/4] fbuffer: Implement MRMOVE as an accelerated primitive

Segher Boessenkool segher at kernel.crashing.org
Tue Aug 4 01:28:11 AEST 2015


On Mon, Aug 03, 2015 at 04:48:16PM +1000, Alexey Kardashevskiy wrote:
> >While MRMOVE transfers data from main memory to IO memory, RMOVE
> >transfers data from IO memory to IO memory. It is used for scrolling the
> >screen, for example.
> 
> I'd never ever guess from their names...
> 
> I am missing the point here. Why not to get rid of "mrmove"? The proposed 
> implementation with make "mrmove" doing pretty much the same thing as 
> "rmove" already does.

RMOVE does an I/O access for every read and write; MRMOVE only for writes.
This matters a lot on many platforms (if you are lucky you get a DSI or
such; more likely you get a machine check or checkstop; and that's just
from the viewpoint of the CPU, the I/O does much more interesting things).

MRMOVE is important to have because you *can* write very quickly to large
swats of I/O memory; RMOVE is important to optimise because it is so
terribly slow.


Segher


More information about the SLOF mailing list