Re: [HMM-v25 00/19] HMM (Heterogeneous Memory Management) v25

From: Dan Williams
Date: Thu Aug 17 2017 - 18:06:17 EST


On Thu, Aug 17, 2017 at 3:02 PM, Jerome Glisse <jglisse@xxxxxxxxxx> wrote:
> On Thu, Aug 17, 2017 at 02:59:20PM -0700, Dan Williams wrote:
>> On Thu, Aug 17, 2017 at 2:55 PM, Jerome Glisse <jglisse@xxxxxxxxxx> wrote:
>> > On Thu, Aug 17, 2017 at 02:39:16PM -0700, Andrew Morton wrote:
>> >> On Wed, 16 Aug 2017 20:05:29 -0400 J__r__me Glisse <jglisse@xxxxxxxxxx> wrote:
>> >>
>> >> > Heterogeneous Memory Management (HMM) (description and justification)
>> >>
>> >> The patchset adds 55 kbytes to x86_64's mm/*.o and there doesn't appear
>> >> to be any way of avoiding this overhead, or of avoiding whatever
>> >> runtime overheads are added.
>> >
>> > HMM have already been integrated in couple of Red Hat kernel and AFAIK there
>> > is no runtime performance issue reported. Thought the RHEL version does not
>> > use static key as Dan asked.
>> >
>> >>
>> >> It also adds 18k to arm's mm/*.o and arm doesn't support HMM at all.
>> >>
>> >> So that's all quite a lot of bloat for systems which get no benefit from
>> >> the patchset. What can we do to improve this situation (a lot)?
>> >
>> > I will look into why object file grow so much on arm. My guess is that the
>> > new migrate code is the bulk of that. I can hide the new page migration code
>> > behind a kernel configuration flag.
>>
>> Shouldn't we completely disable all of it unless there is a driver in
>> the kernel that selects it?
>
> At one point people asked to be able to use the new migrate helper without
> HMM and hence why it is not behind any HMM kconfig.
>
> IIRC even ARM folks were interested pretty much all SOC have several DMA
> engine that site idle and i think people where toying with the idea of using
> this new helper to make use of them. But i can add a different kconfig to
> hide this code and if people want to use it they will have to select it.

If they were interested then I would expect their use case would be
included in this patchset so the infrastructure and at least one
consumer can land together.