Re: Virtualbox

From: Giovanni Trematerra <giovanni.trematerra_at_gmail.com>
Date: Wed, 24 Feb 2010 13:26:05 +0100
On Wed, Feb 24, 2010 at 12:16 PM, Jacques Fourie
<jacques.fourie_at_gmail.com> wrote:
> As a test you can apply the following mod to sys/i386/include/pmap.h
> and re-compile vboxdrv.ko. It fixed the problem for me but I'm by no
> means an expert on the i386 pmap stuff so use at your own risk. Also
> revert the change to pmap.h after re-compiling vboxdrv just so that
> you don't inadvertently break something else.
>
> Index: pmap.h
> ===================================================================
> --- pmap.h      (revision 204194)
> +++ pmap.h      (working copy)
> _at__at_ -296,7 +296,10 _at__at_
>                 * however, safe to use the old PDE because the page table
>                 * page is preserved by the promotion.
>                 */
> -               pa = KPTmap[i386_btop(va)];
> +               if (va >= KERNBASE)
> +                       pa = KPTmap[i386_btop(va)];
> +               else
> +                       pa = *vtopte(va);
>                pa = (pa & PG_FRAME) | (va & PAGE_MASK);
>        }
>        return (pa);

pmap_kextract is intend to be used with kernel virtual addresses and
not user virtual addresses.
The problem lies in the driver not in the kernel.

The vboxdrv call vtophys macro passing user virtual addresses through
rtR0MemObjNativeGetPagePhysAddr and this is wrong.

If you want a way to get virtualbox works try to revert this commit (r202894):
http://www.mail-archive.com/svn-src-all_at_freebsd.org/msg19081.html

If you don't use ZFS with superpages enable you have a good chance to
get a work system until a patch to vboxdrv will be around.

--
Gianni
Received on Wed Feb 24 2010 - 11:26:12 UTC

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