ContiguousPTE[8/12] modify page_fault_process_memory_range
Change-Id: I79ecd08cf83aeacd3e20a7720bad66ef19573402
This commit is contained in:
committed by
Masamichi Takagi
parent
c319fe08a4
commit
c4e5bf6d6b
@ -1861,6 +1861,9 @@ static int page_fault_process_memory_range(struct process_vm *vm, struct vm_rang
|
|||||||
}
|
}
|
||||||
pgaddr = (void *)(fault_addr & ~(pgsize - 1));
|
pgaddr = (void *)(fault_addr & ~(pgsize - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
arch_adjust_allocate_page_size(fault_addr, ptep, &pgaddr, &pgsize);
|
||||||
|
|
||||||
/*****/
|
/*****/
|
||||||
dkprintf("%s: ptep=%lx,pte_is_null=%d,pte_is_fileoff=%d\n", __FUNCTION__, ptep, ptep ? pte_is_null(ptep) : -1, ptep ? pte_is_fileoff(ptep, pgsize) : -1);
|
dkprintf("%s: ptep=%lx,pte_is_null=%d,pte_is_fileoff=%d\n", __FUNCTION__, ptep, ptep ? pte_is_null(ptep) : -1, ptep ? pte_is_fileoff(ptep, pgsize) : -1);
|
||||||
if (!ptep || pte_is_null(ptep) || pte_is_fileoff(ptep, pgsize)) {
|
if (!ptep || pte_is_null(ptep) || pte_is_fileoff(ptep, pgsize)) {
|
||||||
@ -1993,7 +1996,7 @@ retry:
|
|||||||
#endif /*POSTK_DEBUG_ARCH_DEP_21*/
|
#endif /*POSTK_DEBUG_ARCH_DEP_21*/
|
||||||
|
|
||||||
/*****/
|
/*****/
|
||||||
if (ptep) {
|
if (ptep && !pgsize_is_contiguous(pgsize)) {
|
||||||
//if(rusage_memory_stat_add_with_page(range, phys, pgsize, pgsize, page)) {
|
//if(rusage_memory_stat_add_with_page(range, phys, pgsize, pgsize, page)) {
|
||||||
if(rusage_memory_stat_add(range, phys, pgsize, pgsize)) {
|
if(rusage_memory_stat_add(range, phys, pgsize, pgsize)) {
|
||||||
/* on-demand paging, phys pages are obtained by ihk_mc_alloc_aligned_pages_user() or get_page() */
|
/* on-demand paging, phys pages are obtained by ihk_mc_alloc_aligned_pages_user() or get_page() */
|
||||||
@ -2016,7 +2019,7 @@ retry:
|
|||||||
else {
|
else {
|
||||||
error = ihk_mc_pt_set_range(vm->address_space->page_table, vm,
|
error = ihk_mc_pt_set_range(vm->address_space->page_table, vm,
|
||||||
pgaddr, pgaddr + pgsize, phys,
|
pgaddr, pgaddr + pgsize, phys,
|
||||||
attr, range->pgshift, range, 0);
|
attr, range->pgshift, range, 1);
|
||||||
if (error) {
|
if (error) {
|
||||||
kprintf("page_fault_process_memory_range(%p,%lx-%lx %lx,%lx,%lx):set_range failed. %d\n", vm, range->start, range->end, range->flag, fault_addr, reason, error);
|
kprintf("page_fault_process_memory_range(%p,%lx-%lx %lx,%lx,%lx):set_range failed. %d\n", vm, range->start, range->end, range->flag, fault_addr, reason, error);
|
||||||
goto out;
|
goto out;
|
||||||
|
|||||||
Reference in New Issue
Block a user