From: Peter Xu <peterx@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: lee bruce <xrivendell7@gmail.com>,
dave.hansen@linux.intel.com, linux-kernel@vger.kernel.org,
luto@kernel.org, peterz@infradead.org, bp@alien8.de,
hpa@zytor.com, mingo@redhat.com,
Thomas Gleixner <tglx@linutronix.de>,
x86@kernel.org, wang1315768607@163.com,
syzkaller@googlegroups.com
Subject: Re: WARNING in get_pat_info
Date: Thu, 17 Oct 2024 18:25:16 -0400 [thread overview]
Message-ID: <ZxGOzE50OpzI3GaY@x1n> (raw)
In-Reply-To: <9babc9ff-00f0-44c7-a2fe-8aeadfefe75a@redhat.com>
On Thu, Oct 17, 2024 at 09:27:35PM +0200, David Hildenbrand wrote:
> On 16.08.24 11:44, lee bruce wrote:
> > Hello, I found a bug titled "WARNING in get_pat_info" with modified
> > syzkaller in the lasted upstream and lasted mm branches.
>
> Below report is from 6.10.0, which is not precisely "latest upstream", but I
> assume you have similar reports on upstream?
>
> commit 04c35ab3bdae7fefbd7c7a7355f29fa03a035221
> Author: David Hildenbrand <david@redhat.com>
> Date: Wed Apr 3 23:21:30 2024 +0200
>
> x86/mm/pat: fix VM_PAT handling in COW mappings
>
> Was part of v6.9, but this is a different issue.
>
> >
> > If you fix this issue, please add the following tag to the commit:
> > Reported-by: xingwei lee <xrivendell7@gmail.com>
> > Reported-by: yuxin wang <wang1315768607@163.com>
> >
> > TITLE: WARNING in get_pat_info
> > ------------[ cut here ]------------
> > WARNING: CPU: 2 PID: 12458 at arch/x86/mm/pat/memtype.c:1002
> > get_pat_info+0x4b6/0x5c0 arch/x86/mm/pat/memtype.c:1002
>
> This is the WARN_ON_ONCE(1) in get_pat_info(). We don't find any page in the
> mapping, so it vanished already.
>
> I thought we discovered that already recently and discussed it here:
>
> https://lore.kernel.org/all/20240712144244.3090089-1-peterx@redhat.com/T/#u
>
> Which was supposed to fix this problem IIRC.
>
> That patch result in other issues, and my analysis about them is here:
>
> https://lore.kernel.org/all/8da2b3bf-b9bf-44e3-88ff-750dc91c2388@redhat.com/
>
> We didn't have a report from an in-tree driver, so we decided to "not care"
> about these reports:
>
> https://lore.kernel.org/all/116ca902-103d-47cb-baf0-905983baf9bb@redhat.com/
>
>
> But I don't see Peter's patch upstream.
>
> Peter, do you recall what the conclusion on that was?
I don't.. and yes I think that patch isn't merged and should still be valid
on its own.
Said that, this seems to be a different issue, even if still relevant for
PAT. The important part of trace dump is:
...
__mmput+0x122/0x4b0 kernel/fork.c:1126
mmput+0x58/0x60 kernel/fork.c:1147
dup_mm kernel/fork.c:1481 [inline]
copy_mm kernel/fork.c:1517 [inline]
...
So I think Dave's analysis is spot on here, that we're trying to fork but
failed:
https://lore.kernel.org/all/f02a96a2-9f3a-4bed-90a5-b3309eb91d94@intel.com/
The PFNMAP vma is going to be destroyed even if, I believe, nothing is
mapped. I said that because we do pte copy in sequence, and the only way
get_pat_info() can fail in this case is the lookup of the 1st pfnmap
failed.
Instead of questioning why the dup_mm() failed, if we can find a similar
way that pfnmap vma can remember the start PFN somehow (just like for COW
memories there.. in vm_pgoff, but again that currently might be used by
drivers), then it'll also work, so that get_pat_info() shouldn't need to
rely on pgtables for VM_SHARED.
That issue was on my todo for a long time, but there's always things
preempt me from that, not sure whether anyone would like to tackle that
even earlier.. or I can find another time to try, by boosting my todo's
priority. In short, IMO we should allow dup_mm() to fail in this case no
matter why that happened, while maintaining PFN mapping info in pgtable is
always tricky to me (e.g., it's against VM_SHARED PFNMAP to support fault()
and page zappings when needed).
Thanks,
--
Peter Xu
next prev parent reply other threads:[~2024-10-17 22:25 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-16 9:44 WARNING in get_pat_info lee bruce
2024-10-17 19:27 ` David Hildenbrand
2024-10-17 22:25 ` Peter Xu [this message]
2024-10-18 10:48 ` David Hildenbrand
2024-10-18 11:20 ` David Hildenbrand
-- strict thread matches above, loose matches on Subject: below --
2024-12-13 17:35 chase xd
2024-12-13 17:40 ` Jens Axboe
2024-12-13 17:47 ` chase xd
2024-12-13 17:49 ` Jens Axboe
2024-12-13 17:55 ` chase xd
2024-12-13 17:57 ` Jens Axboe
2024-04-18 20:11 Marius Fleischer
2024-10-15 18:55 ` Marius Fleischer
2024-10-15 20:04 ` Dave Hansen
2024-10-15 21:56 ` Jens Axboe
2024-10-15 22:29 ` Marius Fleischer
2024-10-15 23:40 ` Dave Hansen
2024-10-17 3:39 ` Marius Fleischer
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=ZxGOzE50OpzI3GaY@x1n \
--to=peterx@redhat.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=david@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=syzkaller@googlegroups.com \
--cc=tglx@linutronix.de \
--cc=wang1315768607@163.com \
--cc=x86@kernel.org \
--cc=xrivendell7@gmail.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 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.