lkml.org 
[lkml]   [2017]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [RFC V2 12/12] mm: Tag VMA with VM_CDM flag explicitly during mbind(MPOL_BIND)
From
Date
On 01/30/2017 08:36 PM, Anshuman Khandual wrote:
> On 01/30/2017 11:24 PM, Dave Hansen wrote:
>> On 01/29/2017 07:35 PM, Anshuman Khandual wrote:
>>> + if ((new_pol->mode == MPOL_BIND)
>>> + && nodemask_has_cdm(new_pol->v.nodes))
>>> + set_vm_cdm(vma);
>> So, if you did:
>>
>> mbind(addr, PAGE_SIZE, MPOL_BIND, all_nodes, ...);
>> mbind(addr, PAGE_SIZE, MPOL_BIND, one_non_cdm_node, ...);
>>
>> You end up with a VMA that can never have KSM done on it, etc... Even
>> though there's no good reason for it. I guess /proc/$pid/smaps might be
>> able to help us figure out what was going on here, but that still seems
>> like an awful lot of damage.
>
> Agreed, this VMA should not remain tagged after the second call. It does
> not make sense. For this kind of scenarios we can re-evaluate the VMA
> tag every time the nodemask change is attempted. But if we are looking for
> some runtime re-evaluation then we need to steal some cycles are during
> general VMA processing opportunity points like merging and split to do
> the necessary re-evaluation. Should do we do these kind two kinds of
> re-evaluation to be more optimal ?

I'm still unconvinced that you *need* detection like this. Scanning big
VMAs is going to be really painful.

I thought I asked before but I can't find it in this thread. But, we
have explicit interfaces for disabling KSM and khugepaged. Why do we
need implicit ones like this in addition to those?

\
 
 \ /
  Last update: 2017-02-07 19:07    [W:0.290 / U:0.180 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site