Date: Mon, 1 Mar 2010 09:59:10 +0000 (GMT) From: Alexander Eichner <alexeichi@yahoo.de> To: freebsd-hackers@freebsd.org Subject: Allocating physical memory without a kernel mapping Message-ID: <317657.30145.qm@web27603.mail.ukl.yahoo.com>
next in thread | raw e-mail | index | archive | help
Hi, I'm currently trying to finish the R0 memory implementation[1] of FreeBSD for VirtualBox. One of the missing methods allocates physical non contiguous pages which don't need to have a kernel mapping (rtR0MemObjNativeAllocPhysNC). I'm using vm_phys_alloc_contig to achieve this. The pages are than mapped into the user space VM process using pmap_enter (rtR0MemObjNativeMapUser) and if they are not needed anymore vm_page_free_toq is used to free the pages (rtR0MemObjNativeFree). Everything works as long as the VM runs but if the VM process terminates and I do something else the host will panic at some point (usually when I try to start a gnome session) with "pmap_enter: missing reference to page table page <va>"[2]. There seems to some problem with the wire count of that page but I can't see what I'm doing wrong at the moment. Thanks in advance for any help. Regards, Alexander Eichner [1] http://www.virtualbox.org/browser/trunk/src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c?rev=26899 [2]http://fxr.watson.org/fxr/source/amd64/amd64/pmap.c?im=bigexcerpts#L3076 __________________________________________________ Do You Yahoo!? Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails. http://mail.yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?317657.30145.qm>
