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

From: Gustau Pérez <gperez_at_entel.upc.edu>
Date: Thu, 01 Dec 2011 09:21:53 +0100
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:
>>>> http://people.freebsd.org/~avg/vbox-10.patch
>>>> This is for head only, no check for FreeBSD version.
>>> Actually, I did the same thing last night:
>>>
>>> http://people.freebsd.org/~jkim/patch-src-VBox-Runtime-r0drv-freebs
>>> 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:
>>
>> http://people.freebsd.org/~jkim/patch-src-VBox-HostDrivers-Support-freebsd-SUPDrv-freebsd.c
>>
>> 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 
understand:

   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?

   Thanks,

    Gus
Received on Thu Dec 01 2011 - 07:22:05 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:21 UTC