qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: "Benoît Canet" <benoit.canet@irqsave.net>,
	"Andy Grover" <agrover@redhat.com>
Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com,
	"Richard W.M. Jones" <rjones@redhat.com>
Subject: Re: [Qemu-devel] tcmu-runner and QEMU
Date: Mon, 01 Sep 2014 10:32:41 +0200	[thread overview]
Message-ID: <54042F29.6030102@redhat.com> (raw)
In-Reply-To: <20140831203828.GA23970@irqsave.net>

Il 31/08/2014 22:38, Benoît Canet ha scritto:
> The problem with QEMU block drivers is that they are using either coroutines
> or QEMU custom AIO callbacks so reusing them without the block layer is
> not doable.

Not really true.  The QEMU block layer can be wrapped relatively easily
in a GSource.  This is how QEMU uses it, in fact.

As to global state, each .so is only loaded once in an executable, so if
TCMU loaded two QEMU plugins the .so would point to the block devices
from each plugin.

The problem is more the QMP interface, I think.

> For the QEMU block layer as a whole it maintains some linked lists of block devices
> states or similar stuff as static global variables.
> (See https://github.com/qemu/qemu/blob/master/block.c#L96)
> 
> So having more than one instance of the block layer running is not doable.
> 
> I am not aware of anyone successfull in turning it into a proper .so.

There was libqemublock.  I think it stopped just because the author
turned to something else, not because there were particular problems
with the design.

Paolo

> Extracting into a binary acting as an nbd target was done with qemu-nbd though.

  reply	other threads:[~2014-09-01  8:32 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-29 17:22 [Qemu-devel] tcmu-runner and QEMU Benoît Canet
2014-08-29 18:38 ` Andy Grover
2014-08-29 18:51   ` Benoît Canet
2014-08-29 22:36     ` Andy Grover
2014-08-29 22:46       ` Benoît Canet
2014-08-30 14:46 ` Richard W.M. Jones
2014-08-30 15:53   ` Benoît Canet
2014-08-30 16:02     ` Richard W.M. Jones
2014-08-30 16:04       ` Richard W.M. Jones
2014-08-30 17:22         ` Benoît Canet
2014-08-30 21:50           ` Benoît Canet
2014-08-30 16:51       ` Benoît Canet
2014-08-31 20:03       ` Andy Grover
2014-08-31 20:38         ` Benoît Canet
2014-09-01  8:32           ` Paolo Bonzini [this message]
2014-09-01  8:08         ` Paolo Bonzini
2014-09-02  9:25 ` Stefan Hajnoczi
2014-09-03  0:20   ` Andy Grover
2014-09-03  7:34     ` Paolo Bonzini
2014-09-03 13:11     ` Stefan Hajnoczi
2014-09-04 13:24       ` Benoît Canet
2014-09-04 15:15         ` Andy Grover
2014-09-04 15:59           ` Benoît Canet
2014-09-04 20:16           ` Stefan Hajnoczi

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=54042F29.6030102@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=agrover@redhat.com \
    --cc=benoit.canet@irqsave.net \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rjones@redhat.com \
    --cc=stefanha@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).