[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 3/6] target/riscv: Add helper functions to calculate curre
|
From: |
Deepak Gupta |
|
Subject: |
Re: [PATCH v4 3/6] target/riscv: Add helper functions to calculate current number of masked bits for pointer masking |
|
Date: |
Thu, 18 Jan 2024 14:40:14 -0800 |
On Thu, Jan 18, 2024 at 12:50 PM Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> On 1/19/24 04:21, Deepak Gupta wrote:
> > On Tue, Jan 9, 2024 at 2:31 AM Alexey Baturo <baturo.alexey@gmail.com>
> > wrote:
> >>
> >> From: Alexey Baturo <baturo.alexey@gmail.com>
> >>
> >> Signed-off-by: Alexey Baturo <baturo.alexey@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~
[PATCH v4 4/6] target/riscv: Add pointer masking tb flags, Alexey Baturo, 2024/01/09
[PATCH v4 5/6] target/riscv: Update address modify functions to take into account pointer masking, Alexey Baturo, 2024/01/09
[PATCH v4 6/6] target/riscv: Enable updates for pointer masking variables and thus enable pointer masking extension, Alexey Baturo, 2024/01/09
Re: [PATCH v4 0/6] Pointer Masking update for Zjpm v0.8, Alistair Francis, 2024/01/22