From: Dave Chinner <david@fromorbit.com>
To: "Besogonov, Aleksei" <cyberax@amazon.com>
Cc: "Darrick J. Wong" <darrick.wong@oracle.com>,
"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
xfs <linux-xfs@vger.kernel.org>
Subject: Re: fallocate on XFS for swap
Date: Tue, 13 Mar 2018 12:31:44 +1100 [thread overview]
Message-ID: <20180313013144.GA18129@dastard> (raw)
In-Reply-To: <A59B9E63-29A2-4C40-960B-E09809DE501F@amazon.com>
[Aleski, can you word wrap your email text at 72 columns? ]
On Mon, Mar 12, 2018 at 10:01:54PM +0000, Besogonov, Aleksei wrote:
> [snip unrelated]
>
> So I'm looking at the XFS code and it appears that the iomap is
> limited to 1024*PAGE_SIZE blocks at a time,
Take a closer look - that code is not used for reading file extents
and returning them to the caller.
> which is too small for
> most of swap use-cases. I can of course just loop through the file
> in 4Mb increments and, just like the bmap() code does today. But
> this just doesn't look right and it's not atomic. And it looks
> like iomap in ext2 doesn't have this limitation.
>
> The stated rationale for the XFS limit is:
> >/*
> > * We cap the maximum length we map here to MAX_WRITEBACK_PAGES pages
> > * to keep the chunks of work done where somewhat symmetric with the
> > * work writeback does. This is a completely arbitrary number pulled
> > * out of thin air as a best guess for initial testing.
> > *
> > * Note that the values needs to be less than 32-bits wide until
> > * the lower level functions are updated.
> > */
Yeah, that's in the IOMAP_WRITE path used for block allocation. swap
file mapping should not be asking for IOMAP_WRITE mappings that
trigger extent allocation, so you should never hit this case.
You should probably be using the IOMAP_REPORT path (i.e. basically
very similar code to iomap_fiemap/iomap_fiemap_apply and rejecting
any file that returns an iomap that is not IOMAP_MAPPED or
IOMAP_UNWRITTEN. Also, you want to reject any file that returns
IOMAP_F_SHARED in iomap->flags, too, because swapfiles can't do COW
to break extent sharing on writes.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2018-03-13 1:32 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-09 22:05 fallocate on XFS for swap Besogonov, Aleksei
2018-03-09 23:44 ` Darrick J. Wong
2018-03-09 23:44 ` Darrick J. Wong
2018-03-10 0:58 ` Dave Chinner
2018-03-10 0:58 ` Dave Chinner
2018-03-10 1:17 ` Darrick J. Wong
2018-03-10 1:17 ` Darrick J. Wong
2018-03-10 1:36 ` Dave Chinner
2018-03-10 1:36 ` Dave Chinner
2018-03-12 22:01 ` Besogonov, Aleksei
2018-03-13 1:31 ` Dave Chinner [this message]
2018-03-10 9:38 ` Christoph Hellwig
2018-03-12 21:46 ` Dave Chinner
2018-03-13 7:14 ` Christoph Hellwig
2018-03-12 18:40 ` Besogonov, Aleksei
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=20180313013144.GA18129@dastard \
--to=david@fromorbit.com \
--cc=cyberax@amazon.com \
--cc=darrick.wong@oracle.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-xfs@vger.kernel.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.