From: Omar Sandoval <osandov@osandov.com>
To: linux-btrfs@vger.kernel.org
Cc: kernel-team@fb.com
Subject: [PATCH v5 0/6] Btrfs: implement swap file support
Date: Fri, 31 Aug 2018 15:36:35 -0700 [thread overview]
Message-ID: <cover.1535754957.git.osandov@fb.com> (raw)
From: Omar Sandoval <osandov@fb.com>
Hi,
This series implements swap file support for Btrfs.
Changes since v4 [1]:
- Added a kernel doc for btrfs_get_chunk_map()
- Got rid of "Btrfs: push EXCL_OP set into btrfs_rm_device()"
- Made activate error messages more clear and consistent
- Changed clear vs unlock order in activate error case
- Added "mm: export add_swap_extent()" as a separate patch
- Added a btrfs_wait_ordered_range() at the beginning of
btrfs_swap_activate() to catch newly created files
- Added some Reviewed-bys from Nikolay
I took a stab at adding support for balance when a swap file is active,
but it's a major pain: we need to mark block groups which contain swap
file extents, check the block group counter in relocate/scrub, then
unmark the block groups when the swap file is deactivated, which gets
really messy because the file can grow while it is an active swap file.
If this is a deal breaker, I can work something out, but I don't think
it's worth the trouble.
This was tested with the swap tests in xfstests plus my new tests here
[2]. Additionally, I used my swapme test program [3] and ran a few
memory-intensive workloads (e.g., a highly parallel kernel build),
verifying that swap was being used. All of this was done with lockdep
enabled.
This series is based on v4.19-rc1. Please take a look.
Thanks!
1: https://www.spinics.net/lists/linux-btrfs/msg78731.html
2: https://github.com/osandov/xfstests/tree/btrfs-swap
3: https://github.com/osandov/osandov-linux/blob/master/scripts/swapme.c
Omar Sandoval (6):
mm: split SWP_FILE into SWP_ACTIVATED and SWP_FS
mm: export add_swap_extent()
vfs: update swap_{,de}activate documentation
Btrfs: prevent ioctls from interfering with a swap file
Btrfs: rename get_chunk_map() and make it non-static
Btrfs: support swap files
Documentation/filesystems/Locking | 17 +--
Documentation/filesystems/vfs.txt | 12 +-
fs/btrfs/ctree.h | 6 +
fs/btrfs/disk-io.c | 3 +
fs/btrfs/inode.c | 232 ++++++++++++++++++++++++++++++
fs/btrfs/ioctl.c | 51 ++++++-
fs/btrfs/volumes.c | 28 ++--
fs/btrfs/volumes.h | 9 ++
include/linux/swap.h | 13 +-
mm/page_io.c | 6 +-
mm/swapfile.c | 14 +-
11 files changed, 348 insertions(+), 43 deletions(-)
--
2.18.0
next reply other threads:[~2018-09-01 2:46 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-31 22:36 Omar Sandoval [this message]
2018-08-31 22:36 ` [PATCH v5 1/6] mm: split SWP_FILE into SWP_ACTIVATED and SWP_FS Omar Sandoval
2018-08-31 22:36 ` [PATCH v5 2/6] mm: export add_swap_extent() Omar Sandoval
2018-08-31 22:36 ` [PATCH v5 3/6] vfs: update swap_{,de}activate documentation Omar Sandoval
2018-08-31 22:36 ` [PATCH v5 4/6] Btrfs: prevent ioctls from interfering with a swap file Omar Sandoval
2018-08-31 22:36 ` [PATCH v5 5/6] Btrfs: rename get_chunk_map() and make it non-static Omar Sandoval
2018-08-31 22:36 ` [PATCH v5 6/6] Btrfs: support swap files Omar Sandoval
2018-09-06 11:59 ` [PATCH v5 0/6] Btrfs: implement swap file support David Sterba
2018-09-06 18:08 ` Omar Sandoval
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=cover.1535754957.git.osandov@fb.com \
--to=osandov@osandov.com \
--cc=kernel-team@fb.com \
--cc=linux-btrfs@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.