Messages in this thread Patch in this message | | | Date | Mon, 30 Nov 2020 18:55:32 +0200 | From | Mike Rapoport <> | Subject | Re: Performance regressions in "boot_time" tests in Linux 5.8 Kernel |
| |
Hi Rahul,
On Tue, Nov 24, 2020 at 03:03:40PM +0000, Rahul Gopakumar wrote: > Hi Baoquan, > > We applied the new patch to 5.10 rc3 and tested it. We are still > observing the same page corruption issue which we saw with the > old patch. This is causing 3 secs delay in boot time. > > Attached dmesg log from the new patch and also from vanilla > 5.10 rc3 kernel. > > There are multiple lines like below in the dmesg log of the > new patch. > > "BUG: Bad page state in process swapper pfn:ab08001"
Can you please run your test with the below patch and send output of
dmesg | grep defer
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index eaa227a479e4..ce7ec660c777 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -455,6 +455,7 @@ defer_init(int nid, unsigned long pfn, unsigned long end_pfn) nr_initialised++; if ((nr_initialised > PAGES_PER_SECTION) && (pfn & (PAGES_PER_SECTION - 1)) == 0) { + pr_info("=> %s: nid: %d pfn: %lx\n", __func__, nid, pfn); NODE_DATA(nid)->first_deferred_pfn = pfn; return true; } > ________________________________________ > From: bhe@redhat.com <bhe@redhat.com> > Sent: 22 November 2020 6:38 AM > To: Rahul Gopakumar > Cc: linux-mm@kvack.org; linux-kernel@vger.kernel.org; akpm@linux-foundation.org; natechancellor@gmail.com; ndesaulniers@google.com; clang-built-linux@googlegroups.com; rostedt@goodmis.org; Rajender M; Yiu Cho Lau; Peter Jonasson; Venkatesh Rajaram > Subject: Re: Performance regressions in "boot_time" tests in Linux 5.8 Kernel > > On 11/20/20 at 03:11am, Rahul Gopakumar wrote: > > Hi Baoquan, > > > > To which commit should we apply the draft patch. We tried applying > > the patch to the commit 3e4fb4346c781068610d03c12b16c0cfb0fd24a3 > > (the one we used for applying the previous patch) but it fails. > > I tested on 5.10-rc3+. You can append below change to the old patch in > your testing kernel. > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index fa6076e1a840..5e5b74e88d69 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -448,6 +448,8 @@ defer_init(int nid, unsigned long pfn, unsigned long end_pfn) > if (end_pfn < pgdat_end_pfn(NODE_DATA(nid))) > return false; > > + if (NODE_DATA(nid)->first_deferred_pfn != ULONG_MAX) > + return true; > /* > * We start only with one section of pages, more pages are added as > * needed until the rest of deferred pages are initialized. >
-- Sincerely yours, Mike.
| |