客戶機頁表的遍歷
1.資料結構
struct guest_walker ;
+-------+
| |
+-------+
| c |
|-------|<-----b
| |
+-------+
|-------|
|-------|
+-------+<-----a
某級頁表
a:頁表項基位址
b:index的位址
c:index的位址內容
遍歷完成後,資料結構內容為
假設pt_max_full_levels=4
table_gfn【0-3】存放 4級頁表項基位址
pte_gpa【0-3】 存放4級頁表項中index基位址
ptes【0-3】 存放4級頁表項中index基位址內容
pt_access: gfn的訪問許可權
pte_access: gfn的訪問許可權
2:客戶機頁表的遍歷,也是虛擬mmu
static int fname(walk_addr)(struct guest_walker *walker,
struct kvm_vcpu *vcpu, gva_t addr,
int write_fault, int user_fault, int fetch_fault)
walker->level = vcpu->arch.mmu.root_level;//64位客戶機系統,頁表級數為4.
pte = vcpu->arch.cr3; //頁目錄基位址
for (;;)
pt_access = pte_access;
--walker->level; //遍歷下一級頁表
}//頁表遍歷完成後,獲取頁表的訪問許可權,存放到資料結構中
walker->pt_access = pt_access;
walker->pte_access = pte_access;
pgprintk("%s: pte %llx pte_access %x pt_access %x\n",
__func__, (u64)pte, pt_access, pte_access);
return 1;
}
客戶機物理頁框到宿主機虛擬位址轉換
對於虛擬機器來說,如果指定1g記憶體,以slot為單位,進行mmap虛擬記憶體對映申請,申請之後memset進行物理記憶體申請,從而占用物理記憶體。對於宿主機來說mmap申請宿主機虛擬記憶體為連續的,進行memset初始化發生缺頁中斷從而申請物理記憶體,這些宿主機物理記憶體未必是連續的。對於虛擬機器...
配置zabbix客戶機
配置zabbix客戶機 1.1 問題 本例要求新準備一台centos 7虛擬機器,作為zabbix客戶機,完成下列任務 1 配置新虛擬機器svr8 安裝zabbix agent軟體包 允許zabbix server服務端採集資料 啟動zabbix agent服務 1.2 步驟 實現此案例需要按照如下...
瘦客戶機及其應用
近年來,瘦客戶機 機群 得到廣泛應用。在學校 機關和中小企業,都有瘦客戶機 機群 應用的例項。所謂 瘦客戶機 thin clients 是指,它的所有軟體和資料都儲存在網路伺服器上的計算機。資料和應用軟體的集中儲存和分配,具有許多優點,能夠節約大量的系統購置和管理成本。瘦客戶機系統允許人們在不同地點...