mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Gao Xiang <hsiangkao@linux.alibaba.com>
To: brauner@kernel.org, djwong@kernel.org, Christoph Hellwig <hch@lst.de>
Cc: linux-fsdevel@vger.kernel.org, linux-erofs@lists.ozlabs.org,
	linux-kernel@vger.kernel.org, Chao Yu <chao@kernel.org>,
	Amir Goldstein <amir73il@gmail.com>,
	Joanne Koong <joannelkoong@gmail.com>,
	Hongbo Li <lihongbo22@huawei.com>
Subject: Re: [PATCH v9 01/10] iomap: stash iomap read ctx in the private field of iomap_iter
Date: Tue, 18 Nov 2025 15:35:45 +0800	[thread overview]
Message-ID: <add21bbf-1359-4659-9518-bdb1ef34ea48@linux.alibaba.com> (raw)
In-Reply-To: <f3938037-1292-470d-aace-e5c620428a1d@linux.alibaba.com>

(... try to add Christoph..)

On 2025/11/18 01:08, Gao Xiang wrote:
> Hi Darrick, Christian,
> 
> On 2025/11/17 21:25, Hongbo Li wrote:
>> It's useful to get filesystem-specific information using the
>> existing private field in the @iomap_iter passed to iomap_{begin,end}
>> for advanced usage for iomap buffered reads, which is much like the
>> current iomap DIO.
>>
>> For example, EROFS needs it to:
>>
>>   - implement an efficient page cache sharing feature, since iomap
>>     needs to apply to anon inode page cache but we'd like to get the
>>     backing inode/fs instead, so filesystem-specific private data is
>>     needed to keep such information;
>>
>>   - pass in both struct page * and void * for inline data to avoid
>>     kmap_to_page() usage (which is bogus).
>>
>> Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
>> Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
> 
> Could you help review this iomap change, since erofs uses iomap
> and erofs page cache sharing needs this change, as I told
> Joanne months ago.
> 
> Even without the page cache sharing feature, introducing
> iomap_iter_ctx for .iomap_{begin,end}, like the current DIO
> does, is still useful for erofs, as patch 2 mentioned.

I know it could be somewhat too late to introduce the entire
feature for 6.19, but could we consider the first two patches
(patch 1 and 2) if possible? because:

  - patch 1 just adds a way to specify iter->private for buffered
    read since there was no way to pass on-stack fs-specific
    contexts from .iomap_begin() to .iomap_end() for iomap
    buffered read.

    Actually patch 1 doesn't introduce any new logic or behavior
    to iomap itself, just add a way to specify iter->private, I
    think it does no harm to the iomap stability.

  - patch 2 tries to avoid kmap_to_page() usage since previously
    there is no way to pass both `void *` and `struct page *`
    from .iomap_begin() to .iomap_end() because inline data
    handling needs both.

    Actually people would like to get rid of kmap_to_page(), for
    example:
    https://lore.kernel.org/r/Y5u+oOLkJs6jehik@iweiny-desk3

    So I wonder if patch 1 and 2 can be considered as an
    individual improvement for 6.19.

  - Currently the page cache sharing series is coupled with iomap,
    but the main change is still in erofs itself.  If the first
    two patches can be applied in advance, that would make the
    remaining part through erofs tree without treewide conflict
    like this.

Just my two cents.

Thanks,
Gao Xiang

  reply	other threads:[~2025-11-18  7:35 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-17 13:25 [PATCH v9 00/10] erofs: inode page cache share feature Hongbo Li
2025-11-17 13:25 ` [PATCH v9 01/10] iomap: stash iomap read ctx in the private field of iomap_iter Hongbo Li
2025-11-17 17:08   ` Gao Xiang
2025-11-18  7:35     ` Gao Xiang [this message]
2025-11-19  5:49       ` Christoph Hellwig
2025-11-19  6:17         ` Gao Xiang
2025-11-19  9:12           ` Christoph Hellwig
2025-11-19  9:28             ` Gao Xiang
2025-11-17 13:25 ` [PATCH v9 02/10] erofs: hold read context in iomap_iter if needed Hongbo Li
2025-11-17 13:25 ` [PATCH v9 03/10] fs: Export alloc_empty_backing_file Hongbo Li
2025-11-17 13:25 ` [PATCH v9 04/10] erofs: move `struct erofs_anon_fs_type` to super.c Hongbo Li
2025-11-17 13:25 ` [PATCH v9 05/10] erofs: support user-defined fingerprint name Hongbo Li
2025-11-17 17:26   ` Gao Xiang
2025-11-18  2:16     ` Hongbo Li
2025-11-17 13:25 ` [PATCH v9 06/10] erofs: support domain-specific page cache share Hongbo Li
2025-11-17 13:25 ` [PATCH v9 07/10] erofs: introduce the page cache share feature Hongbo Li
2025-12-22  8:59   ` Gao Xiang
2025-11-17 13:25 ` [PATCH v9 08/10] erofs: support unencoded inodes for page cache share Hongbo Li
2025-11-18  2:13   ` Hongbo Li
2025-11-17 13:25 ` [PATCH v9 09/10] erofs: support compressed " Hongbo Li
2025-11-17 13:25 ` [PATCH v9 10/10] erofs: implement .fadvise " Hongbo Li

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=add21bbf-1359-4659-9518-bdb1ef34ea48@linux.alibaba.com \
    --to=hsiangkao@linux.alibaba.com \
    --cc=amir73il@gmail.com \
    --cc=brauner@kernel.org \
    --cc=chao@kernel.org \
    --cc=djwong@kernel.org \
    --cc=hch@lst.de \
    --cc=joannelkoong@gmail.com \
    --cc=lihongbo22@huawei.com \
    --cc=linux-erofs@lists.ozlabs.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome