svn commit: r323290 - head/sys/vm

Andreas Tobler andreast at FreeBSD.org
Sun Sep 17 12:56:48 UTC 2017


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


More information about the svn-src-all mailing list