xv6-6.S081 icon indicating copy to clipboard operation
xv6-6.S081 copied to clipboard

sys_munmap中为什么如果是munmap结尾的时候不writeback

Open longintlong opened this issue 3 years ago • 0 comments

您好,大佬,我这里关于您的mmap lab中的sys_munmap函数有一个问题

if(addr == v->start){
    writeback(v, addr, length);
    uvmunmap(p->pagetable, addr, length / PGSIZE, 1);
    if(length == v->length){
      // free all
      fileclose(v->file);
      if(pre == 0){
        p->vma = v->next; // head
      }else{
        pre->next = v->next;
        v->next = 0;
      }
      acquire(&v->lock);
      v->length = 0;
      release(&v->lock);
    }else{
      // free head
      v->start -= length;
      v->off += length;
      v->length -= length;
    }
  }else{ //这里如果是unmap尾部地址(addr,vma->end)这种情况的话为什么writeback
    // free tail
    v->length -= length;
    v->end -= length;
  }

longintlong avatar Aug 07 '21 03:08 longintlong