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.
next prev parent 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).