On 11/12/2010 03:16 AM, Huang Ying wrote:
On Thu, 2010-11-11 at 17:39 +0800, Avi Kivity wrote: > On 11/11/2010 02:56 AM, Huang Ying wrote: > > On Thu, 2010-11-11 at 00:49 +0800, Anthony Liguori wrote: > > > On 11/10/2010 02:34 AM, Avi Kivity wrote: > > > >> Why the gpa -> hva mapping is not > > > >> consistent for RAM if -mempath is not used? > > > > > > > > Video RAM in the range a0000-bffff and PCI mapped RAM can change gpas > > > > (while remaining in the same hva). > > > > > > > > Even for ordinary RAM, which doesn't normally change gpa/hva, I'm not > > > > sure we want to guarantee that it won't. > > > > > > We can't universally either. Memory hot remove potentially breaks the > > > mapping and some non-x86 architectures (like ARM) can alias RAM via a > > > guest triggered mechanism. > > > > Thanks for clarification. Now I think we have two options. > > > > 1) Clearly mark gpa2hva (pfa2hva now, should renamed to gpa2hva) as a > > testing only interface, and should be used only on restricted > > environment (normal memory, without hot-remove, maybe only on x86). > > > > 2) Find some way to lock the gpa -> hva mapping during operating. Such > > as gpa2hva_begin and gpa2hva_end and lock the mapping in between. > > > > I think 2) may be possible. But if there are no other users, why do that > > for a test case? So I think 1) may be the better option. > > > > 3) Move the poisoning code into qemu, so the command becomes > > posison-address<addr> > > (though physical addresses aren't stable either) Poisoning includes: a) gva -> gpa b) gpa -> hva c) hva -> hpa d) inject the MCE into host via some external tool poison-address need to do b, c, d. Do you think it is good to do all these inside qemu?
If d is not too complicated (an ioctl?), we might to it in qemu.
> 4) Use -mempath on /dev/shm and poison a page in the backing file If we can poison a page in the backing file, how do we know the corresponding gpa and hpa?
I think you currently can't know it's gpa (why do you want to?); the upcoming NUMA enhancements should allow this (the plan is to have a file per guest NUMA node, so we can tell the host what policy to apply for that node).
gpa->hpa translation can be derived from /proc/pid/maps. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html