On Tue, May 08, 2012 at 08:25:38AM -0700, Linus Torvalds wrote:
On Mon, May 7, 2012 at 4:13 PM, Stéphane Marchesin marcheu@chromium.org wrote:
In the end, I came up with the ugly workaround of just leaking the offending pages in shmem.c.
Don't leak it.
Instead, add it to some RCU list, and free it using RCU. Or some one-second timer or something.
That kind of approach should guarantee that it
(a) gets returned to the system
but
(b) the returning to the system gets delayed sufficiently that if the i915 driver is doing lots of allocations it will be getting other pages.
Hmm?
The problem is also that this only affects Sandybdrige gpus, so we'd need to funnel this down to shmfs somehow ... Rob Clarke from Linaro will be working on a gemfs to make backing storage allocation more flexible - they need that to support some arm gpus. That way round we wouldn't need to put some ugly drm/i915 stuff into core shmfs. Rob? -Daniel