I've got a question regarding an SMP system with multiple threads belonging to the same process:
Do all these threads share a single page-tree and the accessed and dirty bits of the PTEs in the tree are atomically (read-modify-write-operation) updated (accessed & dirty bit) according to the PTE-caches when they are flushed back?
Or are there up to the number of threads duplicate page-tables which are each dedicated to a single thread while it is running (and recycled if another thread is running) so that there's no need to (rmw-)lock the memory holding the PTE-entries while updating the accessed- and dirty-bits while flushing the PTE-caches?