From: Jan Kiszka <jan.kiszka@siemens.com>
To: Glauber Costa <glommer@redhat.com>
Cc: "aliguori@us.ibm.com" <aliguori@us.ibm.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Avi Kivity <avi@redhat.com>
Subject: [Qemu-devel] Re: [PATCH v3] introduce on_vcpu
Date: Thu, 27 Aug 2009 19:45:39 +0200 [thread overview]
Message-ID: <4A96C643.4080306@siemens.com> (raw)
In-Reply-To: <20090827174036.GC5746@mothafucka.localdomain>
Glauber Costa wrote:
> On Thu, Aug 27, 2009 at 07:15:28PM +0200, Jan Kiszka wrote:
>> Glauber Costa wrote:
>>> on_vcpu is a qemu-kvm function that will make sure that a specific
>>> piece of code will run on a requested cpu. We don't need that because
>>> we're restricted to -smp 1 right now, but those days are likely to end soon.
>>>
>>> So for the benefit of having qemu-kvm share more code with us, I'm
>>> introducing our own version of on_vcpu(). Right now, we either run
>>> a function on the current cpu, or abort the execution, because it would
>>> mean something is seriously wrong.
>>>
>>> As an example code, I "ported" kvm_update_guest_debug to use it,
>>> with some slight differences from qemu-kvm.
>>>
>>> This is probably 0.12 material
>>>
>>> Signed-off-by: Glauber Costa <glommer@redhat.com>
>>> CC: Jan Kiszka <jan.kiszka@siemens.com>
>>> ---
>>> kvm-all.c | 35 +++++++++++++++++++++++++++++------
>>> 1 files changed, 29 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/kvm-all.c b/kvm-all.c
>>> index 61194b8..07a1cdb 100644
>>> --- a/kvm-all.c
>>> +++ b/kvm-all.c
>>> @@ -155,6 +155,15 @@ static void kvm_reset_vcpu(void *opaque)
>>> }
>>> }
>>>
>>> +static void on_vcpu(CPUState *env, void (*func)(void *data), void *data)
>>> +{
>>> + if (env == cpu_single_env) {
>>> + func(data);
>>> + return;
>>> + }
>>> + abort();
>> Sorry, missed this before it went in: This abort fires already now when
>> kvm_update_guest_debug is invoked by the gdbstub (where cpu_single_env
>> is 0). This completely breaks guest debugging int kvm mode.
>>
>> Moreover, if you enable I/O thread support, you already have a need for
>> true on_vcpu, don't you? Or is locking around the I/O thread still
>> broken in kvm mode? Anyway, please fix.
> It is, but I just sent two patches that would leave us in a better shape.
> Not sure what was made of them.
>
> Anyway, I still have something almost ready for on_vcpu.
> Actually, I want to hear input on it: I was thinking the best architecture
> would be to drop it completely, and do automatically whenever we call vcpu_ioctl.
> My only concern then would be speed. In this case, we could make this non-blocking,
> and introduce explicit flush requests for remote cpus.
>
> What do you think about it ?
Is on_vcpu only used for issuing vcpu_ioctl? Then combining both is
surely a reasonable step.
If you are concerned about performance, I think crafting a first version
over qemu-kvm, probably also merging it into that branch first makes
some sense. Though I think we should get along with a simple test for
the caller context in vcpu_ioctl for the fast path.
Jan
--
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2009-08-27 17:45 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-16 21:55 [Qemu-devel] [PATCH v3] introduce on_vcpu Glauber Costa
2009-08-27 17:15 ` [Qemu-devel] " Jan Kiszka
2009-08-27 17:40 ` Glauber Costa
2009-08-27 17:45 ` Jan Kiszka [this message]
2009-08-28 1:18 ` Glauber Costa
2009-08-28 1:38 ` Anthony Liguori
2009-08-28 1:58 ` Glauber Costa
2009-08-28 6:18 ` Gleb Natapov
2009-08-29 1:22 ` Jamie Lokier
2009-08-31 11:35 ` Glauber Costa
2009-08-31 12:04 ` Jamie Lokier
2009-08-31 12:14 ` Glauber Costa
2009-08-31 12:21 ` Jan Kiszka
2009-08-31 22:25 ` Jamie Lokier
2009-08-31 12:57 ` Glauber Costa
2009-09-01 0:55 ` Paolo Bonzini
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=4A96C643.4080306@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=aliguori@us.ibm.com \
--cc=avi@redhat.com \
--cc=glommer@redhat.com \
--cc=qemu-devel@nongnu.org \
/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.