From: Jens Axboe <axboe@kernel.dk>
To: Stefan Metzmacher <metze@samba.org>,
linux-mm@kvack.org, linux-fsdevel@vger.kernel.org
Cc: hannes@cmpxchg.org, clm@meta.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCHSET v4] Uncached buffered IO
Date: Mon, 11 Nov 2024 08:05:21 -0700 [thread overview]
Message-ID: <76edefe6-fb20-4169-8cbe-d8b864b04c7a@kernel.dk> (raw)
In-Reply-To: <00c51f80-7033-44a0-b007-ca36842e35a5@kernel.dk>
On 11/11/24 7:08 AM, Jens Axboe wrote:
> On 11/11/24 5:55 AM, Stefan Metzmacher wrote:
>> Hi Jens,
>>
>> I'm wondering about the impact on memory mapped files.
>>
>> Let's say one (or more) process(es) called mmap on a file in order to
>> use the content of the file as persistent shared memory.
>> As far as I understand pages from the page cache are used for this.
>>
>> Now another process uses RWF_UNCACHED for a read of the same file.
>> What happens if the pages are removed from the page cache?
>> Or is the removal deferred based on some refcount?
>
> For mmap, if a given page isn't in page cache, it'll get faulted in.
> Should be fine to have mmap and uncached IO co-exist. If an uncached
> read IO instantiates a page, it'll get reaped when the data has been
> copied. If an uncached IO hits an already existing page (eg mmap faulted
> it in), then it won't get touched. Same thing happens with mixing
> buffered and uncached IO. The latter will only reap parts it
> instantiated to satisfy the operation. That doesn't matter in terms of
> data integrity, only in terms of the policy of uncached leaving things
> alone it didn't create to satisfy the operation.
>
> This is really no different than say using mmap and evicting pages, they
> will just get faulted in if needed.
Turns out that was nonsense, as per Kiril's comments on the other thread.
For pages that are actually mapped, we'll have to skip the invalidation
as it's not safe to do so.
--
Jens Axboe
next prev parent reply other threads:[~2024-11-11 15:05 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-08 17:43 Jens Axboe
2024-11-08 17:43 ` [PATCH 01/13] mm/filemap: change filemap_create_folio() to take a struct kiocb Jens Axboe
2024-11-08 18:18 ` Matthew Wilcox
2024-11-08 19:22 ` Jens Axboe
2024-11-08 17:43 ` [PATCH 02/13] mm/readahead: add folio allocation helper Jens Axboe
2024-11-08 17:43 ` [PATCH 03/13] mm: add PG_uncached page flag Jens Axboe
2024-11-08 19:25 ` Kirill A. Shutemov
2024-11-08 19:39 ` Jens Axboe
2024-11-08 17:43 ` [PATCH 04/13] mm/readahead: add readahead_control->uncached member Jens Axboe
2024-11-08 18:21 ` Matthew Wilcox
2024-11-08 19:22 ` Jens Axboe
2024-11-08 17:43 ` [PATCH 05/13] mm/filemap: use page_cache_sync_ra() to kick off read-ahead Jens Axboe
2024-11-08 17:43 ` [PATCH 06/13] mm/truncate: make invalidate_complete_folio2() public Jens Axboe
2024-11-08 17:43 ` [PATCH 07/13] fs: add FOP_UNCACHED flag Jens Axboe
2024-11-08 18:27 ` Matthew Wilcox
2024-11-08 19:23 ` Jens Axboe
2024-11-08 17:43 ` [PATCH 08/13] fs: add read support for RWF_UNCACHED Jens Axboe
2024-11-08 18:33 ` Matthew Wilcox
2024-11-08 19:25 ` Jens Axboe
2024-11-11 13:04 ` Stefan Metzmacher
2024-11-11 14:10 ` Jens Axboe
2024-11-11 15:44 ` Jens Axboe
2024-11-08 17:43 ` [PATCH 09/13] mm: drop uncached pages when writeback completes Jens Axboe
2024-11-08 17:43 ` [PATCH 10/13] mm/filemap: make buffered writes work with RWF_UNCACHED Jens Axboe
2024-11-08 17:43 ` [PATCH 11/13] iomap: " Jens Axboe
2024-11-08 18:46 ` Matthew Wilcox
2024-11-08 19:26 ` Jens Axboe
2024-11-08 19:49 ` Jens Axboe
2024-11-08 20:07 ` Matthew Wilcox
2024-11-08 20:18 ` Jens Axboe
2024-11-08 17:43 ` [PATCH 12/13] ext4: flag as supporting FOP_UNCACHED Jens Axboe
2024-11-08 17:43 ` [PATCH 13/13] xfs: " Jens Axboe
2024-11-11 12:55 ` [PATCHSET v4] Uncached buffered IO Stefan Metzmacher
2024-11-11 14:08 ` Jens Axboe
2024-11-11 15:05 ` Jens Axboe [this message]
2024-11-11 23:54 ` Jens Axboe
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=76edefe6-fb20-4169-8cbe-d8b864b04c7a@kernel.dk \
--to=axboe@kernel.dk \
--cc=clm@meta.com \
--cc=hannes@cmpxchg.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=metze@samba.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