All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC 0/7] Introduce hard dependency on glib
@ 2011-01-24 21:00 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
                   ` (13 more replies)
  0 siblings, 14 replies; 101+ messages in thread
From: Anthony Liguori @ 2011-01-24 21:00 UTC (permalink / raw)
  To: qemu-devel
  Cc: Arun Bharadwaj, Marcelo Tosatti, Paul Brook, Paulo Bonzini,
	Stefan Hajnoczi

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.

I've spent the past few months working on C++ integration for QEMU.  I'm more
convinced than ever that we desperately in need of structured object oriented
mechanisms to be successful but am pretty strongly convinced that incremental
additional of C++ is not going to be successful.

On the other hand, while GObjects are uglier and require a lot of template code,
there's more than enough structure that I think it can guide us into a much
better object model implementation.

There is some ugliness.   GLib does not abstract signals because they're very
non-portable but QEMU makes extensive use of signaling.  I don't think it's
a major issue but some of the ugliness in this series is due to that fact.

This series is only lightly tested but also mostly mechanical.  I'm pretty
confused by the way tcg_halt_cond and friends works so I'm fairly sure I broke
that (for non-threaded TCG).

^ permalink raw reply	[flat|nested] 101+ messages in thread

end of thread, other threads:[~2011-02-11  0:04 UTC | newest]

Thread overview: 101+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
2011-01-26 21:23     ` Stefan Hajnoczi
2011-01-26 22:12       ` Anthony Liguori
2011-01-26 17:48 ` Johannes Stezenbach

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.