Tofu: kmalloc cache for stag range
Change-Id: Ib5ea12c7c8cdafa7b699308c4eeb6e9ab39905c7
This commit is contained in:
committed by
Masamichi Takagi
parent
fd5a1c4b0a
commit
a680395093
@ -24,6 +24,7 @@
|
|||||||
struct kmalloc_cache_header tofu_scatterlist_cache[8];
|
struct kmalloc_cache_header tofu_scatterlist_cache[8];
|
||||||
struct kmalloc_cache_header tofu_mbpt_cache[8];
|
struct kmalloc_cache_header tofu_mbpt_cache[8];
|
||||||
struct ihk_mc_page_cache_header tofu_mbpt_sg_pages_cache[8];
|
struct ihk_mc_page_cache_header tofu_mbpt_sg_pages_cache[8];
|
||||||
|
struct kmalloc_cache_header tofu_stag_range_cache[8];
|
||||||
|
|
||||||
|
|
||||||
typedef ihk_spinlock_t spinlock_t;
|
typedef ihk_spinlock_t spinlock_t;
|
||||||
@ -54,7 +55,9 @@ int tof_utofu_stag_range_insert(struct process_vm *vm,
|
|||||||
uintptr_t start, uintptr_t end,
|
uintptr_t start, uintptr_t end,
|
||||||
struct tof_utofu_cq *ucq, int stag)
|
struct tof_utofu_cq *ucq, int stag)
|
||||||
{
|
{
|
||||||
struct tofu_stag_range *tsr = kmalloc(sizeof(*tsr), IHK_MC_AP_NOWAIT);
|
struct tofu_stag_range *tsr; // = kmalloc(sizeof(*tsr), IHK_MC_AP_NOWAIT);
|
||||||
|
tsr = kmalloc_cache_alloc(&tofu_stag_range_cache[ihk_mc_get_numa_id()],
|
||||||
|
sizeof(*tsr));
|
||||||
|
|
||||||
if (!tsr) {
|
if (!tsr) {
|
||||||
kprintf("%s: error: allocating tofu_stag_range\n", __func__);
|
kprintf("%s: error: allocating tofu_stag_range\n", __func__);
|
||||||
@ -114,7 +117,8 @@ void __tofu_stag_range_remove(struct process_vm *vm, struct tofu_stag_range *tsr
|
|||||||
|
|
||||||
list_del(&tsr->list);
|
list_del(&tsr->list);
|
||||||
list_del(&tsr->hash);
|
list_del(&tsr->hash);
|
||||||
kfree(tsr);
|
//kfree(tsr);
|
||||||
|
kmalloc_cache_free(tsr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tofu_stag_range_remove(struct process_vm *vm, struct tofu_stag_range *tsr)
|
void tofu_stag_range_remove(struct process_vm *vm, struct tofu_stag_range *tsr)
|
||||||
@ -2287,6 +2291,7 @@ void tof_utofu_init_globals(void)
|
|||||||
memset(tofu_scatterlist_cache, 0, sizeof(tofu_scatterlist_cache));
|
memset(tofu_scatterlist_cache, 0, sizeof(tofu_scatterlist_cache));
|
||||||
memset(tofu_mbpt_cache, 0, sizeof(tofu_mbpt_cache));
|
memset(tofu_mbpt_cache, 0, sizeof(tofu_mbpt_cache));
|
||||||
memset(tofu_mbpt_sg_pages_cache, 0, sizeof(tofu_mbpt_sg_pages_cache));
|
memset(tofu_mbpt_sg_pages_cache, 0, sizeof(tofu_mbpt_sg_pages_cache));
|
||||||
|
memset(tofu_stag_range_cache, 0, sizeof(tofu_stag_range_cache));
|
||||||
|
|
||||||
{
|
{
|
||||||
int tni, cq;
|
int tni, cq;
|
||||||
|
|||||||
Reference in New Issue
Block a user