1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

TTM Memory Manager Gets Ready For Release

X.Org

Published on 10 June 2009 10:13 AM EDT
Written by Michael Larabel in X.Org
14 Comments

With the release of the Linux 2.6.30 kernel, the merge window for new features to enter the next Linux 2.6.31 development cycle is about to open. There's been much speculation whether TTM and Radeon kernel mode-setting would enter this next mainline kernel release or if it would be dragged on for another three months, but it looks like TTM at least is getting very close to entering the mainline tree.

Thomas Hellstrom of VMware/Tungsten Graphics has signaled the state of the TTM memory manager by issuing an RFC on the dri-devel list. Thomas is requesting developers comment on this Tungsten-originated patch that would add the Translation Table Maps support to the DRM within the kernel. Assuming no critical issues get brought up, we could then see TTM enter the Linux 2.6.31 kernel.

The generic TTM code adds about 5,800 lines of code to the Linux kernel. TTM is the GPU memory management subsystem that was previously gaining much steam among Linux driver developers until Intel had developed the Graphics Execution Manager and switched its driver over to using this code for memory management. GEM had entered the Linux 2.6.28 kernel and one of its main advantages is being simpler than TTM at the time. However, GEM was designed all around the needs of Intel and their hardware, so a GEM-only memory solution hasn't proved to be ideal for those developers working on NVIDIA and ATI/AMD hardware. The Nouveau and Radeon developers have been working on a GEM-ified TTM manager that uses TTM internally but exposes the GEM interface. TTM will also be used for part of VIA's new DRM driver. In-kernel memory management is a prerequisite for kernel mode-setting.

TTM is a GPU memory manager subsystem designed for use with GPU devices with various memory types (On-card VRAM, AGP, PCI apertures etc.). It's essentially a helper library that assists the DRM driver in creating and managing persistent buffer objects.

TTM manages placement of data and CPU map setup and teardown on data movement. It can also optionally manage synchronization of data on a per-buffer-object level.

TTM takes care to provide an always valid virtual user-space address to a buffer object which makes user-space sub-allocation of big buffer objects feasible.

TTM uses a fine-grained per buffer-object locking scheme, taking care to release all relevant locks when waiting for the GPU. Although this implies some locking overhead, it's probably a big win for devices with multiple command submission mechanisms, since the lock contention will be minimal.

TTM can be used with whatever user-space interface the driver chooses, including GEM. It's used by the upcoming Radeon KMS DRM driver and is also the GPU memory management core of various new experimental DRM drivers.


TTM has been a long time coming, but it looks like it may finally enter the limelight! Now we just need to hope the Radeon kernel mode-setting driver will also be ready to enter the Linux 2.6.31 kernel.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. Intel Xeon E5-1680 v3 & E5-2687W v3 Compared To The Core i7 5960X On Linux
  2. Intel 120GB 530 Series SSD Linux Performance
  3. Btrfs/EXT4/XFS/F2FS RAID 0/1/5/6/10 Linux Benchmarks On Four SSDs
  4. AMD's Windows Catalyst Driver Remains Largely Faster Than Linux Drivers
Latest Linux Articles
  1. Apple OS X 10.10 vs. Ubuntu 14.10 Performance
  2. Mesa 10.5-devel Brings Some Intel Haswell HD Graphics Changes Over Mesa 10.3
  3. NVIDIA vs. Nouveau Drivers With Linux 3.18 + Mesa 10.4-devel
  4. Is The Open-Source NVIDIA Driver Fast Enough For Steam On Linux Gaming?
Latest Linux News
  1. DragonFlyBSD 4.0 Drops i386 Support, Improves Graphics
  2. Expensive "Free/Libre Software Laptop" Uses A NVIDIA GPU
  3. QEMU 2.2-rc3 Released, Final Release Pushed Back By Couple Days
  4. 64-bit ARM FreeBSD Support Is Taking Shape
  5. GCW Zero Starts Seeing New Game Releases
  6. Intel's Cherry Trail Delayed To Next Year
  7. Bq Introduces More Android Devices, But Still No Ubuntu Phones
  8. Qt 5.4 Release Candidate Expected Later This Week
  9. ArrayFire Accelerated Compute Library Open-Sourced
  10. Amazon's Fire TV Stick: A Nice, Affordable Media Center Option
Latest Forum Discussions
  1. Updated and Optimized Ubuntu Free Graphics Drivers
  2. Hurrican SDL Port
  3. Roadmap to Catalyst 14.10 ?
  4. how to configure module phoromatic ?
  5. PulseAudio 6.0 Is Coming & Other Linux Audio Plans For The Future
  6. Debian Developer Resigns From The Systemd Maintainership Team
  7. Cant get working Kaveri APU - A10-7850k
  8. Script for Fan Speed Control