From: Dominique Martinet <asmadeus@codewreck.org>
To: David Howells <dhowells@redhat.com>,
Matthew Wilcox <willy@infradead.org>,
Andrii Nakryiko <andrii@kernel.org>
Cc: ericvh@kernel.org, linux-kernel@vger.kernel.org,
linux_oss@crudebyte.com, pedro.falcato@gmail.com,
regressions@leemhuis.info, torvalds@linux-foundation.org,
v9fs@lists.linux.dev, bpf@vger.kernel.org
Subject: Re: [GIT PULL] 9p fixes for 6.12-rc4
Date: Thu, 24 Oct 2024 08:23:50 +0900 [thread overview]
Message-ID: <ZxmFhiAL-ImjKe7Y@codewreck.org> (raw)
In-Reply-To: <20241023165606.3051029-1-andrii@kernel.org>
Adding David/Willy to recpients as I'm not 100% up to date on folios
Andrii Nakryiko wrote on Wed, Oct 23, 2024 at 09:56:06AM -0700:
> > The following changes since commit 98f7e32f20d28ec452afb208f9cffc08448a2652:
> >
> > Linux 6.11 (2024-09-15 16:57:56 +0200)
> >
> > are available in the Git repository at:
> >
> > https://github.com/martinetd/linux tags/9p-for-6.12-rc4
> >
> > for you to fetch changes up to 79efebae4afc2221fa814c3cae001bede66ab259:
> >
> > 9p: Avoid creating multiple slab caches with the same name (2024-09-23 05:51:27 +0900)
> >
> > ----------------------------------------------------------------
> > Mashed-up update that I sat on too long:
> >
> > - fix for multiple slabs created with the same name
> > - enable multipage folios
> > - theorical fix to also look for opened fids by inode if none
> > was found by dentry
> >
> > ----------------------------------------------------------------
> > David Howells (1):
> > 9p: Enable multipage folios
>
> Are there any known implications of this change on madvise()'s MADV_PAGEOUT
> behavior? After most recent pull from Linus's tree, one of BPF selftests
> started failing. Bisection points to:
>
> 9197b73fd7bb ("Merge tag '9p-for-6.12-rc4' of https://github.com/martinetd/linux")
>
> ... which is just an empty merge commit. So the "9p: Enable multipage folios"
> by itself doesn't cause any regression, but when merged with the rest of the
> code it does. I confirmed by reverting
> 1325e4a91a40 ("9p: Enable multipage folios"), after which the test in question
> is succeeding again.
(looks like 3c217a182018 ("selftests/bpf: add build ID tests") wasn't in
yet on the 9p multipage folios commit)
> The test in question itself is a bit involved, but what it ultimately tries to
> do is to ensure that part of ELF file containing build ID is paged out to cause
> BPF helper to fail to retrieve said build ID (due to non-faulable context).
>
> For that, we use the following sequence in target binary and process:
>
> madvise(addr, page_sz, MADV_POPULATE_READ);
> madvise(addr, page_sz, MADV_PAGEOUT);
>
> First making sure page is paged in, then paged out. We make sure that build ID
> is memory mapped in a separate segment with its own single-page memory mapping.
> No changes or regressions there. No huge pages seem to be involved.
That's probably obvious but I guess the selftest runs the binary
directly from a 9p mount?
> It used to work reliably, now it doesn't work. Any clue why or what should we
> do differently to make sure that memory page with build ID information is not
> paged in (reliably)?
Unless David/Willy has a solution immediately I'd say let's take the time to
sort this out and revert that commit for now -- I'll send a revert patch
immediately and submit it to Linus on Saturday.
Conceptually I guess something is broken with MADV_PAGEOUT on >1 page
folio, perhaps it's only evicting folios if the whole folio is in range
but it should evict any folio that touches the range or something?
Sorry I don't have time to dig further here, hopefully that's not too
difficult to handle and we can try again in rc1 proper of another cycle,
I shouldn't have sent that this late.
(leaving full text below for new recipients)
> Thanks!
>
> P.S. The target binary and madvise() manipulations are at:
>
> tools/testing/selftests/bpf/uprobe_multi.c, see trigger_uprobe()
> The test itself in BPF selftest is at:
>
> tools/testing/selftests/bpf/prog_tests/build_id.c, see subtest_nofault(),
> build_id_resident is false in this case.
>
> >
> > Dominique Martinet (1):
> > 9p: v9fs_fid_find: also lookup by inode if not found dentry
> >
> > Pedro Falcato (1):
> > 9p: Avoid creating multiple slab caches with the same name
> >
> > fs/9p/fid.c | 5 ++---
> > fs/9p/vfs_inode.c | 1 +
> > net/9p/client.c | 10 +++++++++-
> > 3 files changed, 12 insertions(+), 4 deletions(-)
> >
>
Thanks,
--
Dominique Martinet | Asmadeus
next prev parent reply other threads:[~2024-10-23 23:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-18 23:51 [GIT PULL] 9p fixes for 6.12-rc4 Dominique Martinet
2024-10-19 16:01 ` pr-tracker-bot
2024-10-23 16:56 ` Andrii Nakryiko
2024-10-23 23:23 ` Dominique Martinet [this message]
2024-10-23 23:37 ` Andrii Nakryiko
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=ZxmFhiAL-ImjKe7Y@codewreck.org \
--to=asmadeus@codewreck.org \
--cc=andrii@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=dhowells@redhat.com \
--cc=ericvh@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux_oss@crudebyte.com \
--cc=pedro.falcato@gmail.com \
--cc=regressions@leemhuis.info \
--cc=torvalds@linux-foundation.org \
--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.