Home
last modified time | relevance | path

Searched refs:slb (Results 1 - 25 of 35) sorted by relevance

12

/kernel/linux/linux-5.10/drivers/misc/cxl/
H A Dfault.c22 static bool sste_matches(struct cxl_sste *sste, struct copro_slb *slb) in sste_matches() argument
24 return ((sste->vsid_data == cpu_to_be64(slb->vsid)) && in sste_matches()
25 (sste->esid_data == cpu_to_be64(slb->esid))); in sste_matches()
33 struct copro_slb *slb) in find_free_sste()
40 if (slb->vsid & SLB_VSID_B_1T) in find_free_sste()
41 hash = (slb->esid >> SID_SHIFT_1T) & mask; in find_free_sste()
43 hash = (slb->esid >> SID_SHIFT) & mask; in find_free_sste()
50 if (sste_matches(sste, slb)) in find_free_sste()
63 static void cxl_load_segment(struct cxl_context *ctx, struct copro_slb *slb) in cxl_load_segment() argument
70 sste = find_free_sste(ctx, slb); in cxl_load_segment()
32 find_free_sste(struct cxl_context *ctx, struct copro_slb *slb) find_free_sste() argument
87 struct copro_slb slb = {0,0}; cxl_fault_segment() local
312 struct copro_slb slb; cxl_prefault_vma() local
[all...]
/kernel/linux/linux-6.6/drivers/misc/cxl/
H A Dfault.c22 static bool sste_matches(struct cxl_sste *sste, struct copro_slb *slb) in sste_matches() argument
24 return ((sste->vsid_data == cpu_to_be64(slb->vsid)) && in sste_matches()
25 (sste->esid_data == cpu_to_be64(slb->esid))); in sste_matches()
33 struct copro_slb *slb) in find_free_sste()
40 if (slb->vsid & SLB_VSID_B_1T) in find_free_sste()
41 hash = (slb->esid >> SID_SHIFT_1T) & mask; in find_free_sste()
43 hash = (slb->esid >> SID_SHIFT) & mask; in find_free_sste()
50 if (sste_matches(sste, slb)) in find_free_sste()
63 static void cxl_load_segment(struct cxl_context *ctx, struct copro_slb *slb) in cxl_load_segment() argument
70 sste = find_free_sste(ctx, slb); in cxl_load_segment()
32 find_free_sste(struct cxl_context *ctx, struct copro_slb *slb) find_free_sste() argument
87 struct copro_slb slb = {0,0}; cxl_fault_segment() local
296 struct copro_slb slb; cxl_prefault_vma() local
[all...]
/kernel/linux/linux-5.10/arch/powerpc/kvm/
H A Dbook3s_64_mmu.c38 if (!vcpu->arch.slb[i].valid) in kvmppc_mmu_book3s_64_find_slbe()
41 if (vcpu->arch.slb[i].tb) in kvmppc_mmu_book3s_64_find_slbe()
44 if (vcpu->arch.slb[i].esid == cmp_esid) in kvmppc_mmu_book3s_64_find_slbe()
45 return &vcpu->arch.slb[i]; in kvmppc_mmu_book3s_64_find_slbe()
51 if (vcpu->arch.slb[i].vsid) in kvmppc_mmu_book3s_64_find_slbe()
53 vcpu->arch.slb[i].valid ? 'v' : ' ', in kvmppc_mmu_book3s_64_find_slbe()
54 vcpu->arch.slb[i].large ? 'l' : ' ', in kvmppc_mmu_book3s_64_find_slbe()
55 vcpu->arch.slb[i].tb ? 't' : ' ', in kvmppc_mmu_book3s_64_find_slbe()
56 vcpu->arch.slb[i].esid, in kvmppc_mmu_book3s_64_find_slbe()
57 vcpu->arch.slb[ in kvmppc_mmu_book3s_64_find_slbe()
73 kvmppc_slb_calc_vpn(struct kvmppc_slb *slb, gva_t eaddr) kvmppc_slb_calc_vpn() argument
84 struct kvmppc_slb *slb; kvmppc_mmu_book3s_64_ea_to_vp() local
577 struct kvmppc_slb *slb; kvmppc_mmu_book3s_64_esid_to_vsid() local
[all...]
H A Dbook3s_hv_ras.c39 struct slb_shadow *slb; in reload_slb() local
46 slb = vcpu->arch.slb_shadow.pinned_addr; in reload_slb()
47 if (!slb) in reload_slb()
51 n = min_t(u32, be32_to_cpu(slb->persistent), SLB_MIN_SIZE); in reload_slb()
52 if ((void *) &slb->save_area[n] > vcpu->arch.slb_shadow.pinned_end) in reload_slb()
57 unsigned long rb = be64_to_cpu(slb->save_area[i].esid); in reload_slb()
58 unsigned long rs = be64_to_cpu(slb->save_area[i].vsid); in reload_slb()
H A Dbook3s_64_mmu_host.c279 if (!(svcpu->slb[i].esid & SLB_ESID_V)) in kvmppc_mmu_next_segment()
281 else if ((svcpu->slb[i].esid & ESID_MASK) == esid) { in kvmppc_mmu_next_segment()
325 svcpu->slb[slb_index].esid = 0; in kvmppc_mmu_map_segment()
346 svcpu->slb[slb_index].esid = slb_esid; in kvmppc_mmu_map_segment()
347 svcpu->slb[slb_index].vsid = slb_vsid; in kvmppc_mmu_map_segment()
363 if ((svcpu->slb[i].esid & SLB_ESID_V) && in kvmppc_mmu_flush_segment()
364 (svcpu->slb[i].esid & seg_mask) == ea) { in kvmppc_mmu_flush_segment()
366 svcpu->slb[i].esid = 0; in kvmppc_mmu_flush_segment()
377 svcpu->slb[0].esid = 0; in kvmppc_mmu_flush_segments()
H A Dbook3s_pr.c135 memcpy(svcpu->slb, to_book3s(vcpu)->slb_shadow, sizeof(svcpu->slb)); in kvmppc_core_vcpu_load_pr()
164 memcpy(to_book3s(vcpu)->slb_shadow, svcpu->slb, sizeof(svcpu->slb)); in kvmppc_core_vcpu_put_pr()
1485 sregs->u.s.ppc64.slb[i].slbe = vcpu->arch.slb[i].orige | i; in kvm_arch_vcpu_ioctl_get_sregs_pr()
1486 sregs->u.s.ppc64.slb[i].slbv = vcpu->arch.slb[i].origv; in kvm_arch_vcpu_ioctl_get_sregs_pr()
1517 u64 rb = sregs->u.s.ppc64.slb[i].slbe; in kvm_arch_vcpu_ioctl_set_sregs_pr()
1518 u64 rs = sregs->u.s.ppc64.slb[ in kvm_arch_vcpu_ioctl_set_sregs_pr()
[all...]
H A Dbook3s_hv.c435 vcpu->arch.slb[r].orige, vcpu->arch.slb[r].origv); in kvmppc_dump_regs()
1581 sregs->u.s.ppc64.slb[i].slbe = vcpu->arch.slb[i].orige; in kvm_arch_vcpu_ioctl_get_sregs_hv()
1582 sregs->u.s.ppc64.slb[i].slbv = vcpu->arch.slb[i].origv; in kvm_arch_vcpu_ioctl_get_sregs_hv()
1599 if (sregs->u.s.ppc64.slb[i].slbe & SLB_ESID_V) { in kvm_arch_vcpu_ioctl_set_sregs_hv()
1600 vcpu->arch.slb[j].orige = sregs->u.s.ppc64.slb[i].slbe; in kvm_arch_vcpu_ioctl_set_sregs_hv()
1601 vcpu->arch.slb[ in kvm_arch_vcpu_ioctl_set_sregs_hv()
[all...]
/kernel/linux/linux-6.6/arch/powerpc/kvm/
H A Dbook3s_64_mmu.c38 if (!vcpu->arch.slb[i].valid) in kvmppc_mmu_book3s_64_find_slbe()
41 if (vcpu->arch.slb[i].tb) in kvmppc_mmu_book3s_64_find_slbe()
44 if (vcpu->arch.slb[i].esid == cmp_esid) in kvmppc_mmu_book3s_64_find_slbe()
45 return &vcpu->arch.slb[i]; in kvmppc_mmu_book3s_64_find_slbe()
51 if (vcpu->arch.slb[i].vsid) in kvmppc_mmu_book3s_64_find_slbe()
53 vcpu->arch.slb[i].valid ? 'v' : ' ', in kvmppc_mmu_book3s_64_find_slbe()
54 vcpu->arch.slb[i].large ? 'l' : ' ', in kvmppc_mmu_book3s_64_find_slbe()
55 vcpu->arch.slb[i].tb ? 't' : ' ', in kvmppc_mmu_book3s_64_find_slbe()
56 vcpu->arch.slb[i].esid, in kvmppc_mmu_book3s_64_find_slbe()
57 vcpu->arch.slb[ in kvmppc_mmu_book3s_64_find_slbe()
73 kvmppc_slb_calc_vpn(struct kvmppc_slb *slb, gva_t eaddr) kvmppc_slb_calc_vpn() argument
84 struct kvmppc_slb *slb; kvmppc_mmu_book3s_64_ea_to_vp() local
576 struct kvmppc_slb *slb; kvmppc_mmu_book3s_64_esid_to_vsid() local
[all...]
H A Dbook3s_hv_ras.c39 struct slb_shadow *slb; in reload_slb() local
46 slb = vcpu->arch.slb_shadow.pinned_addr; in reload_slb()
47 if (!slb) in reload_slb()
51 n = min_t(u32, be32_to_cpu(slb->persistent), SLB_MIN_SIZE); in reload_slb()
52 if ((void *) &slb->save_area[n] > vcpu->arch.slb_shadow.pinned_end) in reload_slb()
57 unsigned long rb = be64_to_cpu(slb->save_area[i].esid); in reload_slb()
58 unsigned long rs = be64_to_cpu(slb->save_area[i].vsid); in reload_slb()
H A Dbook3s_64_mmu_host.c281 if (!(svcpu->slb[i].esid & SLB_ESID_V)) in kvmppc_mmu_next_segment()
283 else if ((svcpu->slb[i].esid & ESID_MASK) == esid) { in kvmppc_mmu_next_segment()
327 svcpu->slb[slb_index].esid = 0; in kvmppc_mmu_map_segment()
348 svcpu->slb[slb_index].esid = slb_esid; in kvmppc_mmu_map_segment()
349 svcpu->slb[slb_index].vsid = slb_vsid; in kvmppc_mmu_map_segment()
365 if ((svcpu->slb[i].esid & SLB_ESID_V) && in kvmppc_mmu_flush_segment()
366 (svcpu->slb[i].esid & seg_mask) == ea) { in kvmppc_mmu_flush_segment()
368 svcpu->slb[i].esid = 0; in kvmppc_mmu_flush_segment()
379 svcpu->slb[0].esid = 0; in kvmppc_mmu_flush_segments()
H A Dbook3s_pr.c136 memcpy(svcpu->slb, to_book3s(vcpu)->slb_shadow, sizeof(svcpu->slb)); in kvmppc_core_vcpu_load_pr()
168 memcpy(to_book3s(vcpu)->slb_shadow, svcpu->slb, sizeof(svcpu->slb)); in kvmppc_core_vcpu_put_pr()
1473 sregs->u.s.ppc64.slb[i].slbe = vcpu->arch.slb[i].orige | i; in kvm_arch_vcpu_ioctl_get_sregs_pr()
1474 sregs->u.s.ppc64.slb[i].slbv = vcpu->arch.slb[i].origv; in kvm_arch_vcpu_ioctl_get_sregs_pr()
1505 u64 rb = sregs->u.s.ppc64.slb[i].slbe; in kvm_arch_vcpu_ioctl_set_sregs_pr()
1506 u64 rs = sregs->u.s.ppc64.slb[ in kvm_arch_vcpu_ioctl_set_sregs_pr()
[all...]
H A Dbook3s_hv_p9_entry.c347 mtslb(vcpu->arch.slb[i].orige, vcpu->arch.slb[i].origv); in switch_mmu_to_guest_hpt()
409 vcpu->arch.slb[nr].orige = slbee | i; in save_clear_guest_mmu()
410 vcpu->arch.slb[nr].origv = slbev; in save_clear_guest_mmu()
H A Dbook3s_hv.c479 vcpu->arch.slb[r].orige, vcpu->arch.slb[r].origv); in kvmppc_dump_regs()
2070 sregs->u.s.ppc64.slb[i].slbe = vcpu->arch.slb[i].orige; in kvm_arch_vcpu_ioctl_get_sregs_hv()
2071 sregs->u.s.ppc64.slb[i].slbv = vcpu->arch.slb[i].origv; in kvm_arch_vcpu_ioctl_get_sregs_hv()
2088 if (sregs->u.s.ppc64.slb[i].slbe & SLB_ESID_V) { in kvm_arch_vcpu_ioctl_set_sregs_hv()
2089 vcpu->arch.slb[j].orige = sregs->u.s.ppc64.slb[i].slbe; in kvm_arch_vcpu_ioctl_set_sregs_hv()
2090 vcpu->arch.slb[ in kvm_arch_vcpu_ioctl_set_sregs_hv()
[all...]
/kernel/linux/linux-5.10/arch/powerpc/platforms/cell/
H A Dspu_base.c135 static inline void spu_load_slb(struct spu *spu, int slbe, struct copro_slb *slb) in spu_load_slb() argument
140 __func__, slbe, slb->vsid, slb->esid); in spu_load_slb()
146 out_be64(&priv2->slb_vsid_RW, slb->vsid); in spu_load_slb()
148 out_be64(&priv2->slb_esid_RW, slb->esid); in spu_load_slb()
153 struct copro_slb slb; in __spu_trap_data_seg() local
156 ret = copro_calculate_slb(spu->mm, ea, &slb); in __spu_trap_data_seg()
160 spu_load_slb(spu, spu->slb_replace, &slb); in __spu_trap_data_seg()
209 static void __spu_kernel_slb(void *addr, struct copro_slb *slb) in __spu_kernel_slb() argument
219 slb in __spu_kernel_slb()
[all...]
/kernel/linux/linux-6.6/arch/powerpc/platforms/cell/
H A Dspu_base.c134 static inline void spu_load_slb(struct spu *spu, int slbe, struct copro_slb *slb) in spu_load_slb() argument
139 __func__, slbe, slb->vsid, slb->esid); in spu_load_slb()
145 out_be64(&priv2->slb_vsid_RW, slb->vsid); in spu_load_slb()
147 out_be64(&priv2->slb_esid_RW, slb->esid); in spu_load_slb()
152 struct copro_slb slb; in __spu_trap_data_seg() local
155 ret = copro_calculate_slb(spu->mm, ea, &slb); in __spu_trap_data_seg()
159 spu_load_slb(spu, spu->slb_replace, &slb); in __spu_trap_data_seg()
208 static void __spu_kernel_slb(void *addr, struct copro_slb *slb) in __spu_kernel_slb() argument
218 slb in __spu_kernel_slb()
[all...]
/kernel/linux/linux-5.10/arch/powerpc/mm/
H A Dcopro_fault.c85 int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb) in copro_calculate_slb() argument
134 slb->esid = (ea & (ssize == MMU_SEGSIZE_1T ? ESID_MASK_1T : ESID_MASK)) | SLB_ESID_V; in copro_calculate_slb()
135 slb->vsid = vsid; in copro_calculate_slb()
/kernel/linux/linux-6.6/arch/powerpc/mm/
H A Dcopro_fault.c83 int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb) in copro_calculate_slb() argument
132 slb->esid = (ea & (ssize == MMU_SEGSIZE_1T ? ESID_MASK_1T : ESID_MASK)) | SLB_ESID_V; in copro_calculate_slb()
133 slb->vsid = vsid; in copro_calculate_slb()
/kernel/linux/linux-5.10/arch/powerpc/include/asm/
H A Dcopro.h19 int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb);
H A Dkvm_book3s_asm.h158 u8 slb_max; /* highest used guest slb entry */
162 } slb[64]; /* guest SLB */
/kernel/linux/linux-6.6/arch/powerpc/include/asm/
H A Dcopro.h19 int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb);
H A Dkvm_book3s_asm.h144 u8 slb_max; /* highest used guest slb entry */
148 } slb[64]; /* guest SLB */
/kernel/linux/linux-5.10/arch/powerpc/mm/book3s64/
H A DMakefile7 obj-y += hash_pgtable.o hash_utils.o slb.o \
/kernel/linux/linux-6.6/arch/powerpc/mm/book3s64/
H A DMakefile8 obj-y += hash_pgtable.o hash_utils.o hash_tlb.o slb.o slice.o
/kernel/linux/linux-5.10/arch/x86/kvm/
H A Dtrace.h675 TP_PROTO(__u64 rip, __u32 slb),
676 TP_ARGS(rip, slb),
680 __field( __u32, slb )
685 __entry->slb = slb;
688 TP_printk("rip: 0x%016llx slb: 0x%08x",
689 __entry->rip, __entry->slb)
/kernel/linux/linux-6.6/arch/x86/kvm/
H A Dtrace.h758 TP_PROTO(__u64 rip, __u32 slb),
759 TP_ARGS(rip, slb),
763 __field( __u32, slb )
768 __entry->slb = slb;
771 TP_printk("rip: 0x%016llx slb: 0x%08x",
772 __entry->rip, __entry->slb)

Completed in 25 milliseconds

12