tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pool_cache, big items and physical address

On Sun, Jan 13, 2008 at 10:10:32PM +0100, Manuel Bouyer wrote:
> Hi,
> when a pool cache is used with items larger than a page size
> (I want 3 * PAGE_SIZE), do we have any guarantee that the
> memory returned will be physically contigous ?
> I couldn't find information on this in the man page.

It looks like pool(9) can't be used for object larger than PAGE_SIZE.

I need this for PAE support in x86 pmap: because of various constraints
(some from Xen, some from PAE itself), I've choosen to keep the L3 page
static, and switch pmaps by switching the first 3 entries in the
L3 page (the 4th entry being for kernel VA, it's always present and
points to the same L2 pages). Most things works as with the 2-level MMU
exept that the "PDP" size is 3 * PAGE_SIZE. Any recommendation
on what allocator to use for this, in place of pool_cache() with
pmap_pdp_ctor/pmap_pdp_dtor ? It would be a plus if this allocator
returned physically-discontigous pages for these 3 * PAGE_SIZE items,
but discontigous items could work too.

Manuel Bouyer <>
     NetBSD: 26 ans d'experience feront toujours la difference

Home | Main Index | Thread Index | Old Index