Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Weiner <hannes@cmpxchg.org>
To: Baoquan He <baoquan.he@linux.dev>
Cc: linux-mm@kvack.org, chrisl@kernel.org, nphamcs@gmail.com,
	kasong@tencent.com, baohua@kernel.org, youngjun.park@lge.com,
	yosry@kernel.org, david@kernel.org, shikemeng@huaweicloud.com,
	chengming.zhou@linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH v2 01/10] mm: xswap support for zswap
Date: Wed, 5 Aug 2026 10:17:55 -0400	[thread overview]
Message-ID: <anNGE_FOoupPtOhj@cmpxchg.org> (raw)
In-Reply-To: <20260805075336.3579395-2-baoquan.he@linux.dev>

On Wed, Aug 05, 2026 at 03:53:24PM +0800, Baoquan He wrote:
> From: Chris Li <chrisl@kernel.org>
> 
> Introduce extendable (virtual) swap device support ??? xswap.
> 
> The current zswap requires a backing swapfile. The swap slot used
> by zswap is not able to be used by the swapfile, wasting swapfile
> space.
> 
> An xswap device is a swapfile that only contains the swap header,
> with the header indicating the size of the virtual swap space. There
> is no swap data section, therefore no waste of swapfile space. Any
> write to an xswap device will fail. To prevent accidental read or
> write, bdev of swap_info_struct is set to NULL. Xswap devices set
> the SSD flag because there is no rotational disk access when using
> zswap.
> 
> Zswap writeback is disabled if all swapfiles in the system are
> xswap devices (tracked via nr_real_swapfiles).
> 
> How to create an xswap device:
>   touch swap.1G
>   truncate -s 1G swap.1G
>   mkswap swap.1G
>   dd if=swap.1G of=xswap.1G bs=4096 count=1
>   # xswap.1G is 4K on disk but reports 1G capacity
>   swapon xswap.1G

Sigh.

Why does the user have to go through this dance?

Why does the user have to decide in advance what size the space needs
to be?

You point out no inherent limit to how much can be compressed, so
there is no reason to make userspace decide on an arbitrary one.

There is no reason to tie an address space that can be managed
transparently inside the kernel to TWO named files on disk.

There are plenty of past discussions on this very topic. I don't see
the point in resubmitting the same thing under different names,
without even a reference to previous discussions.

As a side note: if you have to add "(virtual)" after every instance of
"extendable", then maybe "extendable" is a terrible name and you
should just call it "virtual".


  reply	other threads:[~2026-08-05 14:18 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-05  7:53 [RFC PATCH v2 00/10] mm, swap: dynamic cluster management for xswap devices Baoquan He
2026-08-05  7:53 ` [RFC PATCH v2 01/10] mm: xswap support for zswap Baoquan He
2026-08-05 14:17   ` Johannes Weiner [this message]
2026-08-05  7:53 ` [RFC PATCH v2 02/10] mm, swap: add CONFIG_XSWAP and xswap fields to swap_info_struct Baoquan He
2026-08-05  7:53 ` [RFC PATCH v2 03/10] mm, swap: add xswap cluster grow via VM_SPARSE vmalloc Baoquan He
2026-08-05  7:53 ` [RFC PATCH v2 04/10] mm, swap: add xswap grow trigger on cluster allocation Baoquan He
2026-08-05  7:53 ` [RFC PATCH v2 05/10] mm, swap: add xswap_try_shrink and shrink trigger on cluster free Baoquan He
2026-08-05  7:53 ` [RFC PATCH v2 06/10] mm, swap: free backing pages in xswap_unmap_clusters Baoquan He
2026-08-05  7:53 ` [RFC PATCH v2 07/10] mm, swap: add nr_free_tail for O(1) xswap shrink detection Baoquan He
2026-08-05  7:53 ` [RFC PATCH v2 08/10] mm, swap: add adjustable runtime ceiling (nr_clusters) for xswap Baoquan He
2026-08-05  7:53 ` [RFC PATCH v2 09/10] mm, swap: add debugfs knob for xswap per-device cluster limit Baoquan He
2026-08-05  7:53 ` [RFC PATCH v2 10/10] mm, swap: defer xswap shrink to workqueue to avoid lock recursion Baoquan He

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=anNGE_FOoupPtOhj@cmpxchg.org \
    --to=hannes@cmpxchg.org \
    --cc=baohua@kernel.org \
    --cc=baoquan.he@linux.dev \
    --cc=chengming.zhou@linux.dev \
    --cc=chrisl@kernel.org \
    --cc=david@kernel.org \
    --cc=kasong@tencent.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=nphamcs@gmail.com \
    --cc=shikemeng@huaweicloud.com \
    --cc=yosry@kernel.org \
    --cc=youngjun.park@lge.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox