Process's memory regions are now behind an rwlock instead of using the full process lock. This allows most pointer validations to not block as write operations to memory regions are rare. Thread's userspace stack is now part of process's memory regions. This simplifies code that explicitly looped over threads to see if the accessed address was inside a thread's stack. Only drawback of this is that MemoryRegions don't support guard pages, so userspace stackoverflow will be handeled as cleanly as it was prior to this. This patch also fixes some unnecessary locking of the process lock and moves locking to the internal helper functions instead of asserting that the lock is held. Also we now make sure loaded ELF regions are in sorted order as we previously expected. |
||
|---|---|---|
| .. | ||
| arch | ||
| font | ||
| include/kernel | ||
| kernel | ||
| klibc | ||
| CMakeLists.txt | ||
| icxxabi.cpp | ||
| ubsan.cpp | ||