Re: [PATCH v2 01/11] mm/hmm: select mmu notifier when selecting HMM
From: John Hubbard
Date: Fri Mar 29 2019 - 17:43:01 EST
On 3/29/19 2:15 PM, Jerome Glisse wrote:
>> Yes, this is a good move, given that MMU notifiers are completely,
>> indispensably part of the HMM design and implementation.
>> The alternative would also work, but it's not quite as good. I'm
>> listing it in order to forestall any debate:
>> config HMM
>> + depends on MMU_NOTIFIER
>> select MIGRATE_VMA_HELPER
>> ...and "depends on" versus "select" is always a subtle question. But in
>> this case, I'd say that if someone wants HMM, there's no advantage in
>> making them know that they must first ensure MMU_NOTIFIER is enabled.
>> After poking around a bit I don't see any obvious downsides either.
> You can not depend on MMU_NOTIFIER it is one of the kernel config
> option that is not selectable. So any config that need MMU_NOTIFIER
> must select it.
aha, thanks for explaining that point about the non-user-selectable items,
I wasn't aware of that. (I had convinced myself that those were set by
hard-coding a choice in one of the Kconfig files.)
>> However, given that you're making this change, in order to avoid odd
>> redundancy, you should also do this:
>> diff --git a/mm/Kconfig b/mm/Kconfig
>> index 0d2944278d80..2e6d24d783f7 100644
>> --- a/mm/Kconfig
>> +++ b/mm/Kconfig
>> @@ -700,7 +700,6 @@ config HMM
>> config HMM_MIRROR
>> bool "HMM mirror CPU page table into a device page table"
>> depends on ARCH_HAS_HMM
>> - select MMU_NOTIFIER
>> select HMM
>> Select HMM_MIRROR if you want to mirror range of the CPU page table of a
> Because it is a select option no harm can come from that hence i do
> not remove but i can remove it.
Yes, this is just a tiny housecleaning point, not anything earthshaking.