version 1.84, 2017/03/19 23:44:35 |
version 1.85, 2017/10/28 00:37:13 |
Line 186 uvm_loanentry(struct uvm_faultinfo *ufi, |
|
Line 186 uvm_loanentry(struct uvm_faultinfo *ufi, |
|
|
|
/* total failure */ |
/* total failure */ |
if (rv < 0) { |
if (rv < 0) { |
UVMHIST_LOG(loanhist, "failure %d", rv, 0,0,0); |
UVMHIST_LOG(loanhist, "failure %jd", rv, 0,0,0); |
return (-1); |
return (-1); |
} |
} |
|
|
/* relock failed, need to do another lookup */ |
/* relock failed, need to do another lookup */ |
if (rv == 0) { |
if (rv == 0) { |
UVMHIST_LOG(loanhist, "relock failure %d", result |
UVMHIST_LOG(loanhist, "relock failure %jd", result |
,0,0,0); |
,0,0,0); |
return (result); |
return (result); |
} |
} |
Line 214 uvm_loanentry(struct uvm_faultinfo *ufi, |
|
Line 214 uvm_loanentry(struct uvm_faultinfo *ufi, |
|
amap_unlock(aref->ar_amap); |
amap_unlock(aref->ar_amap); |
} |
} |
uvmfault_unlockmaps(ufi, false); |
uvmfault_unlockmaps(ufi, false); |
UVMHIST_LOG(loanhist, "done %d", result, 0,0,0); |
UVMHIST_LOG(loanhist, "done %jd", result, 0,0,0); |
return (result); |
return (result); |
} |
} |
|
|
|
|
output - result); |
output - result); |
} |
} |
} |
} |
UVMHIST_LOG(loanhist, "error %d", error,0,0,0); |
UVMHIST_LOG(loanhist, "error %jd", error,0,0,0); |
return (error); |
return (error); |
} |
} |
|
|
Line 359 uvm_loananon(struct uvm_faultinfo *ufi, |
|
Line 359 uvm_loananon(struct uvm_faultinfo *ufi, |
|
pg = anon->an_page; |
pg = anon->an_page; |
if (pg && (pg->pqflags & PQ_ANON) != 0 && anon->an_ref == 1) { |
if (pg && (pg->pqflags & PQ_ANON) != 0 && anon->an_ref == 1) { |
if (pg->wire_count > 0) { |
if (pg->wire_count > 0) { |
UVMHIST_LOG(loanhist, "->A wired %p", pg,0,0,0); |
UVMHIST_LOG(loanhist, "->A wired %#jx", |
|
(uintptr_t)pg, 0, 0, 0); |
uvmfault_unlockall(ufi, |
uvmfault_unlockall(ufi, |
ufi->entry->aref.ar_amap, |
ufi->entry->aref.ar_amap, |
ufi->entry->object.uvm_obj); |
ufi->entry->object.uvm_obj); |
Line 389 uvm_loananon(struct uvm_faultinfo *ufi, |
|
Line 390 uvm_loananon(struct uvm_faultinfo *ufi, |
|
*/ |
*/ |
|
|
if (error) { |
if (error) { |
UVMHIST_LOG(loanhist, "error %d", error,0,0,0); |
UVMHIST_LOG(loanhist, "error %jd", error,0,0,0); |
|
|
/* need to refault (i.e. refresh our lookup) ? */ |
/* need to refault (i.e. refresh our lookup) ? */ |
if (error == ERESTART) { |
if (error == ERESTART) { |
Line 414 uvm_loananon(struct uvm_faultinfo *ufi, |
|
Line 415 uvm_loananon(struct uvm_faultinfo *ufi, |
|
mutex_enter(&uvm_pageqlock); |
mutex_enter(&uvm_pageqlock); |
if (pg->wire_count > 0) { |
if (pg->wire_count > 0) { |
mutex_exit(&uvm_pageqlock); |
mutex_exit(&uvm_pageqlock); |
UVMHIST_LOG(loanhist, "->K wired %p", pg,0,0,0); |
UVMHIST_LOG(loanhist, "->K wired %#jx", (uintptr_t)pg, 0, 0, 0); |
KASSERT(pg->uobject == NULL); |
KASSERT(pg->uobject == NULL); |
uvmfault_unlockall(ufi, ufi->entry->aref.ar_amap, NULL); |
uvmfault_unlockall(ufi, ufi->entry->aref.ar_amap, NULL); |
return (-1); |
return (-1); |
Line 464 uvm_loanpage(struct vm_page **pgpp, int |
|
Line 465 uvm_loanpage(struct vm_page **pgpp, int |
|
mutex_enter(&uvm_pageqlock); |
mutex_enter(&uvm_pageqlock); |
if (pg->wire_count > 0) { |
if (pg->wire_count > 0) { |
mutex_exit(&uvm_pageqlock); |
mutex_exit(&uvm_pageqlock); |
UVMHIST_LOG(loanhist, "wired %p", pg,0,0,0); |
UVMHIST_LOG(loanhist, "wired %#jx", (uintptr_t)pg, |
|
0, 0, 0); |
error = EBUSY; |
error = EBUSY; |
break; |
break; |
} |
} |
Line 489 uvm_loanpage(struct vm_page **pgpp, int |
|
Line 491 uvm_loanpage(struct vm_page **pgpp, int |
|
mutex_enter(slock); |
mutex_enter(slock); |
} |
} |
|
|
UVMHIST_LOG(loanhist, "done %d", error,0,0,0); |
UVMHIST_LOG(loanhist, "done %jd", error, 0, 0, 0); |
return error; |
return error; |
} |
} |
|
|
Line 778 uvm_loanuobj(struct uvm_faultinfo *ufi, |
|
Line 780 uvm_loanuobj(struct uvm_faultinfo *ufi, |
|
mutex_enter(&uvm_pageqlock); |
mutex_enter(&uvm_pageqlock); |
if (pg->wire_count > 0) { |
if (pg->wire_count > 0) { |
mutex_exit(&uvm_pageqlock); |
mutex_exit(&uvm_pageqlock); |
UVMHIST_LOG(loanhist, "wired %p", pg,0,0,0); |
UVMHIST_LOG(loanhist, "wired %#jx", (uintptr_t)pg, 0, 0, 0); |
goto fail; |
goto fail; |
} |
} |
if (pg->loan_count == 0) { |
if (pg->loan_count == 0) { |