Re: [RFC PATCH] mm: fadvise: avoid fadvise for fs without backing device

From: Andrew Morton
Date: Fri Aug 18 2017 - 17:34:56 EST


On Thu, 17 Aug 2017 18:20:17 -0700 Shakeel Butt <shakeelb@xxxxxxxxxx> wrote:

> +linux-mm, linux-kernel
>
> On Thu, Aug 17, 2017 at 6:10 PM, Shakeel Butt <shakeelb@xxxxxxxxxx> wrote:
> > The fadvise() manpage is silent on fadvise()'s effect on
> > memory-based filesystems (shmem, hugetlbfs & ramfs) and pseudo
> > file systems (procfs, sysfs, kernfs). The current implementaion
> > of fadvise is mostly a noop for such filesystems except for
> > FADV_DONTNEED which will trigger expensive remote LRU cache
> > draining. This patch makes the noop of fadvise() on such file
> > systems very explicit.
> >
> > However this change has two side effects for ramfs and one for
> > tmpfs. First fadvise(FADV_DONTNEED) can remove the unmapped clean
> > zero'ed pages of ramfs (allocated through read, readahead & read
> > fault) and tmpfs (allocated through read fault). Also
> > fadvise(FADV_WILLNEED) on create such clean zero'ed pages for
> > ramfs. This change removes these two interfaces.
> >

It doesn't sound like a risky change to me, although perhaps someone is
depending on the current behaviour for obscure reasons, who knows.

What are the reasons for this change? Is the current behaviour causing
some sort of problem for someone?