On Thu, 27 Mar 2014 19:25:31 +0100 Andreas Färber <afaer...@suse.de> wrote:
> Am 20.03.2014 13:56, schrieb Luiz Capitulino: > > On Wed, 19 Mar 2014 22:58:11 +0100 > > Andreas Färber <afaer...@suse.de> 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 <lcapitul...@redhat.com> > >> > >> 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 >