From: Anthony Liguori <aliguori@linux.vnet.ibm.com>
To: veillard@redhat.com
Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
qemu-devel@nongnu.org, Paul Brook <paul@codesourcery.com>,
Paulo Bonzini <pbonzini@redhat.com>,
Arun Bharadwaj <arun@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [RFC 0/7] Introduce hard dependency on glib
Date: Wed, 26 Jan 2011 09:53:40 -0600 [thread overview]
Message-ID: <4D404384.5080207@linux.vnet.ibm.com> (raw)
In-Reply-To: <20110126044710.GU9566@redhat.com>
On 01/25/2011 10:47 PM, Daniel Veillard wrote:
> On Mon, Jan 24, 2011 at 03:00:38PM -0600, Anthony Liguori wrote:
>
>> Both the recent I/O loop and threadlet series have me concerned that we're
>> digging ourselves deeper into the NIH hole. I think it's time we look at
>> something radical to let us borrow more code from existing projects instead of
>> reinventing everything through trial and error.
>>
>> This series introduces a hard dependency on glib. The initial use is portable
>> threads but I see this as just the beginning. Glib/Gobject offer many nice
>> things including:
>>
>> - portable threads
>> - rich data structure support
>> - INI parser
>> - JSON parser
>> - generic type system
>> - object oriented infrastructure
>> - IO library
>> - module system
>> - introspection to enable support for dynamic language bindings
>>
>> I see this series as the first step, followed by converting the I/O loop to
>> a GMainLoop instance. Once we're there, we can start making deeper use of
>> GObjects including converting QDev to a GObject hierarchy.
>>
> Hum, one of the reason I tried to avoid glib dependancies on my own
> libraries code is the behaviour on memory allocation error, unless that
> changed (unlikely) or my recollection is wrong (more likely) glib does
> a direct exit() on memory allocation errors. This might be fine for QEmu
> as a standalone program but may turn a disaster if standalone libraries
> are made out of it and expected for reuse say by libvirt(d).
>
We have independently done the same thing in QEMU and as such would face
the same "problem" either way.
Quite a debate could be had on the merits of this. For QEMU, we made
this decision for practical purposes. We did not handle malloc failures
consistently so adopting a consistent behavior eliminated the
possibility of NULL pointer dereferences which are exploitable.
Regards,
Anthony Liguori
> I just want to raise that point as it's a rather fundamental decision
> of the glib/Gnome stack, which was a fine decision to take in the context
> of writing GUI framework, but is really a poor one for implementing low level
> or server infrastructure,
>
> Daniel
>
>
next prev parent reply other threads:[~2011-01-26 15:53 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-24 21:00 [Qemu-devel] [RFC 0/7] Introduce hard dependency on glib Anthony Liguori
2011-01-24 21:00 ` [Qemu-devel] [PATCH 1/7] io-thread: make sure to initialize qemu_work_cond and qemu_cpu_cond Anthony Liguori
2011-02-08 8:53 ` [Qemu-devel] " Jan Kiszka
2011-02-08 9:01 ` Anthony Liguori
2011-01-24 21:00 ` [Qemu-devel] [PATCH 2/7] Enable I/O thread and VNC threads by default Anthony Liguori
2011-01-24 22:28 ` [Qemu-devel] " Anthony Liguori
2011-01-25 9:17 ` Edgar E. Iglesias
2011-01-25 13:34 ` Marcelo Tosatti
2011-02-07 10:12 ` Marcelo Tosatti
2011-02-07 16:03 ` Marcelo Tosatti
2011-02-07 16:23 ` Paolo Bonzini
2011-02-07 17:10 ` Jan Kiszka
2011-02-07 21:02 ` Anthony Liguori
2011-02-07 21:45 ` Aurelien Jarno
2011-02-08 2:09 ` Anthony Liguori
2011-02-08 7:26 ` Aurelien Jarno
2011-02-08 8:08 ` Paolo Bonzini
2011-02-08 8:50 ` Jan Kiszka
2011-02-08 9:05 ` Aurelien Jarno
2011-02-08 9:12 ` Anthony Liguori
2011-02-08 9:49 ` Paolo Bonzini
2011-02-08 9:51 ` Jan Kiszka
2011-02-08 9:58 ` Aurelien Jarno
2011-02-08 10:03 ` Jan Kiszka
2011-02-08 10:06 ` Aurelien Jarno
2011-02-08 10:16 ` Alexander Graf
2011-02-08 10:17 ` Stefan Hajnoczi
2011-02-08 10:27 ` Aurelien Jarno
2011-02-08 10:31 ` Paolo Bonzini
2011-02-08 10:40 ` Jan Kiszka
2011-02-08 18:05 ` Anthony Liguori
2011-02-08 11:29 ` Aurelien Jarno
2011-02-08 12:38 ` Riku Voipio
2011-02-08 10:21 ` Jan Kiszka
2011-02-08 10:26 ` Aurelien Jarno
2011-02-08 10:30 ` Jan Kiszka
2011-02-08 17:58 ` Anthony Liguori
2011-02-08 11:07 ` Tristan Gingold
2011-02-08 11:46 ` Aurelien Jarno
2011-02-08 12:07 ` Paolo Bonzini
2011-02-08 19:21 ` Anthony Liguori
2011-02-08 11:15 ` Aurelien Jarno
2011-02-08 12:10 ` Paolo Bonzini
2011-02-08 13:31 ` Aurelien Jarno
2011-02-08 15:08 ` Aurelien Jarno
2011-02-09 17:35 ` Aurelien Jarno
2011-02-09 20:07 ` Anthony Liguori
2011-02-11 0:03 ` Marcelo Tosatti
2011-02-08 19:17 ` Anthony Liguori
2011-02-08 13:30 ` Aurelien Jarno
2011-02-08 20:54 ` Anthony Liguori
2011-02-08 15:09 ` Aurelien Jarno
2011-02-09 17:13 ` Blue Swirl
2011-02-09 22:16 ` [Qemu-devel] " Stefan Weil
2011-02-10 7:34 ` Paolo Bonzini
2011-02-10 9:54 ` Paolo Bonzini
2011-02-10 19:46 ` Stefan Weil
2011-02-08 10:06 ` [Qemu-devel] " Paolo Bonzini
2011-02-07 18:35 ` Edgar E. Iglesias
2011-02-07 20:44 ` Aurelien Jarno
2011-02-07 21:30 ` Scott Wood
2011-02-07 20:47 ` Edgar E. Iglesias
2011-01-25 8:33 ` [Qemu-devel] [PATCH 0/2] vnc: the lost parts Corentin Chary
2011-01-25 8:33 ` [Qemu-devel] [PATCH 1/2] vl.c: set NULL upon deleting handlers in qemu_set_fd_handler2() Corentin Chary
2011-01-25 10:03 ` Stefan Hajnoczi
2011-01-25 10:13 ` Corentin Chary
2011-01-25 10:26 ` Stefan Hajnoczi
2011-01-25 12:05 ` Yoshiaki Tamura
2011-01-25 8:33 ` [Qemu-devel] [PATCH 2/2] vnc: qemu can die if the client is disconnected while updating screen Corentin Chary
2011-01-24 21:00 ` [Qemu-devel] [PATCH 3/7] Add support for glib based threading and convert qemu thread to use it Anthony Liguori
2011-01-25 14:24 ` Aurelien Jarno
2011-01-25 15:34 ` Anthony Liguori
2011-02-02 17:32 ` [Qemu-devel] " Paolo Bonzini
2011-02-02 17:35 ` Anthony Liguori
2011-01-24 21:00 ` [Qemu-devel] [PATCH 4/7] Get rid of QemuMutex and teach its callers about GStaticMutex Anthony Liguori
2011-01-24 22:24 ` [Qemu-devel] " Jan Kiszka
2011-01-25 0:02 ` Anthony Liguori
2011-01-25 7:39 ` Jan Kiszka
2011-01-24 21:00 ` [Qemu-devel] [PATCH 5/7] threads: get rid of QemuCond and teach callers about GCond Anthony Liguori
2011-01-24 21:00 ` [Qemu-devel] [PATCH 6/7] Teach vnc server to use GThread directly Anthony Liguori
2011-01-26 10:39 ` Stefan Hajnoczi
2011-01-24 21:00 ` [Qemu-devel] [PATCH 7/7] Rename QemuThread to QemuSThread to indicate that it is not a generic thread Anthony Liguori
2011-01-24 21:28 ` [Qemu-devel] Re: [RFC 0/7] Introduce hard dependency on glib Paolo Bonzini
2011-01-24 22:01 ` Anthony Liguori
2011-01-25 10:41 ` Paolo Bonzini
2011-01-25 11:14 ` Daniel P. Berrange
2011-01-25 11:21 ` Paolo Bonzini
2011-01-25 0:24 ` [Qemu-devel] " Anthony Liguori
2011-01-25 6:51 ` Edgar E. Iglesias
2011-01-25 10:24 ` Stefan Hajnoczi
2011-01-25 11:51 ` Gerd Hoffmann
2011-01-25 12:04 ` Daniel P. Berrange
2011-01-25 14:48 ` Stefano Stabellini
2011-01-25 17:48 ` Anthony Liguori
2011-01-25 18:12 ` Stefano Stabellini
2011-01-25 14:23 ` Aurelien Jarno
2011-01-25 15:35 ` Anthony Liguori
[not found] ` <20110126044710.GU9566@redhat.com>
2011-01-26 15:53 ` Anthony Liguori [this message]
2011-01-26 21:23 ` Stefan Hajnoczi
2011-01-26 22:12 ` Anthony Liguori
2011-01-26 17:48 ` Johannes Stezenbach
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=4D404384.5080207@linux.vnet.ibm.com \
--to=aliguori@linux.vnet.ibm.com \
--cc=arun@linux.vnet.ibm.com \
--cc=mtosatti@redhat.com \
--cc=paul@codesourcery.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@linux.vnet.ibm.com \
--cc=veillard@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 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.