Lines Matching refs:arch

64 	kvm->arch.hpt_cma_alloc = 0;  in kvmppc_alloc_hpt()
69 kvm->arch.hpt_cma_alloc = 1; in kvmppc_alloc_hpt()
84 kvm->arch.hpt_virt = hpt; in kvmppc_alloc_hpt()
85 kvm->arch.hpt_order = order; in kvmppc_alloc_hpt()
87 kvm->arch.hpt_npte = 1ul << (order - 4); in kvmppc_alloc_hpt()
89 kvm->arch.hpt_mask = (1ul << (order - 7)) - 1; in kvmppc_alloc_hpt()
92 rev = vmalloc(sizeof(struct revmap_entry) * kvm->arch.hpt_npte); in kvmppc_alloc_hpt()
97 kvm->arch.revmap = rev; in kvmppc_alloc_hpt()
98 kvm->arch.sdr1 = __pa(hpt) | (order - 18); in kvmppc_alloc_hpt()
101 hpt, order, kvm->arch.lpid); in kvmppc_alloc_hpt()
108 if (kvm->arch.hpt_cma_alloc) in kvmppc_alloc_hpt()
121 if (kvm->arch.hpte_setup_done) { in kvmppc_alloc_reset_hpt()
122 kvm->arch.hpte_setup_done = 0; in kvmppc_alloc_reset_hpt()
125 if (atomic_read(&kvm->arch.vcpus_running)) { in kvmppc_alloc_reset_hpt()
126 kvm->arch.hpte_setup_done = 1; in kvmppc_alloc_reset_hpt()
130 if (kvm->arch.hpt_virt) { in kvmppc_alloc_reset_hpt()
131 order = kvm->arch.hpt_order; in kvmppc_alloc_reset_hpt()
133 memset((void *)kvm->arch.hpt_virt, 0, 1ul << order); in kvmppc_alloc_reset_hpt()
139 cpumask_setall(&kvm->arch.need_tlb_flush); in kvmppc_alloc_reset_hpt()
153 kvmppc_free_lpid(kvm->arch.lpid); in kvmppc_free_hpt()
154 vfree(kvm->arch.revmap); in kvmppc_free_hpt()
155 if (kvm->arch.hpt_cma_alloc) in kvmppc_free_hpt()
156 kvm_release_hpt(virt_to_page(kvm->arch.hpt_virt), in kvmppc_free_hpt()
157 1 << (kvm->arch.hpt_order - PAGE_SHIFT)); in kvmppc_free_hpt()
159 free_pages(kvm->arch.hpt_virt, in kvmppc_free_hpt()
160 kvm->arch.hpt_order - PAGE_SHIFT); in kvmppc_free_hpt()
195 if (npages > kvm->arch.hpt_mask + 1) in kvmppc_map_vrma()
196 npages = kvm->arch.hpt_mask + 1; in kvmppc_map_vrma()
206 hash = (i ^ (VRMA_VSID ^ (VRMA_VSID << 25))) & kvm->arch.hpt_mask; in kvmppc_map_vrma()
248 unsigned long msr = vcpu->arch.intr_msr; in kvmppc_mmu_book3s_64_hv_reset_msr()
251 if (MSR_TM_TRANSACTIONAL(vcpu->arch.shregs.msr)) in kvmppc_mmu_book3s_64_hv_reset_msr()
254 msr |= vcpu->arch.shregs.msr & MSR_TS_MASK; in kvmppc_mmu_book3s_64_hv_reset_msr()
284 for (i = 0; i < vcpu->arch.slb_nr; i++) { in kvmppc_mmu_book3s_hv_find_slbe()
285 if (!(vcpu->arch.slb[i].orige & SLB_ESID_V)) in kvmppc_mmu_book3s_hv_find_slbe()
288 if (vcpu->arch.slb[i].origv & SLB_VSID_B_1T) in kvmppc_mmu_book3s_hv_find_slbe()
293 if (((vcpu->arch.slb[i].orige ^ eaddr) & mask) == 0) in kvmppc_mmu_book3s_hv_find_slbe()
294 return &vcpu->arch.slb[i]; in kvmppc_mmu_book3s_hv_find_slbe()
318 int virtmode = vcpu->arch.shregs.msr & (data ? MSR_DR : MSR_IR); in kvmppc_mmu_book3s_64_hv_xlate()
328 slb_v = vcpu->kvm->arch.vrma_slb_v; in kvmppc_mmu_book3s_64_hv_xlate()
339 hptep = (__be64 *)(kvm->arch.hpt_virt + (index << 4)); in kvmppc_mmu_book3s_64_hv_xlate()
341 gr = kvm->arch.revmap[index].guest_rpte; in kvmppc_mmu_book3s_64_hv_xlate()
351 key = (vcpu->arch.shregs.msr & MSR_PR) ? SLB_VSID_KP : SLB_VSID_KS; in kvmppc_mmu_book3s_64_hv_xlate()
361 int amrfield = hpte_get_skey_perm(gr, vcpu->arch.amr); in kvmppc_mmu_book3s_64_hv_xlate()
431 vcpu->arch.paddr_accessed = gpa; in kvmppc_hv_emulate_mmio()
432 vcpu->arch.vaddr_accessed = ea; in kvmppc_hv_emulate_mmio()
461 if (ea != vcpu->arch.pgfault_addr) in kvmppc_book3s_hv_page_fault()
463 index = vcpu->arch.pgfault_index; in kvmppc_book3s_hv_page_fault()
464 hptep = (__be64 *)(kvm->arch.hpt_virt + (index << 4)); in kvmppc_book3s_hv_page_fault()
465 rev = &kvm->arch.revmap[index]; in kvmppc_book3s_hv_page_fault()
475 if (hpte[0] != vcpu->arch.pgfault_hpte[0] || in kvmppc_book3s_hv_page_fault()
476 hpte[1] != vcpu->arch.pgfault_hpte[1]) in kvmppc_book3s_hv_page_fault()
594 rmap = &memslot->arch.rmap[gfn_base - memslot->base_gfn]; in kvmppc_book3s_hv_page_fault()
660 memset(memslot->arch.rmap, 0, in kvmppc_rmap_reset()
661 memslot->npages * sizeof(*memslot->arch.rmap)); in kvmppc_rmap_reset()
698 ret = handler(kvm, &memslot->arch.rmap[gfn_offset], gfn); in kvm_handle_hva_range()
716 struct revmap_entry *rev = kvm->arch.revmap; in kvm_unmap_rmapp()
734 hptep = (__be64 *) (kvm->arch.hpt_virt + (i << 4)); in kvm_unmap_rmapp()
797 rmapp = memslot->arch.rmap; in kvmppc_core_flush_memslot_hv()
816 struct revmap_entry *rev = kvm->arch.revmap; in kvm_age_rmapp()
834 hptep = (__be64 *) (kvm->arch.hpt_virt + (i << 4)); in kvm_age_rmapp()
874 struct revmap_entry *rev = kvm->arch.revmap; in kvm_test_age_rmapp()
889 hp = (unsigned long *)(kvm->arch.hpt_virt + (i << 4)); in kvm_test_age_rmapp()
914 return atomic_read(&kvm->arch.vcpus_running) != 0; in vcpus_running()
923 struct revmap_entry *rev = kvm->arch.revmap; in kvm_test_clear_dirty_npages()
948 hptep = (__be64 *) (kvm->arch.hpt_virt + (i << 4)); in kvm_test_clear_dirty_npages()
1036 rmapp = memslot->arch.rmap; in kvmppc_hv_get_dirty_log()
1053 spin_lock(&vcpu->arch.vpa_update_lock); in kvmppc_hv_get_dirty_log()
1054 harvest_vpa_dirty(&vcpu->arch.vpa, memslot, map); in kvmppc_hv_get_dirty_log()
1055 harvest_vpa_dirty(&vcpu->arch.dtl, memslot, map); in kvmppc_hv_get_dirty_log()
1056 spin_unlock(&vcpu->arch.vpa_update_lock); in kvmppc_hv_get_dirty_log()
1112 rmap = &memslot->arch.rmap[gfn - memslot->base_gfn]; in kvmppc_unpin_guest_page()
1255 hptp = (__be64 *)(kvm->arch.hpt_virt + (i * HPTE_SIZE)); in kvm_htab_read()
1256 revp = kvm->arch.revmap + i; in kvm_htab_read()
1271 while (i < kvm->arch.hpt_npte && in kvm_htab_read()
1281 while (i < kvm->arch.hpt_npte && in kvm_htab_read()
1297 while (i < kvm->arch.hpt_npte && in kvm_htab_read()
1318 if (i >= kvm->arch.hpt_npte) { in kvm_htab_read()
1350 hpte_setup = kvm->arch.hpte_setup_done; in kvm_htab_write()
1352 kvm->arch.hpte_setup_done = 0; /* temporarily */ in kvm_htab_write()
1355 if (atomic_read(&kvm->arch.vcpus_running)) { in kvm_htab_write()
1356 kvm->arch.hpte_setup_done = 1; in kvm_htab_write()
1377 if (i >= kvm->arch.hpt_npte || in kvm_htab_write()
1378 i + hdr.n_valid + hdr.n_invalid > kvm->arch.hpt_npte) in kvm_htab_write()
1381 hptp = (__be64 *)(kvm->arch.hpt_virt + (i * HPTE_SIZE)); in kvm_htab_write()
1414 kvm->arch.vrma_slb_v = senc | SLB_VSID_B_1T | in kvm_htab_write()
1436 kvm->arch.hpte_setup_done = hpte_setup; in kvm_htab_write()
1450 atomic_dec(&ctx->kvm->arch.hpte_mod_interest); in kvm_htab_release()
1490 atomic_inc(&kvm->arch.hpte_mod_interest); in kvm_vm_ioctl_get_htab_fd()
1568 hptp = (__be64 *)(kvm->arch.hpt_virt + (i * HPTE_SIZE)); in debugfs_htab_read()
1569 for (; len != 0 && i < kvm->arch.hpt_npte; ++i, hptp += 2) { in debugfs_htab_read()
1579 gr = kvm->arch.revmap[i].guest_rpte; in debugfs_htab_read()
1629 kvm->arch.htab_dentry = debugfs_create_file("htab", 0400, in kvmppc_mmu_debugfs_init()
1630 kvm->arch.debugfs_dir, kvm, in kvmppc_mmu_debugfs_init()
1636 struct kvmppc_mmu *mmu = &vcpu->arch.mmu; in kvmppc_mmu_book3s_hv_init()
1638 vcpu->arch.slb_nr = 32; /* POWER7/POWER8 */ in kvmppc_mmu_book3s_hv_init()
1643 vcpu->arch.hflags |= BOOK3S_HFLAG_SLB; in kvmppc_mmu_book3s_hv_init()