qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 for-2.0] target-i386: x86_cpu_get_phys_page_d


From: Luiz Capitulino
Subject: Re: [Qemu-devel] [PATCH v2 for-2.0] target-i386: x86_cpu_get_phys_page_debug(): support 1GB page translation
Date: Thu, 27 Mar 2014 14:27:13 -0400

On Thu, 27 Mar 2014 19:25:31 +0100
Andreas Färber <address@hidden> wrote:

> Am 20.03.2014 13:56, schrieb Luiz Capitulino:
> > On Wed, 19 Mar 2014 22:58:11 +0100
> > Andreas Färber <address@hidden> wrote:
> > 
> >> Am 19.03.2014 22:03, schrieb Luiz Capitulino:
> >>> Linux guests, when using more than 4GB of RAM, may end up using 1GB pages
> >>> to store (kernel) data. When this happens, we're unable to debug a running
> >>> Linux kernel with GDB:
> >>>
> >>> (gdb) p node_data[0]->node_id
> >>> Cannot access memory at address 0xffff88013fffd3a0
> >>> (gdb)
> >>>
> >>> GDB returns this error because x86_cpu_get_phys_page_debug() doesn't 
> >>> support
> >>> translating 1GB pages in IA-32e paging mode and returns an error to GDB.
> >>>
> >>> This commit adds support for 1GB page translation for IA32e paging.
> >>>
> >>> Signed-off-by: Luiz capitulino <address@hidden>
> >>
> >> Capitulino? :)
> > 
> > Can you or Peter fix it when merging?
> 
> Done.
> 
> >>> ---
> >>>
> >>> - I'm proposing this patch for 2.0 because GDB debugging of large Linux
> >>>   guests is kind of broken
> >>
> >> Agree that it would be nice to fix, but having mainly touched the
> >> function interface, I am dependent on reviewers here. => rc2 or .1
> > 
> > I think Paolo and/or Jan will review it.
> 
> Thanks to them. I did need the followup build fix though:

Thanks a lot.

> 
> diff --git a/target-i386/helper.c b/target-i386/helper.c
> index 7cee501..372f0e3 100644
> --- a/target-i386/helper.c
> +++ b/target-i386/helper.c
> @@ -1001,7 +1001,9 @@ hwaddr x86_cpu_get_phys_page_debug(CPUState *cs,
> vaddr addr)
>          pte = pte & env->a20_mask;
>      }
> 
> +#ifdef TARGET_X86_64
>  out:
> +#endif
>      page_offset = (addr & TARGET_PAGE_MASK) & (page_size - 1);
>      paddr = (pte & TARGET_PAGE_MASK) + page_offset;
>      return paddr;
> 
> Thanks, applied to qom-cpu:
> https://github.com/afaerber/qemu-cpu/commits/qom-cpu
> 
> Andreas
> 




reply via email to

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