svn commit: r323290 - head/sys/vm

Justin Hibbits chmeeedalf at gmail.com
Sat Sep 16 20:32:36 UTC 2017


On Sep 16, 2017 14:02, "Andreas Tobler" <andreast at freebsd.org> 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.


What about using dcons? That's saved me many times when I couldn't break
into ddb from the console.



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.


The previous revision, r323289 seems stable, at least it survived
>> several kernel builds.
>>
>
> Could you apply the patch below and capture the first page or so of
> output from after the kernel starts booting?
>

I applied this diff and you see its output on the pic:

https://people.freebsd.org/~andreast/r323290_generic64_with_dbg_patch.jpg

I try now to get that far that I have a kbd and capture a 'show page'.

Thanks,
Andreas


More information about the svn-src-head mailing list