if I had to name a single thing OS kernels could change to improve interfaces, it would be to make syscalls as cheap as function calls across shared object boundaries
-
-
Even read/write on pipes could be done in userspace when all processes with access are in same priv domain.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Would need an additional 23 registers per privilege level (M, S and U). 77 registers instead of 31 for 3 privilege modes. OoO’s have a much larger physical register file anyhow. Could be handled in the renamer.
-
that's the idea, more or less
End of conversation
New conversation -
-
-
Register windows on SPARC we’re actually used in the same protection domain for function calls and they kind of defeat the register allocator, but between protection domains they make more sense.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
I’d like to ECALL to vector on ASID (Address Space ID TLB tag) to make fast calls between protection domains and not go via a single kernel (like pipes and sockets). Transfer a window of registers from your thread to another protection domain (a0 to a7 in the case or RISC-V)
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Registers windows could save entry exit overhead when changing privilege modes. e.g. on RISC-V one could just share a0 to a7 (the argument registers) on ECALL privilege mode switches (system call). Return to users would need to clear a1 to a7 to prevent info-leaks.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.