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