The Radeon virtual memory (VM) support -- part of the Radeon HD 7000 series upbringing -- is now in the DRM next tree for landing in the Linux 3.3 kernel
. Separate from the expected 3.3 graphics pull request
, Linaro's "dma-buf" has already been sent to Linus Torvalds for merging into the mainline tree.
As talked about earlier today
and mentioned before by AMD's John Bridgman
, there's invasive Radeon DRM changes coming as part of the Radeon HD 7000 series support upbringing due to the radically new "Southern Islands" / GCN (Graphics Core Next) architecture. Bridgman noted on the Phoronix Forums that the memory patches might come out in early January and last night the virtual memory patches did, which Bridgman confirmed
The Radeon GPU virtual memory support is invasive and touches more than one thousand lines of code and has already undergone twenty-two revisions before merging. With this work being invasive and the 3.3 merge window only being open for the next two weeks, the code was quick to land and today can now be found in Airlie's tree
so it will be part of the Linux 3.3 kernel. But there's still a lot more work left (and the clearing of legal review) before there is open-source Radeon HD 7000 series support available to Linux desktop users.
What was sent into Linus Torvalds this morning by David as separate from the DRM work is the "dma-buf" work that's been worked on by Linaro developers, DRM developers, and other kernel stakeholders for the past several months. This work provides a buffer sharing mechanism for Linux kernel drivers. The ARM SoC vendors have mostly been after this work to design drivers better fitting their hardware designs and being able to share buffers between various drivers such as for V4L, DRM, and fbdev sub-systems.
There's no major users of dma-buf quite yet, but now that it's mainline, by the Linux 3.4 kernel it's expected that it will be utilized. It's also possible dma-buf may be helpful down the road in multi-GPU Linux driver support for buffer sharing. This buffer sharing mechanism is just for the kernel drivers and doesn't expose any interfaces to user-space.
The dma-buf work amounts to about 700 lines of code. The pull request for this code can be found on the mailing list