[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
A couple of questions
I have a couple of questions about do_wp_page; I hope they're welcome
here.
1) do_wp_page has most execution paths doing an unlock_kernel() but
there are a couple that don't. Why isn't this inconsistent? e.g. any of
the branches that call end_wp_page do not unlock the kernel. What am I
missing? Is it that these branches only happen if we slept while getting
the free page, and sleeping always unlocks the kernel?
2) The last 2 of the 3 branches to end_wp_page seem to me to be
impossible code paths.
if (!pte_present(pte))
goto end_wp_page;
if (pte_write(pte))
goto end_wp_page;
At entry, pte (= *page_table) is present and not writable as this is the
only way do_wp_page gets called from handle_pte_fault (and we hold the
kernel lock so nothing else can change *page_table). Being a local
variable, it contents cannot change, so why these 2 tests?
Cheers,
Neil.
--
To unsubscribe, send a message with 'unsubscribe linux-mm my@address'
in the body to majordomo@kvack.org. For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/