All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matthew Wilcox <willy@infradead.org>,
	Michael Larabel <Michael@michaellarabel.com>,
	Matthieu Baerts <matthieu.baerts@tessares.net>,
	Amir Goldstein <amir73il@gmail.com>, Ted Ts'o <tytso@google.com>,
	Andreas Dilger <adilger.kernel@dilger.ca>,
	Ext4 Developers List <linux-ext4@vger.kernel.org>,
	Jan Kara <jack@suse.cz>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: Kernel Benchmarking
Date: Mon, 21 Sep 2020 09:23:03 +1000	[thread overview]
Message-ID: <20200920232303.GW12096@dread.disaster.area> (raw)
In-Reply-To: <CAHk-=wjp+KiZE2EM=f8Z1J_wmZSoq0MVZTJi=bMSXmfZ7Gx76w@mail.gmail.com>

On Thu, Sep 17, 2020 at 12:47:16PM -0700, Linus Torvalds wrote:
> On Thu, Sep 17, 2020 at 12:27 PM Matthew Wilcox <willy@infradead.org> wrote:
> >
> > Ah, I see what you mean.  Hold the i_mmap_rwsem for write across,
> > basically, the entirety of truncate_inode_pages_range().
> 
> I really suspect that will be entirely unacceptable for latency
> reasons, but who knows. In practice, nobody actually truncates a file
> _while_ it's mapped, that's just crazy talk.
> 
> But almost every time I go "nobody actually does this", I tend to be
> surprised by just how crazy some loads are, and it turns out that
> _somebody_ does it, and has a really good reason for doing odd things,
> and has been doing it for years because it worked really well and
> solved some odd problem.
> 
> So the "hold it for the entirety of truncate_inode_pages_range()"
> thing seems to be a really simple approach, and nice and clean, but it
> makes me go "*somebody* is going to do bad things and complain about
> page fault latencies".

I don't think there's a major concern here because that's what we
are already doing at the filesystem level. In this case, it is
because some filesystems need to serialise IO to the inode -before-
calling truncate_setsize(). e.g.

- we have to wait for inflight direct IO that may be beyond the new
  EOF to drain before we start changing where EOF lies.

- we have data vs metadata ordering requirements that mean we have
  to ensure dirty data is stable before we change the inode size.

Hence we've already been locking out page faults for the entire
truncate operation for a few years on both XFS and ext4. We haven't
heard of any problems result from truncate-related page fault
latencies....

FWIW, if the fs layer is already providing this level of IO
exclusion w.r.t. address space access, does it need to be replicated
at the address space level?

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  parent reply	other threads:[~2020-09-20 23:45 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAHk-=wiZnE409WkTOG6fbF_eV1LgrHBvMtyKkpTqM9zT5hpf9A@mail.gmail.com>
     [not found] ` <4ced9401-de3d-b7c9-9976-2739e837fafc@MichaelLarabel.com>
     [not found]   ` <CAHk-=wj+Qj=wXByMrAx3T8jmw=soUetioRrbz6dQaECx+zjMtg@mail.gmail.com>
     [not found]     ` <CAHk-=wgOPjbJsj-LeLc-JMx9Sz9DjGF66Q+jQFJROt9X9utdBg@mail.gmail.com>
     [not found]       ` <CAHk-=wjjK7PTnDZNi039yBxSHtAqusFoRrZzgMNTiYkJYdNopw@mail.gmail.com>
     [not found]         ` <aa90f272-1186-f9e1-8fdb-eefd332fdae8@MichaelLarabel.com>
     [not found]           ` <CAHk-=wh_31_XBNHbdF7EUJceLpEpwRxVF+_1TONzyBUym6Pw4w@mail.gmail.com>
     [not found]             ` <e24ef34d-7b1d-dd99-082d-28ca285a79ff@MichaelLarabel.com>
     [not found]               ` <CAHk-=wgEE4GuNjcRaaAvaS97tW+239-+tjcPjTq2FGhEuM8HYg@mail.gmail.com>
     [not found]                 ` <6e1d8740-2594-c58b-ff02-a04df453d53c@MichaelLarabel.com>
     [not found]                   ` <CAHk-=wgJ3-cEkU-5zXFPvRCHKkCCuKxVauYWGphjePEhJJgtgQ@mail.gmail.com>
     [not found]                     ` <d2023f4c-ef14-b877-b5bb-e4f8af332abc@MichaelLarabel.com>
     [not found]                       ` <CAHk-=wiz=J=8mJ=zRG93nuJ9GtQAm5bSRAbWJbWZuN4Br38+EQ@mail.gmail.com>
2020-09-11  0:05                         ` Kernel Benchmarking Linus Torvalds
2020-09-11  0:49                           ` Michael Larabel
2020-09-11  2:20                             ` Linus Torvalds
     [not found]                               ` <0cbc959e-1b8d-8d7e-1dc6-672cf5b3899a@MichaelLarabel.com>
2020-09-11 16:19                                 ` Linus Torvalds
2020-09-11 22:07                                   ` Linus Torvalds
2020-09-11 22:37                                     ` Michael Larabel
2020-09-12  7:28                                       ` Amir Goldstein
2020-09-12 10:32                                         ` Michael Larabel
2020-09-12 14:37                                           ` Matthew Wilcox
2020-09-12 14:44                                             ` Michael Larabel
2020-09-15  3:32                                               ` Matthew Wilcox
2020-09-15 10:39                                                 ` Jan Kara
2020-09-15 13:52                                                   ` Matthew Wilcox
     [not found]                                             ` <658ae026-32d9-0a25-5a59-9c510d6898d5@MichaelLarabel.com>
2020-09-14 17:47                                               ` Linus Torvalds
2020-09-14 20:21                                                 ` Matthieu Baerts
2020-09-14 20:53                                                   ` Linus Torvalds
2020-09-15  0:42                                                     ` Linus Torvalds
2020-09-15 15:34                                                     ` Matthieu Baerts
2020-09-15 18:27                                                       ` Linus Torvalds
2020-09-15 18:47                                                         ` Linus Torvalds
2020-09-15 19:26                                                           ` Matthieu Baerts
2020-09-15 19:32                                                             ` Linus Torvalds
2020-09-15 19:56                                                               ` Matthieu Baerts
2020-09-15 23:35                                                                 ` Linus Torvalds
2020-09-16 10:34                                                                   ` Jan Kara
2020-09-16 18:47                                                                     ` Linus Torvalds
     [not found]                                                         ` <9a92bf16-02c5-ba38-33c7-f350588ac874@tessares.net>
2020-09-15 19:24                                                           ` Linus Torvalds
2020-09-15 19:38                                                             ` Matthieu Baerts
2020-09-15 18:31                                                       ` Linus Torvalds
2020-09-15 14:21                                                 ` Michael Larabel
2020-09-15 17:52                                                   ` Linus Torvalds
2020-09-17 17:51                                                 ` Linus Torvalds
2020-09-17 18:23                                                   ` Matthew Wilcox
2020-09-17 18:30                                                     ` Linus Torvalds
2020-09-17 18:50                                                       ` Matthew Wilcox
2020-09-17 19:00                                                         ` Linus Torvalds
2020-09-17 19:27                                                           ` Matthew Wilcox
2020-09-17 19:47                                                             ` Linus Torvalds
2020-09-18  0:39                                                               ` Sedat Dilek
2020-09-18  0:40                                                                 ` Sedat Dilek
2020-09-18 20:25                                                                   ` Sedat Dilek
2020-09-20 17:06                                                                     ` Linus Torvalds
2020-09-20 17:14                                                                       ` Sedat Dilek
2020-09-20 17:40                                                                         ` Linus Torvalds
2020-09-20 18:00                                                                           ` Sedat Dilek
2020-09-20 23:23                                                               ` Dave Chinner [this message]
2020-09-20 23:31                                                                 ` Linus Torvalds
2020-09-20 23:40                                                                   ` Linus Torvalds
2020-09-21  1:20                                                                   ` Dave Chinner
2020-09-12 15:53                                         ` Matthew Wilcox
2020-09-12 17:59                                         ` Linus Torvalds
2020-09-12 20:32                                           ` Rogério Brito
2020-09-14  9:33                                             ` Jan Kara
2020-09-12 20:58                                           ` Josh Triplett
2020-09-12 20:59                                           ` James Bottomley
2020-09-12 21:15                                             ` Linus Torvalds
2020-09-12 22:32                                           ` Matthew Wilcox
2020-09-13  0:40                                           ` Dave Chinner
2020-09-13  2:39                                             ` Linus Torvalds
2020-09-13  3:40                                               ` Matthew Wilcox
2020-09-13 23:45                                               ` Dave Chinner
2020-09-14  3:31                                                 ` Matthew Wilcox
2020-09-15 14:28                                                   ` Chris Mason
2020-09-15  9:27                                                 ` Jan Kara
2020-09-13  3:18                                             ` Matthew Wilcox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200920232303.GW12096@dread.disaster.area \
    --to=david@fromorbit.com \
    --cc=Michael@michaellarabel.com \
    --cc=adilger.kernel@dilger.ca \
    --cc=amir73il@gmail.com \
    --cc=jack@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=matthieu.baerts@tessares.net \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@google.com \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.