From: Dominique Martinet <asmadeus@codewreck.org>
To: David Howells <dhowells@redhat.com>,
Christian Schoenebeck <linux_oss@crudebyte.com>
Cc: Eric Van Hensbergen <ericvh@kernel.org>,
Latchesar Ionkov <lucho@ionkov.net>,
Chris Arges <carges@cloudflare.com>,
v9fs@lists.linux.dev, linux-kernel@vger.kernel.org,
Matthew Wilcox <willy@infradead.org>,
linux-fsdevel@vger.kernel.org
Subject: Re: 9p read corruption of mmaped content (Was: [PATCH] 9p/virtio: restrict page pinning to user_backed_iter() iovec)
Date: Fri, 19 Dec 2025 20:53:26 +0900 [thread overview]
Message-ID: <aUU8thEsa0X4YrlF@codewreck.org> (raw)
In-Reply-To: <aUTP9oCJ9RkIYtKQ@codewreck.org>
Dominique Martinet wrote on Fri, Dec 19, 2025 at 01:09:26PM +0900:
> - I took a dump of dmesg (with debug=65535) and tracepoints (netfs, 9p),
> and it looks like the mmaped file IO is mostly correct? -- a TREAD is
> issued with the correct size, I'm seeing the data is collected... and..
> what is that ZERO SUBMT with the same size? Could it be related?
> David, could you please have a look?
So answering myself on that ZERO submit now I've looked up the
tracepoint definition, s=%x is the start offset and the following item
is the length so [0-5fb2[ was "downloaded from the server" and
[5fb2-6000[ was "filled with zero", and there's nothing wrong here...
Both are triggered straight from the page fault so that answers my last
question as well:
clang 691 [000] 18146.476058: netfs:netfs_sreq: R=0003306d[1] DOWN TERM f=192 s=0 5fb2/5fb2 s=5 e=0
ffffffff81601197 __traceiter_netfs_sreq+0x37 ([kernel.kallsyms])
ffffffff8160625a netfs_read_subreq_terminated+0x10a ([kernel.kallsyms])
ffffffff817fcbc6 v9fs_issue_read+0x86 ([kernel.kallsyms])
ffffffff815fd86b netfs_read_to_pagecache+0x18b ([kernel.kallsyms])
ffffffff815fdc62 netfs_readahead+0x152 ([kernel.kallsyms])
ffffffff814b9c2a read_pages+0x4a ([kernel.kallsyms])
ffffffff814b9f20 page_cache_ra_unbounded+0x190 ([kernel.kallsyms])
ffffffff814ba677 page_cache_ra_order+0x387 ([kernel.kallsyms])
ffffffff814ae2a9 filemap_fault+0x5c9 ([kernel.kallsyms])
ffffffff814ee518 __do_fault+0x38 ([kernel.kallsyms])
ffffffff814f83a5 __handle_mm_fault+0xbb5 ([kernel.kallsyms])
ffffffff814f9509 handle_mm_fault+0x99 ([kernel.kallsyms])
ffffffff812a6e2f do_user_addr_fault+0x1ef ([kernel.kallsyms])
ffffffff81ceb097 exc_page_fault+0x67 ([kernel.kallsyms])
ffffffff81000bb7 asm_exc_page_fault+0x27 ([kernel.kallsyms])
7f776ed86c23 clang::SrcMgr::ContentCache::getInvalidBOM(llvm::StringRef)+0x13 (/usr/lib/x86_64-linux-gnu/li
Which leaves me absolutely clueless at where to look next, I assume the
data is populated cleanly but by the time later pages are read by clang
the content changed or something like that?
I'll try harder to create a synthetic/more deterministic reproducer for
now...
Any ideas welcome...!
--
Dominique Martinet | Asmadeus
next prev parent reply other threads:[~2025-12-19 11:53 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-09 21:04 [PATCH] 9p/virtio: restrict page pinning to user_backed_iter() iovec Dominique Martinet
2025-12-09 21:04 ` Dominique Martinet via B4 Relay
2025-12-10 4:21 ` Matthew Wilcox
2025-12-10 6:04 ` Christoph Hellwig
2025-12-10 7:38 ` asmadeus
2025-12-10 8:32 ` Christoph Hellwig
2025-12-13 13:28 ` asmadeus
2025-12-15 5:55 ` Christoph Hellwig
2025-12-15 7:34 ` Dominique Martinet
2025-12-15 11:16 ` Christian Schoenebeck
2025-12-15 14:37 ` Christoph Hellwig
2025-12-19 12:03 ` David Howells
2025-12-19 12:00 ` David Howells
2025-12-19 11:26 ` David Howells
2025-12-10 13:33 ` Christian Schoenebeck
2025-12-17 13:41 ` Christian Schoenebeck
2025-12-17 21:49 ` asmadeus
2025-12-18 14:21 ` asmadeus
2025-12-18 15:14 ` Christian Schoenebeck
2025-12-18 23:14 ` asmadeus
2025-12-19 4:09 ` 9p read corruption of mmaped content (Was: [PATCH] 9p/virtio: restrict page pinning to user_backed_iter() iovec) Dominique Martinet
2025-12-19 11:53 ` Dominique Martinet [this message]
2025-12-19 13:46 ` Dominique Martinet
2025-12-19 14:01 ` David Howells
2025-12-19 12:06 ` [PATCH] 9p/virtio: restrict page pinning to user_backed_iter() iovec David Howells
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=aUU8thEsa0X4YrlF@codewreck.org \
--to=asmadeus@codewreck.org \
--cc=carges@cloudflare.com \
--cc=dhowells@redhat.com \
--cc=ericvh@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux_oss@crudebyte.com \
--cc=lucho@ionkov.net \
--cc=v9fs@lists.linux.dev \
--cc=willy@infradead.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.