I think I found a minor bug: do_wp_page() does not call spin_unlock() if called with bad parameters: if "goto bad_wp_page" is executed, then noone unlocks the page_table_lock spinlock. My second question is the mm semaphore: It seems that if in a multi threaded application several threads access a large mmaped file, that then all page-in operations are serialized (including waiting for the disk IO) Is that correct? Are there any plans to change that? a possible alternative: * every mm has a linked list of all pages the OS is currently working on. * instead of just acquiring the mm semaphore, every operation must first check that there are no collisions with pending operations, then it acquires the semaphore. * we drop the mm semaphore during long (i.e. IO) operations. Please Cc, I´m currently not on the mailing list. -- Manfred