From owner-freebsd-current@FreeBSD.ORG Mon Dec 5 17:58:31 2011 Return-Path: Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CFA961065679; Mon, 5 Dec 2011 17:58:31 +0000 (UTC) (envelope-from alc@rice.edu) Received: from mh5.mail.rice.edu (mh5.mail.rice.edu [128.42.199.32]) by mx1.freebsd.org (Postfix) with ESMTP id 647128FC15; Mon, 5 Dec 2011 17:58:30 +0000 (UTC) Received: from mh5.mail.rice.edu (localhost.localdomain [127.0.0.1]) by mh5.mail.rice.edu (Postfix) with ESMTP id C003F290F3C; Mon, 5 Dec 2011 11:58:29 -0600 (CST) Received: from mh5.mail.rice.edu (localhost.localdomain [127.0.0.1]) by mh5.mail.rice.edu (Postfix) with ESMTP id A4461290F0D; Mon, 5 Dec 2011 11:58:29 -0600 (CST) X-Virus-Scanned: by amavis-2.6.4 at mh5.mail.rice.edu, auth channel Received: from mh5.mail.rice.edu ([127.0.0.1]) by mh5.mail.rice.edu (mh5.mail.rice.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id Y5pCaGg0g6us; Mon, 5 Dec 2011 11:58:29 -0600 (CST) Received: from adsl-216-63-78-18.dsl.hstntx.swbell.net (adsl-216-63-78-18.dsl.hstntx.swbell.net [216.63.78.18]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) (Authenticated sender: alc) by mh5.mail.rice.edu (Postfix) with ESMTPSA id DB9AD290F2E; Mon, 5 Dec 2011 11:58:28 -0600 (CST) Message-ID: <4EDD0644.5030902@rice.edu> Date: Mon, 05 Dec 2011 11:58:28 -0600 From: Alan Cox User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Andriy Gapon References: <4ECF7440.4070300@entel.upc.edu> <20111126163343.GA9150@reks> "<4ED6AEFE.4010106@FreeBSD.org>" <201111301807.21351.jkim@FreeBSD.org> <60ea779052f025798cf65e18c24b7b31@bluelife.at> <47eb9f9b139dd8c59b050f1670a5f18d@bluelife.at> <7c3c9505867f4528af276a571077b9ce@bluelife.at> <4EDCC1C6.3040109@FreeBSD.org> <4EDCCDA2.5070006@FreeBSD.org> In-Reply-To: <4EDCCDA2.5070006@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Gleb Kurtsou , Alan Cox , freebsd-emulation@FreeBSD.org, FreeBSD current , Bernhard Froehlich , Jung-uk Kim Subject: Re: Freeze with 10.0 and VirtualBox {4.1.4|4.1.6|4.1.51r38464} X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Dec 2011 17:58:31 -0000 On 12/05/2011 07:56, Andriy Gapon wrote: > on 05/12/2011 15:15 Bernhard Froehlich said the following: >> On 05.12.2011 14:06, Andriy Gapon wrote: >>> on 05/12/2011 14:57 Bernhard Froehlich said the following: >>>> On 02.12.2011 12:55, Bernhard Froehlich wrote: >>>>> Patch has been send upstream: >>>>> >>>>> >>>>> >>>>> https://www.virtualbox.org/pipermail/vbox-dev/2011-December/004842.html >>>> Patches have been committed upstream. Thanks a lot guys! >>>> >>>> https://www.virtualbox.org/changeset/39521 >>>> >>> BTW, I think that we additionally need VM_ALLOC_NOBUSY in flags that >>> we pass to vm_phys_alloc_contig. >> What's the difference of this? > Pages should be marked busy only for some special occasions, wired pages are not > normally busy; the correct explanation is quite a bit longer than this, the > comment in the code explains VPO_BUSY as "page is in transit". Right now this > flag doesn't seem tom affect vboxdrv code but it may lead to surprises when some > parts of code that are incorrect now are re-implemented properly: > http://article.gmane.org/gmane.os.freebsd.devel.emulation/9297 VM_ALLOC_NOOBJ implies that the returned page does not have VPO_BUSY set. From the comment at the head of both vm_page_alloc() and vm_page_alloc_contig(): * VM_ALLOC_NOOBJ page is not associated with an object and * should not have the flag VPO_BUSY set With regard to the message that the above link points to, I suspect that the introduction of vm_page_alloc_contig() can be used to address the first problem that you point out. Specifically, one or more OBJT_PHYS vm objects could be created and passed to vm_map_find() and then vm_page_alloc_contig() could be used to fill these vm objects with memory. Alan