All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v5 0/7] dataplane: switch to N:M devices-per-thread model
@ 2014-02-28 15:18 Stefan Hajnoczi
  2014-02-28 15:18 ` [Qemu-devel] [PATCH v5 1/7] object: add object_get_canonical_basename() Stefan Hajnoczi
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Stefan Hajnoczi @ 2014-02-28 15:18 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Paolo Bonzini, Fam Zheng, Michael Roth, Igor Mammedov

v5:
 * Use Igor's get_pointer() malloc string patch [Igor]
 * Add object_get_canonical_basename() and use it for iothread_get_id() [Igor]

v4:
 * Rename qdev property to virtio-blk-pci,x-iothread= since we will switch to
   QOM links once object_property_add_link() is fixed [bonzini]

v3:
 * Fixed "Reliquinish" typo [fam]
 * Rebased onto qemu.git/master which now has Igor's -object improvements

v2:
 * Based off Igor's "-object/object-add support custom location and 2nd stage
   initialization" series
 * Dropped dedicated -iothread option in favor of -object
 * Avoid re-acquiring rfifo in iothread_run() [mdroth]

This series moves the event loop thread out of dataplane code.  It makes
-object iothread,id=foo a separate concept so several devices can be bound to
same iothread.

Syntax:

  qemu -object iothread,id=iothread0 \
       -device virtio-blk-pci,x-iothread=iothread0,x-data-plane=on,...

For backwards-compatibility the iothread= parameter can be omitted.  A
per-device IOThread will be created behind the scenes (just like the old 1:1
threading model).

This series includes the aio_context_acquire/release API which makes it easy to
synchronize access to AioContext across threads.

After this series I will send separate patches for a "query-iothreads" command
that returns thread IDs similar to "query-cpus".  This will allow binding
dataplane threads to host CPUs.

Igor Mammedov (1):
  qdev: make get_pointer() handle temporary strings

Stefan Hajnoczi (6):
  object: add object_get_canonical_basename()
  rfifolock: add recursive FIFO lock
  aio: add aio_context_acquire() and aio_context_release()
  iothread: add I/O thread object
  iothread: add "iothread" qdev property type
  dataplane: replace internal thread with IOThread

 Makefile.objs                    |   1 +
 async.c                          |  18 ++++++
 hw/block/dataplane/virtio-blk.c  |  96 +++++++++++++++++--------------
 hw/core/qdev-properties-system.c |  70 ++++++++++++++++++++---
 include/block/aio.h              |  18 ++++++
 include/hw/qdev-properties.h     |   3 +
 include/hw/virtio/virtio-blk.h   |   8 ++-
 include/qemu/rfifolock.h         |  54 ++++++++++++++++++
 include/qom/object.h             |   8 +++
 include/sysemu/iothread.h        |  30 ++++++++++
 iothread.c                       | 119 +++++++++++++++++++++++++++++++++++++++
 qom/object.c                     |  53 +++++++++--------
 tests/Makefile                   |   2 +
 tests/test-aio.c                 |  58 +++++++++++++++++++
 tests/test-rfifolock.c           |  90 +++++++++++++++++++++++++++++
 util/Makefile.objs               |   1 +
 util/rfifolock.c                 |  78 +++++++++++++++++++++++++
 17 files changed, 633 insertions(+), 74 deletions(-)
 create mode 100644 include/qemu/rfifolock.h
 create mode 100644 include/sysemu/iothread.h
 create mode 100644 iothread.c
 create mode 100644 tests/test-rfifolock.c
 create mode 100644 util/rfifolock.c

-- 
1.8.5.3

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

end of thread, other threads:[~2014-03-03 12:44 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-28 15:18 [Qemu-devel] [PATCH v5 0/7] dataplane: switch to N:M devices-per-thread model Stefan Hajnoczi
2014-02-28 15:18 ` [Qemu-devel] [PATCH v5 1/7] object: add object_get_canonical_basename() Stefan Hajnoczi
2014-02-28 17:15   ` Andreas Färber
2014-02-28 18:27     ` Igor Mammedov
2014-03-03  9:52     ` Stefan Hajnoczi
2014-02-28 15:18 ` [Qemu-devel] [PATCH v5 2/7] rfifolock: add recursive FIFO lock Stefan Hajnoczi
2014-02-28 15:18 ` [Qemu-devel] [PATCH v5 3/7] aio: add aio_context_acquire() and aio_context_release() Stefan Hajnoczi
2014-02-28 15:18 ` [Qemu-devel] [PATCH v5 4/7] iothread: add I/O thread object Stefan Hajnoczi
2014-02-28 15:18 ` [Qemu-devel] [PATCH v5 5/7] qdev: make get_pointer() handle temporary strings Stefan Hajnoczi
2014-02-28 16:49   ` Andreas Färber
2014-03-03  9:41     ` Stefan Hajnoczi
2014-03-03 12:43       ` Igor Mammedov
2014-02-28 15:18 ` [Qemu-devel] [PATCH v5 6/7] iothread: add "iothread" qdev property type Stefan Hajnoczi
2014-02-28 15:18 ` [Qemu-devel] [PATCH v5 7/7] dataplane: replace internal thread with IOThread Stefan Hajnoczi

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.