From: Avi Kivity <avi@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: "lmr@redhat.com" <lmr@redhat.com>,
"Li, Haicheng" <haicheng.li@intel.com>,
Max Asbock <masbock@linux.vnet.ibm.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
"Zheng, Jiajia" <jiajia.zheng@intel.com>,
"You, Yongkang" <yongkang.you@intel.com>,
"Kleen, Andi" <andi.kleen@intel.com>
Subject: Re: [Qemu-devel] [Patch] Support translating Guest physical address to Host virtual address.
Date: Mon, 08 Feb 2010 10:43:18 +0200 [thread overview]
Message-ID: <4B6FCEA6.7040408@redhat.com> (raw)
In-Reply-To: <4B6F3A02.7080800@codemonkey.ws>
On 02/08/2010 12:09 AM, Anthony Liguori wrote:
> On 02/07/2010 10:31 AM, Avi Kivity wrote:
>>> Only insofar as you don't have to deal with getting at the VM fd.
>>> You can avoid the problem by having the kvm ioctl interface take a
>>> pid or something.
>>
>>
>> That's a racy interface.
>
> The mechanism itself is racy. That said, pid's don't recycle very
> quickly so the chances of running into a practical issue is quite small.
While a low probability of a race is acceptable for a test tool, it
isn't for a kernel interface.
>> Well, we need to provide a reasonable alternative.
>
> I think this is the sort of thing that really needs to be a utility
> that lives outside of qemu. I'm absolutely in favor of exposing
> enough internals to let people do interesting things provided it's
> reasonably correct.
I agree that's desirable. However in light of the changable
gpa->hva->hpa mappings, this may not be feasible.
>
>> One might be to use -mempath (which is hacky by itself, but so far we
>> have no alternative) and use an external tool on the memory object to
>> poison it. An advantage is that you can use it independently of kvm.
>
> It would help if the actual requirements were spelled out a bit more.
> What exactly needs validating? Do we need to validate that a
> poisoning a host physical address results in a very particular guest
> page getting poisoned?
>
> Is it not enough to just choose a random anonymous memory area within
> the qemu process, generate an MCE to that location, see whether qemu
> SIGBUS's. If it doesn't, validate that an MCE has been received in
> the guest?
/proc/pid/pagemap may help, though that's racy too. If you pick the
largest vma (or use -mempath) you're pretty much guaranteed to hit on
the guest memory area.
>
> But FWIW, I think a set of per-VM directories in sysfs could be very
> useful for this sort of debugging.
>
> Maybe we should consider having the equivalent of a QMP-for-debugging
> session. This would be a special QMP session that we basically
> provided no compatibility or even sanity guarantees that was
> specifically there for debugging. I would expect that it be disabled
> in any production build (even perhaps even by default in the general
> build).
>
We have 'info cpus' that shows the vcpu->thread mappings, allowing
management to pin cpus. Why not have 'info memory' that shows guest
numa nodes and host virtual addresses? The migrate_pages() syscall
takes a pid so it can be used by qemu's controller to load-balance a
numa machine, and this can also be used by the poisoner to do its work.
--
error compiling committee.c: too many arguments to function
prev parent reply other threads:[~2010-02-08 8:43 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-27 3:25 [Qemu-devel] [Patch] Support translating Guest physical address to Host virtual address Zheng, Jiajia
2010-01-27 21:39 ` Anthony Liguori
2010-01-27 22:31 ` Max Asbock
2010-02-03 4:04 ` Zheng, Jiajia
2010-02-03 13:41 ` Anthony Liguori
2010-02-03 14:11 ` Kleen, Andi
2010-02-03 14:23 ` Anthony Liguori
2010-02-03 15:29 ` Lucas Meneghel Rodrigues
2010-02-03 15:49 ` Kleen, Andi
2010-02-03 16:14 ` Anthony Liguori
2010-02-05 2:07 ` Zheng, Jiajia
2010-02-07 14:03 ` Avi Kivity
2010-02-07 16:23 ` Anthony Liguori
2010-02-07 16:31 ` Avi Kivity
2010-02-07 22:09 ` Anthony Liguori
2010-02-08 3:38 ` Zheng, Jiajia
2010-02-08 8:43 ` Avi Kivity [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B6FCEA6.7040408@redhat.com \
--to=avi@redhat.com \
--cc=andi.kleen@intel.com \
--cc=anthony@codemonkey.ws \
--cc=haicheng.li@intel.com \
--cc=jiajia.zheng@intel.com \
--cc=lmr@redhat.com \
--cc=masbock@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=yongkang.you@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.