Home
last modified time | relevance | path

Searched refs:slb (Results 1 – 17 of 17) sorted by relevance

/linux-4.4.14/drivers/misc/cxl/
Dfault.c25 static bool sste_matches(struct cxl_sste *sste, struct copro_slb *slb) in sste_matches() argument
27 return ((sste->vsid_data == cpu_to_be64(slb->vsid)) && in sste_matches()
28 (sste->esid_data == cpu_to_be64(slb->esid))); in sste_matches()
36 struct copro_slb *slb) in find_free_sste() argument
43 if (slb->vsid & SLB_VSID_B_1T) in find_free_sste()
44 hash = (slb->esid >> SID_SHIFT_1T) & mask; in find_free_sste()
46 hash = (slb->esid >> SID_SHIFT) & mask; in find_free_sste()
53 if (sste_matches(sste, slb)) in find_free_sste()
66 static void cxl_load_segment(struct cxl_context *ctx, struct copro_slb *slb) in cxl_load_segment() argument
73 sste = find_free_sste(ctx, slb); in cxl_load_segment()
[all …]
/linux-4.4.14/arch/powerpc/kvm/
Dbook3s_64_mmu.c55 if (!vcpu->arch.slb[i].valid) in kvmppc_mmu_book3s_64_find_slbe()
58 if (vcpu->arch.slb[i].tb) in kvmppc_mmu_book3s_64_find_slbe()
61 if (vcpu->arch.slb[i].esid == cmp_esid) in kvmppc_mmu_book3s_64_find_slbe()
62 return &vcpu->arch.slb[i]; in kvmppc_mmu_book3s_64_find_slbe()
68 if (vcpu->arch.slb[i].vsid) in kvmppc_mmu_book3s_64_find_slbe()
70 vcpu->arch.slb[i].valid ? 'v' : ' ', in kvmppc_mmu_book3s_64_find_slbe()
71 vcpu->arch.slb[i].large ? 'l' : ' ', in kvmppc_mmu_book3s_64_find_slbe()
72 vcpu->arch.slb[i].tb ? 't' : ' ', in kvmppc_mmu_book3s_64_find_slbe()
73 vcpu->arch.slb[i].esid, in kvmppc_mmu_book3s_64_find_slbe()
74 vcpu->arch.slb[i].vsid); in kvmppc_mmu_book3s_64_find_slbe()
[all …]
Dbook3s_hv_ras.c36 struct slb_shadow *slb; in reload_slb() local
43 slb = vcpu->arch.slb_shadow.pinned_addr; in reload_slb()
44 if (!slb) in reload_slb()
48 n = min_t(u32, be32_to_cpu(slb->persistent), SLB_MIN_SIZE); in reload_slb()
49 if ((void *) &slb->save_area[n] > vcpu->arch.slb_shadow.pinned_end) in reload_slb()
54 unsigned long rb = be64_to_cpu(slb->save_area[i].esid); in reload_slb()
55 unsigned long rs = be64_to_cpu(slb->save_area[i].vsid); in reload_slb()
Dbook3s_64_mmu_host.c278 if (!(svcpu->slb[i].esid & SLB_ESID_V)) in kvmppc_mmu_next_segment()
280 else if ((svcpu->slb[i].esid & ESID_MASK) == esid) { in kvmppc_mmu_next_segment()
324 svcpu->slb[slb_index].esid = 0; in kvmppc_mmu_map_segment()
345 svcpu->slb[slb_index].esid = slb_esid; in kvmppc_mmu_map_segment()
346 svcpu->slb[slb_index].vsid = slb_vsid; in kvmppc_mmu_map_segment()
362 if ((svcpu->slb[i].esid & SLB_ESID_V) && in kvmppc_mmu_flush_segment()
363 (svcpu->slb[i].esid & seg_mask) == ea) { in kvmppc_mmu_flush_segment()
365 svcpu->slb[i].esid = 0; in kvmppc_mmu_flush_segment()
376 svcpu->slb[0].esid = 0; in kvmppc_mmu_flush_segments()
Dbook3s_pr.c98 memcpy(svcpu->slb, to_book3s(vcpu)->slb_shadow, sizeof(svcpu->slb)); in kvmppc_core_vcpu_load_pr()
125 memcpy(to_book3s(vcpu)->slb_shadow, svcpu->slb, sizeof(svcpu->slb)); in kvmppc_core_vcpu_put_pr()
1260 sregs->u.s.ppc64.slb[i].slbe = vcpu->arch.slb[i].orige | i; in kvm_arch_vcpu_ioctl_get_sregs_pr()
1261 sregs->u.s.ppc64.slb[i].slbv = vcpu->arch.slb[i].origv; in kvm_arch_vcpu_ioctl_get_sregs_pr()
1287 vcpu->arch.mmu.slbmte(vcpu, sregs->u.s.ppc64.slb[i].slbv, in kvm_arch_vcpu_ioctl_set_sregs_pr()
1288 sregs->u.s.ppc64.slb[i].slbe); in kvm_arch_vcpu_ioctl_set_sregs_pr()
Dbook3s_hv.c309 vcpu->arch.slb[r].orige, vcpu->arch.slb[r].origv); in kvmppc_dump_regs()
966 sregs->u.s.ppc64.slb[i].slbe = vcpu->arch.slb[i].orige; in kvm_arch_vcpu_ioctl_get_sregs_hv()
967 sregs->u.s.ppc64.slb[i].slbv = vcpu->arch.slb[i].origv; in kvm_arch_vcpu_ioctl_get_sregs_hv()
984 if (sregs->u.s.ppc64.slb[i].slbe & SLB_ESID_V) { in kvm_arch_vcpu_ioctl_set_sregs_hv()
985 vcpu->arch.slb[j].orige = sregs->u.s.ppc64.slb[i].slbe; in kvm_arch_vcpu_ioctl_set_sregs_hv()
986 vcpu->arch.slb[j].origv = sregs->u.s.ppc64.slb[i].slbv; in kvm_arch_vcpu_ioctl_set_sregs_hv()
Dbook3s_64_mmu_hv.c285 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()
/linux-4.4.14/arch/powerpc/kernel/
Dmce_power.c83 struct slb_shadow *slb; in flush_and_reload_slb() local
99 slb = get_slb_shadow(); in flush_and_reload_slb()
100 if (!slb) in flush_and_reload_slb()
103 n = min_t(u32, be32_to_cpu(slb->persistent), SLB_MIN_SIZE); in flush_and_reload_slb()
107 unsigned long rb = be64_to_cpu(slb->save_area[i].esid); in flush_and_reload_slb()
108 unsigned long rs = be64_to_cpu(slb->save_area[i].vsid); in flush_and_reload_slb()
Dasm-offsets.c545 DEFINE(VCPU_SLB, offsetof(struct kvm_vcpu, arch.slb)); in main()
635 SVCPU_FIELD(SVCPU_SLB, slb); in main()
/linux-4.4.14/arch/powerpc/platforms/cell/
Dspu_base.c148 static inline void spu_load_slb(struct spu *spu, int slbe, struct copro_slb *slb) in spu_load_slb() argument
153 __func__, slbe, slb->vsid, slb->esid); in spu_load_slb()
159 out_be64(&priv2->slb_vsid_RW, slb->vsid); in spu_load_slb()
161 out_be64(&priv2->slb_esid_RW, slb->esid); in spu_load_slb()
166 struct copro_slb slb; in __spu_trap_data_seg() local
169 ret = copro_calculate_slb(spu->mm, ea, &slb); in __spu_trap_data_seg()
173 spu_load_slb(spu, spu->slb_replace, &slb); in __spu_trap_data_seg()
220 static void __spu_kernel_slb(void *addr, struct copro_slb *slb) in __spu_kernel_slb() argument
230 slb->vsid = (get_kernel_vsid(ea, MMU_SEGSIZE_256M) << SLB_VSID_SHIFT) | in __spu_kernel_slb()
232 slb->esid = (ea & ESID_MASK) | SLB_ESID_V; in __spu_kernel_slb()
/linux-4.4.14/arch/powerpc/mm/
Dcopro_fault.c101 int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb) in copro_calculate_slb() argument
141 slb->esid = (ea & (ssize == MMU_SEGSIZE_1T ? ESID_MASK_1T : ESID_MASK)) | SLB_ESID_V; in copro_calculate_slb()
142 slb->vsid = vsid; in copro_calculate_slb()
DMakefile16 obj-$(CONFIG_PPC_STD_MMU_64) += hash_utils_64.o slb_low.o slb.o $(hash64-y)
/linux-4.4.14/arch/powerpc/include/asm/
Dcopro.h21 int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb);
Dkvm_book3s_asm.h156 } slb[64]; /* guest SLB */
Dkvm_host.h415 struct kvmppc_slb slb[64]; member
/linux-4.4.14/arch/x86/kvm/
Dtrace.h670 TP_PROTO(__u64 rip, __u32 slb),
671 TP_ARGS(rip, slb),
675 __field( __u32, slb )
680 __entry->slb = slb;
684 __entry->rip, __entry->slb)
/linux-4.4.14/arch/powerpc/include/uapi/asm/
Dkvm.h175 } slb[64]; member