提交 1cba0fc0 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

configurable lazy tlb shootdown

上级 aaea447f
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "kmtrace.hh" #include "kmtrace.hh"
enum { vm_debug = 0 }; enum { vm_debug = 0 };
enum { tlb_lazy = 1 };
/* /*
* vmnode * vmnode
...@@ -423,7 +424,8 @@ vmap::insert(vmnode *n, uptr vma_start, int dotlb) ...@@ -423,7 +424,8 @@ vmap::insert(vmnode *n, uptr vma_start, int dotlb)
if (needtlb && dotlb) if (needtlb && dotlb)
tlbflush(); tlbflush();
else else
tlbflush(myproc()->unmap_tlbreq_); if (tlb_lazy)
tlbflush(myproc()->unmap_tlbreq_);
return 0; return 0;
} }
...@@ -473,10 +475,11 @@ vmap::remove(uptr vma_start, uptr len) ...@@ -473,10 +475,11 @@ vmap::remove(uptr vma_start, uptr len)
} }
}); });
if (needtlb) { if (needtlb) {
// eager tlb shootdown if (tlb_lazy) {
//tlbflush(); myproc()->unmap_tlbreq_ = tlbflush_req++;
// lazy tlb shootdown } else {
myproc()->unmap_tlbreq_ = tlbflush_req++; tlbflush();
}
} }
return 0; return 0;
} }
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论