Re: [PATCH v3] mm: make faultaround produce old ptes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue 23-01-18 21:08:36, Vinayak Menon wrote:
> 
> 
> On 1/23/2018 8:25 PM, Michal Hocko wrote:
> > [Please cc linux-api when proposing user interface]
> >
> > On Mon 22-01-18 11:10:14, Vinayak Menon wrote:
> >> Based on Kirill's patch [1].
> >>
> >> Currently, faultaround code produces young pte.  This can screw up
> >> vmscan behaviour[2], as it makes vmscan think that these pages are hot
> >> and not push them out on first round.
> >>
> >> During sparse file access faultaround gets more pages mapped and all of
> >> them are young. Under memory pressure, this makes vmscan swap out anon
> >> pages instead, or to drop other page cache pages which otherwise stay
> >> resident.
> >>
> >> Modify faultaround to produce old ptes if sysctl 'want_old_faultaround_pte'
> >> is set, so they can easily be reclaimed under memory pressure.
> >>
> >> This can to some extend defeat the purpose of faultaround on machines
> >> without hardware accessed bit as it will not help us with reducing the
> >> number of minor page faults.
> > So we just want to add a knob to cripple the feature? Isn't it better to
> > simply disable it than to have two distinct implementation which is
> > rather non-intuitive and I would bet that most users will be clueless
> > about how to set it or when to touch it at all. So we will end up with
> > random cargo cult hints all over internet giving you your performance
> > back...
> 
> 
> If you are talking about non-HW access bit systems, then yes it would be better to disable faultaround
> when want_old_faultaround_pte is set to 1, like MInchan did here https://patchwork.kernel.org/patch/9115901/
> I can submit a patch for that.
> 
> > I really dislike this new interface. If the fault around doesn't work
> > for you then disable it.
> 
> 
> Faultaround works well for me on systems with HW access bit. But
> the benefit is reduced because of making the faultaround ptes young
> [2]. Ideally they should be old as they are speculatively mapped and
> not really accessed. But because of issues on certain architectures
> they need to be made young[3][4]. This patch is trying to help the
> other architectures which can tolerate old ptes, by fixing the vmscan
> behaviour. And this is not a theoretical problem that I am trying to
> fix. We have really seen the benefit of faultaround on arm mobile
> targets, but the problem is the vmscan behaviour due to the young
> pte workaround. And this patch helps in fixing that.  Do you think
> something more needs to be added in the documentation to make things
> more clear on the flag usage ?

No, I would either prefer auto-tuning or document that fault around
can lead to this behavior and recommend to disable it rather than add a
new knob.
-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]
  Powered by Linux