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:

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

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

Reply via email to