Freeze with 10.0 and VirtualBox {4.1.4|4.1.6|4.1.51r38464}

Gustau Pérez gperez at
Thu Dec 1 08:22:05 UTC 2011

On 01/12/2011 00:35, Andriy Gapon wrote:
> on 01/12/2011 01:27 Jung-uk Kim said the following:
>> On Wednesday 30 November 2011 06:07 pm, Jung-uk Kim wrote:
>>> On Wednesday 30 November 2011 05:32 pm, Andriy Gapon wrote:
>>>> on 26/11/2011 18:33 Gleb Kurtsou said the following:
>>>>> Using new vm_page_alloc_contig() may be a better option here.
>>>>> Can't help with patch, stuck with pre Nov 15 CURRENT myself.
>>>> on 27/11/2011 19:09 Alan Cox said the following:
>>>>> vm_page_alloc_contig() should be used instead.
>>>> My take on the patch:
>>>> This is for head only, no check for FreeBSD version.
>>> Actually, I did the same thing last night:
>>> d-memobj-r0drv-freebsd.c
>>> This is a drop-in replacement for the patch.  The only practical
>>> difference I see from yours is I used VM_ALLOC_INTERRUPT instead of
>>> VM_ALLOC_NORMAL.  I believe this function may be used in interrupt
>>> context.  FYI, I tried FreeBSD 9 and Fedora 10 without problem.
>> BTW, I needed another patch to build virtual-ose-kmod on head:
>> FYI...
> Yep, me too, obviously :-)
> Thank you for the complete vm_page_alloc_contig patch!

   Thanks for the patch. I'll give it a try.

   OTOH yesterday I was trying to use vm_page_alloc_contig and trying to 
understand the allocation classes. I was able to panic the system or in 
the best case VBoxHeadless was getting a sig11.

   I was planning to ask the mailing list about them, because even I 
read vm-design article in the doc section there are things I don't yet 

   First question is, if you set NULL for the vm_object_t (and then 
VM_ALLOC_NOOBJ must be given or the kernel will panic with INVARIANTS 
set) how this memory is assigned to the VirtualBox process logical space?

   Second set of related questions are: why should the pages be wired? 
and why should the VM_ALLOC_INTERRUPT alloc class be given?

   Third question is: I see in the patch that 
rtR0MemObjFreeBSDPhysPageInit is not called if the veersion is less that 
1000000, is this because vm_phys_alloc_contig doesn't set the flags on 
the pages and vm_page_alloc_contig does?



More information about the freebsd-emulation mailing list