composite
composite copied to clipboard
ASID management: in the kernel or outside the kernel
The advantage of putting ASID management in the kernel (like seL4's ASID pools) is the possibility of creating separation kernels, and such separation is enforced by the kernel by default. However, this may add unnecessary complexity to the kernel, and this functionality is not necessarily used by all people.
In this case, it might be more appropriate to move ASID management out of the kernel to a trusted user-level component. While this may have slowdowns, but does not harass more users, and can speed up the kernel by removing a branch in the kernel. This goes the same for many hardware functionalities, see issue #368 and #370.