pixman/fb operations on VRAM on certain architectures.
airlied at gmail.com
Thu Dec 4 19:01:15 PST 2008
Okay so certain architectures (IA64) and certain hw implementations of
those arches can't handle using the optimised libc memcpy/memset
routines on MMIO memory. (i.e. memory on the PCI bus, i.e. VRAM).
Results can vary from hangs/resets/mces/corrupt answers/cats living
with dogs. The kernel works around this by implementing specific mem
operations for those memory types.
Now I'm looked at trying to fix this upstream by avoiding
memcpy/memset operations in sw renderer on those arches, and replacing
them with slightly dumb
memset/memcpy ops (32-bit loops, then 8-byte finishing), similiar to
what the kernel does.
However I've just realised pixman is the place I need to do this, and
pixman doesn't really have any major per-arch code in it yet (maybe I
need to fix it in glibc, and convert everyone to call
memcpy_io/memset_io from there or some such craziness).
Suggestions/ideas? (running away might be be an option but it'll come back).
More information about the xorg