[BACK]Return to uvm_loan.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / uvm

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/uvm/uvm_loan.c between version 1.84 and 1.85

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);
 }  }
   
Line 324  fail:
Line 324  fail:
                             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) {

Legend:
Removed from v.1.84  
changed lines
  Added in v.1.85

CVSweb <webmaster@jp.NetBSD.org>