Re: Ack to merge through DRM? WAS Re: [PATCH v2 1/5] mm: Add write-protect and clean utilities for address space ranges

From: Thomas HellstrÃm (VMware)
Date: Thu Sep 26 2019 - 16:09:25 EST


Hi,

On 9/26/19 9:19 PM, Linus Torvalds wrote:
On Thu, Sep 26, 2019 at 5:03 AM Thomas HellstrÃm (VMware)
<thomas_os@xxxxxxxxxxxx> wrote:
I wonder if I can get an ack from an mm maintainer to merge this through
DRM along with the vmwgfx patches? Andrew? Matthew?
It would have helped to actually point to the patch itself, instead of
just quoting the commit message.

Looks like this:

https://lore.kernel.org/lkml/20190926115548.44000-2-thomas_os@xxxxxxxxxxxx/

but why is the code in question not just using the regular page
walkers. The commit log shows no explanation of what's so special
about this?

Is the only reason the locking magic? Because if that's the reason,
then afaik we already have a function for that: it's
__walk_page_range().

Yes, it's static right now, but that's imho not a reason to duplicate
all the walking (badly).

Is there some other magic reason that isn't documented?

Linus

There is a discussion around this subject in

https://lore.kernel.org/lkml/20190926115548.44000-1-thomas_os@xxxxxxxxxxxx/

The main point is that there is an assert in pud_trans_huge_lock() that the mmap_sem is held, and we don't have it. Presumably we should be able to get away with the i_mmap_lock, but in addition I would have had to include the walk_as_pte_range() as the walk::pmd_entry anyway, so the amount of duplicated page walk code isn't that big.

That said, if people are OK with me modifying the assert in pud_trans_huge_lock() and make __walk_page_range non-static, it should probably be possible to make it work, yes.

Thanks,
Thomas