Concerns Come Over Linaro's Memory Manager Plans
On Monday there was the Phoronix news item about Linaro aiming to unify Linux memory management; in particular it's for embedded ARM platforms and making the existing Linux video memory managers more compatible with that of the SoC designs and drivers. They want the memory manager to be able to share memory buffers across different devices and processes, which is something somewhat sought after already by Linux graphics developers for GEM/TTM, but this may end up leading to a new memory management fork.
On Monday, the Linaro group brought up the issue on the DRI development list, among other lists, but it didn't spark any noteworthy exchanges. Yesterday though it was brought up on the Wayland Display Server mailing list where a vocal discussion ensued. It's this thread.
Tiago Vignatti began by asking whether any of Linaro's kernel memory management work would be pushed upstream or whether this is a fork of the community. Linaro though plans to push the work back upstream into the mainline kernel tree.
Others also chimed in. E.g. "Not again, due! Does DRI has some mentally wrong that cann't be fixed other than re-create? Forking is not always the best thing. A is suck, I can write batter one that does exactly the same as A, but more clean code. So I go ahead and write new B. Because B is new, so I have to fix fix fix fix bugs. Long time after, B fixed all bugs and function the same as A, and, the code is now as buggy as A's."
Tom Cooksey mentions that since GEM/TTM don't current allow sharing of buffers between drivers and don't allow physically contiguous memory allocations, Linaro may end up with "a good chance TTM will be ripped out, stuck into its own driver (with its own device node /dev/ttm) and extended to meet everyone's requirements."
But, for example, upstream TTM actually wants the support for sharing of buffers between drivers since it would be needed for some multi-card configurations, etc. TTM reworking is also needed for being able to handle OpenCL on its stack, etc.
The PathScale engineers and their hired hands had also forked the PSCNV driver for the memory management reasons, among others, to adapt it to better handle such work. PathScale's prinicipal concerns boiled down to no memory security/protection, under TTM's current model the buffer objects can be moved at any time, and TTM being hard to port to other operating systems.
Linaro's Jesse Barker had the following to say on the matter: "No one wants to reinvent the wheel unless it's absolutely necessary (and it typically isn't), but SoC vendors and software partners are encountering problems that they haven't been able to solve with the current upstream mechanisms. Initially, we're primarily concerned with making sure we're asking the right questions and identifying the right people to ask and answer them. Everything will be done publicly and in the mainline. No forking, no revolution, just problem solving. If it turns out that someone else has beaten us to it, that's great."
Latest Linux Hardware Reviews
Latest Linux Articles
Latest Linux News
Latest Forum Discussions