When page tables are modified, they should be locked so that only one thread messes with them. There are two possible scenarious: locking in process-local part (lower half) and locking in shared kernel part (upper half). Upper half should have one global lock and lower half page tables should have one lock per paging context.
When page tables are modified, they should be locked so that only one thread messes with them. There are two possible scenarious: locking in process-local part (lower half) and locking in shared kernel part (upper half). Upper half should have one global lock and lower half page tables should have one lock per paging context.