On Thu, Jan 18, 2024 at 12:50 PM Richard Henderson <richard.hender...@linaro.org> wrote: > > On 1/19/24 04:21, Deepak Gupta wrote: > > On Tue, Jan 9, 2024 at 2:31 AM Alexey Baturo <baturo.ale...@gmail.com> > > wrote: > >> > >> From: Alexey Baturo <baturo.ale...@gmail.com> > >> > >> Signed-off-by: Alexey Baturo <baturo.ale...@gmail.com> > >> --- > > > >> + > >> +bool riscv_cpu_virt_mem_enabled(CPURISCVState *env) > >> +{ > >> + bool virt_mem_en = false; > >> +#ifndef CONFIG_USER_ONLY > >> + int satp_mode = 0; > >> + int priv_mode = cpu_address_mode(env); > >> + /* Get current PMM field */ > >> + if (riscv_cpu_mxl(env) == MXL_RV32) { > >> + satp_mode = get_field(env->satp, SATP32_MODE); > >> + } else { > >> + satp_mode = get_field(env->satp, SATP64_MODE); > >> + } > >> + virt_mem_en = ((satp_mode != VM_1_10_MBARE) && (priv_mode != PRV_M)); > >> +#endif > >> + return virt_mem_en; > > > > Obsessing a little bit on how to test PM enabled binaries with qemu-user. > > If we return false above then we're not allowed to test binaries with > > pointer masking enabled with qemu-user. > > That use case is not required? > > In a previous round I suggested that the ifdefs are not necessary. > But for now it will always be off for qemu-user. > > At some point pointer masking will be in hardware, and the kernel will gain > support for > it, and there will likely be a prctl() added for it. At the point the kernel > finalizes > the API, you will be able to enable pointer masking for qemu-user.
I am sure I am missing some important detail here, BUT... How is it different from aarch64 "top byte ignore". I think commit: 16c8497 enables top byte ignore for user pointers and by default for qemu-user for aarch64 target. IIRC, user <--> kernel abi is only needed for pointers that are passed to the kernel. And in the case of qemu-user, we are talking about the host kernel. Since arm64 had TBI enabled for qemu-user for a while and I imagine it works on x86 host kernel (assuming qemu-user is sanitizing pointers) Same should work for risc-v qemu-user, right? > > > r~