You speak about global kernel lock via lock_kernel, don't you?
I suppose if page isn't present the task will go sleep waiting
for IO completion the lock will be released
and kswapd will get a chance to do the job.
I don't think that giving additional chances to kswapd to work
on SMP systems is worth redesign of SMP locks in mlock.
But if people think that it is worth I'll think how to do it.
>
> The solution to doing multiple-vma mlock() swapins can
> be found in vmscan.c, fucntion swap_out_process()...
Multiple vma isn't a problem. make_pages_present is called from
mlock_fixup only for pages in the same vma. A loop for all
vma covered by user specified arguments is done by the caller of mlock_fixup.
>
> > --- linux.orig/include/linux/mm.h Wed Jun 17 14:49:08 1998
> > +++ linux/include/linux/mm.h Sun Jun 21 20:27:45 1998
> > @@ -292,6 +292,7 @@
>
> No comments here, of course :-)
>
>
> Keep up the good work, Andrey (the only part of your
> name I can write correctly in one try :)...
:-)
Best wishes
Andrey V.
Savochkin
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu