On Mon, Nov 16, 2020 at 03:47:36PM +0100, Alexandre Chartre wrote: > Deferring CR3 switch to C code means that we need to run more of the > kernel entry code with the user page-table. To do so, we need to: > > - map more syscall, interrupt and exception entry code into the user > page-table (map all noinstr code); > > - map additional data used in the entry code (such as stack canary); > > - run more entry code on the trampoline stack (which is mapped both > in the kernel and in the user page-table) until we switch to the > kernel page-table and then switch to the kernel stack;
So PTI was added exactly to *not* have kernel memory mapped in the user page table. You're partially reversing that... > - have a per-task trampoline stack instead of a per-cpu trampoline > stack, so the task can be scheduled out while it hasn't switched > to the kernel stack. per-task? How much more memory is that per task? -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette