On 7/11/18 4:53 AM, Michal Hocko wrote:
On Wed 11-07-18 14:13:12, Kirill A. Shutemov wrote:
On Wed, Jul 11, 2018 at 12:33:12PM +0200, Michal Hocko wrote:
this is not a small change for something that could be achieved
from the userspace trivially (just call madvise before munmap - library
can hide this). Most workloads will even not care about races because
they simply do not play tricks with mmaps and userspace MM. So why do we
want to put the additional complexity into the kernel?
As I said before, kernel latency issues have to be addressed in kernel.
We cannot rely on userspace being kind here.
Those who really care and create really large mappings will know how to
do this properly. Most others just do not care enough. So I am not
really sure this alone is a sufficient argument.
I personally like the in kernel auto tuning but as I've said the
changelog should be really clear why all the complications are
justified. This would be a lot easier to argue about if it was a simple
if (len > THARSHOLD)
do_madvise(DONTNEED)
munmap().
The main difference AFAICS, is it can't deal with the parallel faults
and those special mappings. Someone may not care about it, but someone may.
Yang
approach. But if we really have to care about parallel faults and munmap
consitency this will always be tricky