|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [Patch] Support translating Guest physical address to Host virtual address. |
Date: | Wed, 27 Jan 2010 15:39:22 -0600 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Lightning/1.0pre Thunderbird/3.0 |
On 01/26/2010 09:25 PM, Zheng, Jiajia wrote:
Add command p2v to translate Guest physical address to Host virtual address.
For what purpose?
Signed-off-by: Max Asbock<address@hidden> Jiajia Zheng<address@hidden> --- diff --git a/monitor.c b/monitor.c index b33b01f..83d9ac7 100644 --- a/monitor.c +++ b/monitor.c @@ -668,6 +668,11 @@ static void do_info_uuid(Monitor *mon, QObject **ret_data) *ret_data = qobject_from_jsonf("{ 'UUID': %s }", uuid); } +static void do_info_p2v(Monitor *mon) +{ + monitor_printf(mon, "p2v implemented\n"); +}
These should be implemented as QMP commands.
/* get the current CPU defined by the user */ static int mon_set_cpu(int cpu_index) { @@ -2283,6 +2288,14 @@ static void do_inject_mce(Monitor *mon, const QDict *qdict) break; } } +static void do_p2v(Monitor *mon, const QDict *qdict) +{ + target_long size = 4096; + target_long addr = qdict_get_int(qdict, "addr"); + + monitor_printf(mon, "Guest physical address %p is mapped at host virtual address %p\n", (void *)addr, cpu_physical_memory_map( (target_phys_addr_t)addr, (target_phys_addr_t *)&size, 0));
This isn't quite right. It assumes TARGET_PAGE_SIZE is 4k which is certainly not always true. It also assumes that cpu_physical_memory_map() something that has some meaning which isn't necessarily the case. It could be a pointer to a bounce buffer.
Could you give an end-to-end description of how you expect this mechanism to be used so we can work out a more appropriate set of interfaces. I assume this is MCE related.
Regards, Anthony Liguori
[Prev in Thread] | Current Thread | [Next in Thread] |