Messages in this thread | | | Date | Mon, 18 Mar 2024 15:19:50 +0000 | From | Matthew Wilcox <> | Subject | Re: [RFC 00/14] Dynamic Kernel Stacks |
| |
On Mon, Mar 18, 2024 at 11:09:47AM -0400, Pasha Tatashin wrote: > The TLB load is going to be exactly the same as today, we already use > small pages for VMA mapped stacks. We won't need to have extra > flushing either, the mappings are in the kernel space, and once pages > are removed from the page table, no one is going to access that VA > space until that thread enters the kernel again. We will need to > invalidate the VA range only when the pages are mapped, and only on > the local cpu.
No; we can pass pointers to our kernel stack to other threads. The obvious one is a mutex; we put a mutex_waiter on our own stack and add its list_head to the mutex's waiter list. I'm sure you can think of many other places we do this (eg wait queues, poll(), select(), etc).
| |