As far as I know, there are two competing graphics memory managers on linux: GEM vs. TTM.

Around 2008, a great controversy flared in different forums about the merits of respective ones. Judging from the posts, people were more GEMish.

We are in 2013 now and I just wonder about the results of the controversy. Which one the radeon drivers are using now?

Judging from my linux source tree, both are included and both are possible with radeon:

1) We have radeon_gem.c in the folder drivers/gpu/drm/radeon. We also have radeon_ttm.c in the same folder.

2) We have a huge ttm folder under gpu/drm, compared with only two tiny gem-related files: gpu/drm/drm_gem.c and gpu/drm/drm_gem_cma_helper.c

3) As far as headers go, there is a huge TTM folder under /include/drm, but the only GEM-related header file there is /include/drm/drm_gem_cma_helper.h. Some gem related header info is also included in drmP.h

My two questions are:

1) Can we say that the linux 3.8.6 source tree includes all the source code of TTM and GEM, and hence both are possible with radeon? If so, how do we choose between them? By some compiler options?

2) It seems that GEM is tiny compared with DRM. Is this correct?