All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.