qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: Jes Sorensen <Jes.Sorensen@redhat.com>
Cc: Juan Quintela <quintela@redhat.com>, Dor Laor <dlaor@redhat.com>,
	QEMU Developers <qemu-devel@nongnu.org>,
	Anthony Liguori <aliguori@linux.vnet.ibm.com>,
	Gerd Hoffmann <kraxel@redhat.com>, Adam Litke <agl@us.ibm.com>,
	Amit Shah <amit.shah@redhat.com>
Subject: Re: [Qemu-devel] QEMU: Discussion of separating core functionality vs supportive features
Date: Wed, 02 Mar 2011 07:13:00 -0600	[thread overview]
Message-ID: <4D6E425C.8080809@linux.vnet.ibm.com> (raw)
In-Reply-To: <4D6E19B5.6040203@redhat.com>

On 03/02/2011 04:19 AM, Jes Sorensen wrote:
> On 02/28/11 18:44, Anthony Liguori wrote:
>> On Feb 28, 2011 10:44 AM, "Jes Sorensen"<Jes.Sorensen@redhat.com>  wrote:
>>>> Separating host-side virtagent and other tasks from core QEMU
>>>> =============================================================
>>>>
>>>> To improve auditing of the core QEMU code, it would be ideal to be
>>>> able to separate the core QEMU functionality from utility
>>>> functionality by  moving the utility functionality into its own
>>>> process. This process will be referred to as the QEMU client below.
>> Separating as in moving code outside of qemu.git, making code optionally
>> built in, making code optionally built in or loadable as a separate
>> executable that is automatically launched, or making code always built
>> outside the main executable?
>>
>> I'm very nervous about having a large number of daemons necessary to run
>> QEMU.  I think a reasonable approach would be a single front-end daemond.
>>
>> Once QAPI is merged, there is a very incremental approach we can take for
>> this sort of work.  Take your favorite subsystem (like gdbstub or SDL) and
>> make it only use QMP apis.  Once we're only using QMP internally in a
>> subsystem, then building it out of the main QEMU and using libqmp should be
>> fairly easy.
>
> Hi Anthony,
>
> Back from a day off playing with power drills and concrete walls :)
>
> Sorry I should have made it a little more clear, it was obvious to me,
> but not written down:
>
> The idea is to keep everything as part of the QEMU package, ie. part of
> qemu.git. My idea is really to have one QEMU host daemon and one QEMU
> client, which provides the various services. You type make and you get
> two binaries instead of one. We could allow other daemons to connect to
> the host daemon, but that wouldn't be a primary target for this in my
> book, and I am not sure we really want to do this.
>
> It is absolutely vital for me that we do not make things much more
> complicated for users with this move. I don't want to get into a
> situation where we start forcing external packages or daemons in order
> to run basic QEMU. If we start requiring such, we have failed! However,
> I think it is a reasonable compromise to have one daemon you launch, and
> then a simple client you launch straight after which will then provide
> the same/similar views and interfaces that users are used to when they
> launch current QEMU (monitor, vnc server etc).

I think the challenge with this approach is defining an IPC mechanism 
that is robust enough to support it. For instance, on one end of the 
spectrum we have Spice, where shared memory paired with some mechanism 
for IO notification between the client/server might make sense. But then 
we have things like the human monitor where a socket interface or pipe 
is clearly more the more straight-forward route.

We may find that it more desirable to have multiple classes of client 
components, each contain within a client process with it's own IPC 
mechanism. Although, multiple IPC mechanisms doesn't sound particularly 
enticing either...but 2 might not be so unreasonable.

>
> I hope this clarifies things.
>
> Cheers,
> Jes

  reply	other threads:[~2011-03-02 13:13 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-28 16:42 [Qemu-devel] QEMU: Discussion of separating core functionality vs supportive features Jes Sorensen
2011-02-28 17:44 ` Anthony Liguori
2011-03-01 12:07   ` Dor Laor
2011-03-01 12:40     ` Anthony Liguori
2011-03-01 14:25       ` Dor Laor
2011-03-01 14:29         ` Anthony Liguori
2011-03-02 10:25         ` Jes Sorensen
2011-03-02 10:56           ` Dor Laor
2011-03-02 11:02             ` Jes Sorensen
2011-03-02 10:58           ` Alon Levy
2011-03-02 11:04             ` Dor Laor
2011-03-02 12:39               ` Alon Levy
2011-04-26  9:14               ` Gerd Hoffmann
2011-04-26 13:15                 ` Anthony Liguori
2011-03-02 11:05             ` Jes Sorensen
2011-03-02 10:28         ` Jes Sorensen
2011-03-02 10:42           ` Dor Laor
2011-03-02 10:47             ` Jes Sorensen
2011-03-02 10:21     ` Jes Sorensen
2011-03-02 10:19   ` Jes Sorensen
2011-03-02 13:13     ` Michael Roth [this message]
2011-03-02 13:18       ` Jes Sorensen
2011-03-02 13:49         ` Michael Roth
2011-03-03 13:29           ` Jes Sorensen

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=4D6E425C.8080809@linux.vnet.ibm.com \
    --to=mdroth@linux.vnet.ibm.com \
    --cc=Jes.Sorensen@redhat.com \
    --cc=agl@us.ibm.com \
    --cc=aliguori@linux.vnet.ibm.com \
    --cc=amit.shah@redhat.com \
    --cc=dlaor@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).