Seems reasonable.
> There
> is still an inlined do_no_page() wrapper due to the fact that
> do_anonymous_page() requires that the mm->page_table_lock be
> held on entry, while the ->nopage callouts require that this
> lock be dropped.
I sugest you change the ->nopage definition so that page_table_lock is held
on entry to ->nopage, and ->nopage must drop it at some point. This gives
the nopage implementations some more flexibility and may perhaps eliminate
that special case?
> This patch is untested.
I don't think there's a lot of point in making changes until the code which
requires those changes is accepted into the tree. Otherwise it may be
pointless churn, and there's nothing in-tree to exercise the new features.
> An alternative to this patch includes the nopagedone() patch posted
> moments ago. hch has also suggested that do_anonymous_page() be
> converted to a ->nopage callout, but this would require that all
> of the other ->nopage callouts drop mm->page_table_lock as their
> first action. If people believe that this is the right thing to
> do, I will happily produce such a patch.
That sounds better to me.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/