<palmer>
khem: ya, we did a bunch of TLB refactoring stuff. I'd start by looking at anything in arch/riscv without a fixes/stable tag that got backported, something might have been autoselected
heat_ has quit [Remote host closed the connection]
heat_ has joined #riscv
epony has quit [Remote host closed the connection]
BootLayer has joined #riscv
heat_ has quit [Ping timeout: 276 seconds]
iooi has joined #riscv
iooi has quit [Read error: Connection reset by peer]
iooi has joined #riscv
iooi has quit [Read error: Connection reset by peer]
iooi has joined #riscv
iooi has quit [Read error: Connection reset by peer]
iooi has joined #riscv
iooi has quit [Read error: Connection reset by peer]
iooi has joined #riscv
iooi has quit [Read error: Connection reset by peer]
<dramforever[m]>
and I'm like, *very* confused about whether it is allowed that PMLEN > NVBITS
epony has joined #riscv
<dramforever[m]>
it seems that the entire spec just keep saying how it is difficult to implement in hardware, but nowhere does the spec actually forbid say PMLEN = 16 in Sv57? does this mean it's actually allowed?
<sorear>
it's allowed in the sense that an implementation can choose to provide it, but PMM is a WARL field and so all of its possible values are individually optional to support
<dramforever>
I also just realized that PMLEN = 16 for U-mode in Sv57 could work if the S-mode software is like, aware and handles it
<dramforever>
okay but hear me out, the spec also says that the pc is *not* masked when fetching instructions
<dramforever>
so it's possible to end up with a "forbidden address space" where the pc can reach but load/store instructions can't
<dramforever>
so, say you're a hypervisor, and the guest has pc pointed to this forbidden space and does an MMIO load/store that traps to the hypervisor
<sorear>
maybe file an issue that HLVX should ignore pointer masking? pointer masking in hypervisors seems fairly useless to begin with
<dramforever>
well they just need to set it up in the guest
<dramforever>
like the guest is running a JIT'd language or something
<dramforever>
okay right, i'm mostly just asking here because i want to be sure i'm not missing something obvious like "actually this never happens"
<sorear>
i was under the impression M-mode pointer masking was deleted since there wasn't actually a use case, somewhat concerning if it's still in the newest pdf