Hi!
I've created a branch drm-sman-branch with a new drm core version of the
memory manager used with the SiS and VIA drivers. This is to give the
hash table- and core memory manager algorithms implementation of the
drm-ttm-branch some testing (It's using the same code) and also to
improve the behavor of the SiS and VIA memory managers.
The changes are only for linux so far. Other operating systems are still
using the old code.
This should hopefully fix the following SiS and VIA issues:
SMP safety.
User handles used to be kernel addresses. Now they are 32-bit hash keys,
which makes it possible to do a clean 32-64 bit wrapper, and should also
improve safety.
Speed. The new manager is O(1) for frees and O(nfree) for allocs, where
"nfree" is the number of items in the free list (which is usually quite
short unless the heap becomes very fragmented). This could be improved
to O(log(nfree)) for both operations if we use an RB-tree to store the
free list, but I doubt that this will be a gain in the general case.
New semantics:
The new manager always aligns to 16 bytes, except when it is bypassed by
the SiS fb module.
Allocated regions were previously owned by contexts. Now they are owned
by file connections.
New drm core library functions:
A generic open hash table and core memory manager implementation.
Comments are welcome. If there are no big issues I'll merge this with
head next week.
/Thomas
-------------------------------------------------------
All the advantages of Linux Managed Hosting--Without the Cost and Risk!
Fully trained technicians. The highest number of Red Hat certifications in
the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel