Date: Sun, 17 Sep 2017 14:56:44 +0200 From: Andreas Tobler <andreast@FreeBSD.org> To: Mark Johnston <markj@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r323290 - head/sys/vm Message-ID: <a16cfd7d-0a96-6842-cf37-6c8577c5aef8@FreeBSD.org> In-Reply-To: <20170916222846.GA88851@bish> References: <201709072143.v87Lhdsg060310@repo.freebsd.org> <c25a9965-b665-51ad-abe6-71beb2ae0440@FreeBSD.org> <20170914203232.GA72190@bish> <67bb96f2-da01-8bce-65ba-bf811f51e56d@FreeBSD.org> <20170916222846.GA88851@bish>
next in thread | previous in thread | raw e-mail | index | archive | help
On 17.09.17 00:28, Mark Johnston wrote: > On Sat, Sep 16, 2017 at 09:01:56PM +0200, Andreas Tobler wrote: >> On 14.09.17 22:32, Mark Johnston wrote: >>> On Thu, Sep 14, 2017 at 09:51:17PM +0200, Andreas Tobler wrote: >>>> Hi Mark, >>>> >>>> On 07.09.17 23:43, Mark Johnston wrote: >>>>> Author: markj >>>>> Date: Thu Sep 7 21:43:39 2017 >>>>> New Revision: 323290 >>>>> URL: https://svnweb.freebsd.org/changeset/base/323290 >>>>> >>>>> Log: >>>>> Speed up vm_page_array initialization. >>>>> >>>>> We currently initialize the vm_page array in three passes: one to zero >>>>> the array, one to initialize the "order" field of each page (necessary >>>>> when inserting them into the vm_phys buddy allocator one-by-one), and >>>>> one to initialize the remaining non-zero fields and individually insert >>>>> each page into the allocator. >>>>> >>>>> Merge the three passes into one following a suggestion from alc: >>>>> initialize vm_page fields in a single pass, and use vm_phys_free_contig() >>>>> to efficiently insert physical memory segments into the buddy allocator. >>>>> This reduces the initialization time to a third or a quarter of what it >>>>> was before on most systems that I tested. >>>>> >>>>> Reviewed by: alc, kib >>>>> MFC after: 3 weeks >>>>> Differential Revision: https://reviews.freebsd.org/D12248 >>>>> >>>>> Modified: >>>>> head/sys/vm/vm_page.c >>>>> head/sys/vm/vm_phys.c >>>>> head/sys/vm/vm_phys.h >>>> >>>> I just found out that this commit breaks booting my powerpc64 Quad G5. >>>> It hangs, pressing ctrl-t shows: cmd: sh [*vm active pagequeue]. >>>> >>>> Sometimes it hangs earlier when the kbd is not there yet (usb), then I >>>> can't get the process/task where it hangs. >>>> >>>> Note, this kernel is compiled with the default gcc (4.2.1-FreeBSD) >>>> >>>> Any ideas how to find out what's wrong? >>> >>> Are you able to break into DDB when the hang occurs? If so, the output >>> of "show page" would be helpful. >> >> Unfortunately not from the beginning. The keyboard is usb and it gets >> installed late. Once it survives the loading of the kbd and co, I can >> enter into ddb. But it is a trial and error. So far I didn't succeed to >> come that far. >> >>> Are you running with INVARIANTS configured? If not, please try that. >> >> The above was w/o INVARIANTS. With invariants the kernel panics >> immediately after boot, see pic. > > Thanks. Could you please try applying the patch at the end of this email > and see if that fixes the issue? I have not yet tried to compile it, > sorry. Excellent! I can confirm the two platforms, 32- and 64-bit powerpc, are back to life. Both are running since a few hours and perfom ports rebuild now. Thank you very much for your prompt response and help. Andreas
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a16cfd7d-0a96-6842-cf37-6c8577c5aef8>