@@ -1807,7 +1807,6 @@ static int clear_range_l1(void *args0, pte_t *ptep, uint64_t base,
|
|||||||
ihk_mc_free_pages_user(phys_to_virt(phys), npages);
|
ihk_mc_free_pages_user(phys_to_virt(phys), npages);
|
||||||
dkprintf("%s: freeing regular page at 0x%lx\n", __FUNCTION__, base);
|
dkprintf("%s: freeing regular page at 0x%lx\n", __FUNCTION__, base);
|
||||||
}
|
}
|
||||||
args->vm->currss -= PTL1_SIZE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1887,7 +1886,6 @@ static int clear_range_middle(void *args0, pte_t *ptep, uint64_t base,
|
|||||||
ihk_mc_free_pages_user(phys_to_virt(phys), npages);
|
ihk_mc_free_pages_user(phys_to_virt(phys), npages);
|
||||||
dkprintf("%s(level=%d): freeing large page at 0x%lx\n", __FUNCTION__, level, base);
|
dkprintf("%s(level=%d): freeing large page at 0x%lx\n", __FUNCTION__, level, base);
|
||||||
}
|
}
|
||||||
args->vm->currss -= tbl.pgsize;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -1542,7 +1542,6 @@ static int clear_range_l1(void *args0, pte_t *ptep, uint64_t base,
|
|||||||
dkprintf("%lx-,%s: calling memory_stat_rss_sub(),phys=%lx,size=%ld,pgsize=%ld\n", pte_get_phys(&old), __FUNCTION__, pte_get_phys(&old), PTL1_SIZE, PTL1_SIZE);
|
dkprintf("%lx-,%s: calling memory_stat_rss_sub(),phys=%lx,size=%ld,pgsize=%ld\n", pte_get_phys(&old), __FUNCTION__, pte_get_phys(&old), PTL1_SIZE, PTL1_SIZE);
|
||||||
rusage_memory_stat_sub(args->memobj, PTL1_SIZE, PTL1_SIZE);
|
rusage_memory_stat_sub(args->memobj, PTL1_SIZE, PTL1_SIZE);
|
||||||
}
|
}
|
||||||
args->vm->currss -= PTL1_SIZE;
|
|
||||||
} else {
|
} else {
|
||||||
dkprintf("%s: !calling memory_stat_rss_sub(),virt=%lx,phys=%lx\n", __FUNCTION__, base, pte_get_phys(&old));
|
dkprintf("%s: !calling memory_stat_rss_sub(),virt=%lx,phys=%lx\n", __FUNCTION__, base, pte_get_phys(&old));
|
||||||
}
|
}
|
||||||
@@ -1611,7 +1610,6 @@ static int clear_range_l2(void *args0, pte_t *ptep, uint64_t base,
|
|||||||
dkprintf("%lx-,%s: calling memory_stat_rss_sub(),phys=%lx,size=%ld,pgsize=%ld\n", pte_get_phys(&old), __FUNCTION__, pte_get_phys(&old), PTL2_SIZE, PTL2_SIZE);
|
dkprintf("%lx-,%s: calling memory_stat_rss_sub(),phys=%lx,size=%ld,pgsize=%ld\n", pte_get_phys(&old), __FUNCTION__, pte_get_phys(&old), PTL2_SIZE, PTL2_SIZE);
|
||||||
rusage_memory_stat_sub(args->memobj, PTL2_SIZE, PTL2_SIZE);
|
rusage_memory_stat_sub(args->memobj, PTL2_SIZE, PTL2_SIZE);
|
||||||
}
|
}
|
||||||
args->vm->currss -= PTL2_SIZE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1693,7 +1691,6 @@ static int clear_range_l3(void *args0, pte_t *ptep, uint64_t base,
|
|||||||
dkprintf("%lx-,%s: calling memory_stat_rss_sub(),phys=%lx,size=%ld,pgsize=%ld\n", pte_get_phys(&old), __FUNCTION__, pte_get_phys(&old), PTL3_SIZE, PTL3_SIZE);
|
dkprintf("%lx-,%s: calling memory_stat_rss_sub(),phys=%lx,size=%ld,pgsize=%ld\n", pte_get_phys(&old), __FUNCTION__, pte_get_phys(&old), PTL3_SIZE, PTL3_SIZE);
|
||||||
rusage_memory_stat_sub(args->memobj, PTL3_SIZE, PTL3_SIZE);
|
rusage_memory_stat_sub(args->memobj, PTL3_SIZE, PTL3_SIZE);
|
||||||
}
|
}
|
||||||
args->vm->currss -= PTL3_SIZE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ rusage_rss_add(unsigned long size)
|
|||||||
unsigned long newval;
|
unsigned long newval;
|
||||||
unsigned long oldval;
|
unsigned long oldval;
|
||||||
unsigned long retval;
|
unsigned long retval;
|
||||||
|
struct process_vm *vm = cpu_local_var(current)->vm;
|
||||||
|
|
||||||
newval = __sync_add_and_fetch(&rusage->rss_current, size);
|
newval = __sync_add_and_fetch(&rusage->rss_current, size);
|
||||||
oldval = rusage->memory_max_usage;
|
oldval = rusage->memory_max_usage;
|
||||||
@@ -46,12 +47,23 @@ rusage_rss_add(unsigned long size)
|
|||||||
}
|
}
|
||||||
oldval = retval;
|
oldval = retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* process rss */
|
||||||
|
vm->currss += size;
|
||||||
|
if (vm->currss > vm->proc->maxrss) {
|
||||||
|
vm->proc->maxrss = vm->currss;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
rusage_rss_sub(unsigned long size)
|
rusage_rss_sub(unsigned long size)
|
||||||
{
|
{
|
||||||
|
struct process_vm *vm = cpu_local_var(current)->vm;
|
||||||
|
|
||||||
__sync_sub_and_fetch(&rusage->rss_current, size);
|
__sync_sub_and_fetch(&rusage->rss_current, size);
|
||||||
|
|
||||||
|
/* process rss */
|
||||||
|
vm->currss -= size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void memory_stat_rss_add(unsigned long size, int pgsize)
|
static inline void memory_stat_rss_add(unsigned long size, int pgsize)
|
||||||
|
|||||||
@@ -1942,9 +1942,6 @@ retry:
|
|||||||
// memory_stat_rss_add() is called in downstream with !memobj check
|
// memory_stat_rss_add() is called in downstream with !memobj check
|
||||||
}
|
}
|
||||||
flush_tlb_single(fault_addr);
|
flush_tlb_single(fault_addr);
|
||||||
vm->currss += pgsize;
|
|
||||||
if(vm->currss > vm->proc->maxrss)
|
|
||||||
vm->proc->maxrss = vm->currss;
|
|
||||||
|
|
||||||
error = 0;
|
error = 0;
|
||||||
page = NULL;
|
page = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user