Re: [patch 1/2] agpgart - allow user-populated memory types.

From: Thomas HellstrÃm
Date: Tue Dec 19 2006 - 12:13:09 EST


Arjan van de Ven wrote:
On Tue, 2006-12-19 at 13:47 +0100, Thomas HellstrÃm wrote:
Arjan van de Ven wrote:

A short background:
The current code uses vmalloc only. The potential use of kmalloc was introduced
to save memory and cpu-speed.
All agp drivers expect to see a single memory chunk, so I'm not sure we want to have an array of pages. That may require rewriting a lot of code.


but if it's clearly the right thing.....
How hard can it be? there are what.. 5 or 6 AGP drivers in the kernel?




Hmm,
but we would still waste a lot of memory compared to kmalloc,

surely it's at most 4Kb for the entire system?

Nope. These structures get allocated once per display memory buffer, and a display memory buffer may be as large as
the AGP aperture size, (usually up to 512MB) or as small as one page.
The latter could be a user allocating a texture buffer for each character in a font, and they can be quite numerous, so we would waste almost 4Kb per buffer, which is not acceptable.

(if agp allows the non-root user to pin a lot more than that in kernel
memory there is a different problem of rlimits ;)

The drm memory manager sets aside and keeps track of a preset amount of memory that can be pinned in the kernel for video use, which is shared by all users running direct rendering clients. Currently this is a hard limit, but the idea is to unlock memory and make it swappable if resources become scarce. The memory we're discussing above is included in the bookkeeping.

/Thomas



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/