PA->PAC: Move in PAI implementation.

This commit is contained in:
David Goldblatt
2020-06-11 11:53:30 -07:00
committed by David Goldblatt
parent 6041aaba97
commit 6107857b7b
4 changed files with 133 additions and 266 deletions

View File

@@ -66,12 +66,7 @@ struct pa_shard_s {
*/
atomic_zu_t nactive;
/*
* An interface for page allocation from the ecache framework (i.e. a
* cascade of ecache_dirty, ecache_muzzy, ecache_retained). Right now
* this is the *only* pai, but we'll soon grow another.
*/
pai_t ecache_pai;
/* Allocates from a PAC. */
pac_t pac;
/* The source of edata_t objects. */

View File

@@ -1,6 +1,8 @@
#ifndef JEMALLOC_INTERNAL_PAC_H
#define JEMALLOC_INTERNAL_PAC_H
#include "jemalloc/internal/pai.h"
/*
* Page allocator classic; an implementation of the PAI interface that:
* - Can be used for arenas with custom extent hooks.
@@ -71,6 +73,11 @@ struct pac_stats_s {
typedef struct pac_s pac_t;
struct pac_s {
/*
* Must be the first member (we convert it to a PAC given only a
* pointer). The handle to the allocation interface.
*/
pai_t pai;
/*
* Collections of extents that were previously allocated. These are
* used when allocating extents, in an attempt to re-use address space.