qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] PowerPC64 and more


From: J. Mayer
Subject: Re: [Qemu-devel] PowerPC64 and more
Date: Fri, 22 Jul 2005 00:37:21 +0200

On Fri, 2005-07-22 at 00:10 +0200, Filip Navara wrote:
> J. Mayer wrote:
> 
> >Here's a long awaited patch (hum, Fabrice ? ;-) ).
> >It is really invasive in the target-ppc subdirectory.
> >  
> >
> [snip]
> 
> wow, you repeated my and Fabrice's mistake once more ... think about the 
> code below more :)
> note: when you'll be done thinking or run out of ideas see my x86-64 
> patches that i sent to ML this morning.

Without this patch, it crashes at the first instruction trying to access
the BIOS.
And your patch does not solve the problem:
on a real PowerPC 64 machine, we can use the whole 64 bits virtual
space.
We agreed with Fabrice that there should be at least one more
indirection in page mapping, because it would cost too much memory to
try to map the whole needed memory space in one table, even if we can
"forget" some of the middle bits in most cases.
Then, you're right, this patch is ugly but allows not to crash until we
have a correct solution with indirect tables to get a very large virtual
space.

> Index: exec.c
> ===================================================================
> RCS file: /cvsroot/qemu/qemu/exec.c,v
> retrieving revision 1.60
> diff -u -d -w -B -b -d -p -r1.60 exec.c
> --- exec.c    24 Apr 2005 18:02:38 -0000    1.60
> +++ exec.c    20 Jul 2005 23:00:26 -0000
> @@ -257,6 +257,10 @@ static inline VirtPageDesc *virt_page_fi
>  {
>      VirtPageDesc *p;
>  
> +    /* XXX: should not truncate for 64 bit addresses */
> +#if TARGET_LONG_BITS > 32
> +    index &= (L1_SIZE - 1);
> +#endif
>      p = l1_virt_map[index >> L2_BITS];
>      if (!p)
>          return 0;

-- 
J. Mayer <address@hidden>
Never organized





reply via email to

[Prev in Thread] Current Thread [Next in Thread]