Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1714508 > unrolled thread
| Started by | Shakeel Butt <shakeelb@google.com> |
|---|---|
| First post | 2017-08-18 03:30 +0200 |
| Last post | 2017-08-23 02:30 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [RFC PATCH] mm: fadvise: avoid fadvise for fs without backing device Shakeel Butt <shakeelb@google.com> - 2017-08-18 03:30 +0200
Re: [RFC PATCH] mm: fadvise: avoid fadvise for fs without backing device Andrew Morton <akpm@linux-foundation.org> - 2017-08-18 23:40 +0200
Re: [RFC PATCH] mm: fadvise: avoid fadvise for fs without backing device Shakeel Butt <shakeelb@google.com> - 2017-08-19 01:20 +0200
Re: [RFC PATCH] mm: fadvise: avoid fadvise for fs without backing device Shakeel Butt <shakeelb@google.com> - 2017-08-23 02:30 +0200
| From | Shakeel Butt <shakeelb@google.com> |
|---|---|
| Date | 2017-08-18 03:30 +0200 |
| Subject | Re: [RFC PATCH] mm: fadvise: avoid fadvise for fs without backing device |
| Message-ID | <ufEgO-4CU-5@gated-at.bofh.it> |
+linux-mm, linux-kernel
On Thu, Aug 17, 2017 at 6:10 PM, Shakeel Butt <shakeelb@google.com> 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.
>
> Signed-off-by: Shakeel Butt <shakeelb@google.com>
> ---
> mm/fadvise.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/mm/fadvise.c b/mm/fadvise.c
> index a43013112581..702f239cd6db 100644
> --- a/mm/fadvise.c
> +++ b/mm/fadvise.c
> @@ -52,7 +52,9 @@ SYSCALL_DEFINE4(fadvise64_64, int, fd, loff_t, offset, loff_t, len, int, advice)
> goto out;
> }
>
> - if (IS_DAX(inode)) {
> + bdi = inode_to_bdi(mapping->host);
> +
> + if (IS_DAX(inode) || (bdi == &noop_backing_dev_info)) {
> switch (advice) {
> case POSIX_FADV_NORMAL:
> case POSIX_FADV_RANDOM:
> @@ -75,8 +77,6 @@ SYSCALL_DEFINE4(fadvise64_64, int, fd, loff_t, offset, loff_t, len, int, advice)
> else
> endbyte--; /* inclusive */
>
> - bdi = inode_to_bdi(mapping->host);
> -
> switch (advice) {
> case POSIX_FADV_NORMAL:
> f.file->f_ra.ra_pages = bdi->ra_pages;
> --
> 2.14.1.480.gb18f417b89-goog
>
[toc] | [next] | [standalone]
| From | Andrew Morton <akpm@linux-foundation.org> |
|---|---|
| Date | 2017-08-18 23:40 +0200 |
| Subject | Re: [RFC PATCH] mm: fadvise: avoid fadvise for fs without backing device |
| Message-ID | <ufX9N-Un-31@gated-at.bofh.it> |
| In reply to | #1714508 |
On Thu, 17 Aug 2017 18:20:17 -0700 Shakeel Butt <shakeelb@google.com> wrote: > +linux-mm, linux-kernel > > On Thu, Aug 17, 2017 at 6:10 PM, Shakeel Butt <shakeelb@google.com> 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?
[toc] | [prev] | [next] | [standalone]
| From | Shakeel Butt <shakeelb@google.com> |
|---|---|
| Date | 2017-08-19 01:20 +0200 |
| Message-ID | <ufYIx-1WC-7@gated-at.bofh.it> |
| In reply to | #1715468 |
On Fri, Aug 18, 2017 at 2:34 PM, Andrew Morton <akpm@linux-foundation.org> wrote: > On Thu, 17 Aug 2017 18:20:17 -0700 Shakeel Butt <shakeelb@google.com> wrote: > >> +linux-mm, linux-kernel >> >> On Thu, Aug 17, 2017 at 6:10 PM, Shakeel Butt <shakeelb@google.com> 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? Yes, one of our generic library does fadvise(FADV_DONTNEED). Recently we observed high latency in fadvise() and notice that the users have started using tmpfs files and the latency was due to expensive remote LRU cache draining. For normal tmpfs files (have data written on them), fadvise(FADV_DONTNEED) will always trigger the un-needed remote cache draining. > >
[toc] | [prev] | [next] | [standalone]
| From | Shakeel Butt <shakeelb@google.com> |
|---|---|
| Date | 2017-08-23 02:30 +0200 |
| Message-ID | <uhrIt-1Ej-1@gated-at.bofh.it> |
| In reply to | #1715499 |
>> 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? > > Yes, one of our generic library does fadvise(FADV_DONTNEED). Recently > we observed high latency in fadvise() and notice that the users have > started using tmpfs files and the latency was due to expensive remote > LRU cache draining. For normal tmpfs files (have data written on > them), fadvise(FADV_DONTNEED) will always trigger the un-needed remote > cache draining. > Hi Andrew, do you have more comments or concerns? >> >>
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web