<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bwlp/qemu.git/hw/dataplane, branch master</title>
<subtitle>Experimental fork of QEMU with video encoding patches</subtitle>
<id>https://git.openslx.org/bwlp/qemu.git/atom/hw/dataplane?h=master</id>
<link rel='self' href='https://git.openslx.org/bwlp/qemu.git/atom/hw/dataplane?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/'/>
<updated>2013-04-08T16:13:12+00:00</updated>
<entry>
<title>hw: move virtio devices to hw/ subdirectories</title>
<updated>2013-04-08T16:13:12+00:00</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2013-02-05T11:42:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=6e7907468fd05b8a641a715ebb110fc1903a604e'/>
<id>urn:sha1:6e7907468fd05b8a641a715ebb110fc1903a604e</id>
<content type='text'>
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>hw: move headers to include/</title>
<updated>2013-04-08T16:13:10+00:00</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2013-02-05T16:06:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=0d09e41a51aa0752b1ce525ce084f7cd210e461b'/>
<id>urn:sha1:0d09e41a51aa0752b1ce525ce084f7cd210e461b</id>
<content type='text'>
Many of these should be cleaned up with proper qdev-/QOM-ification.
Right now there are many catch-all headers in include/hw/ARCH depending
on cpu.h, and this makes it necessary to compile these files per-target.
However, fixing this does not belong in these patches.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>dataplane: fix hang introduced by AioContext transition</title>
<updated>2013-03-15T15:07:51+00:00</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2013-03-13T14:14:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=485e3ce88e8af0e5311dd626f399b3a1e0846dd6'/>
<id>urn:sha1:485e3ce88e8af0e5311dd626f399b3a1e0846dd6</id>
<content type='text'>
The bug is that the EventNotifiers do have a NULL io_flush callback.
Because _none_ of the callbacks on the dataplane AioContext have such a
callback, aio_poll will simply do nothing.  Fixed by adding the callbacks:
the ioeventfd will always be polled (this can change in the future to
pause/resume the processing during live snapshots or similar operations);
the ioqueue will be polled if there are outstanding requests.

I must admit I have screwed up my testing somehow, because commit
2c20e71 does not work even if cherry-picked on top of 1.4.0, and this
patch fixes it there as well.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Signed-off-by: Stefan Hajnoczi &lt;stefanha@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'bonzini/hw-dirs' into staging</title>
<updated>2013-03-11T00:56:35+00:00</updated>
<author>
<name>Anthony Liguori</name>
</author>
<published>2013-03-11T00:39:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=6e72a00f909dcd093fbdd1faa2b3c8caa1697a6c'/>
<id>urn:sha1:6e72a00f909dcd093fbdd1faa2b3c8caa1697a6c</id>
<content type='text'>
* bonzini/hw-dirs:
  sh: move files referencing CPU to hw/sh4/
  ppc: move more files to hw/ppc
  ppc: move files referencing CPU to hw/ppc/
  m68k: move files referencing CPU to hw/m68k/
  i386: move files referencing CPU to hw/i386/
  arm: move files referencing CPU to hw/arm/
  hw: move boards and other isolated files to hw/ARCH
  ppc: express FDT dependency of pSeries and e500 boards via default-configs/
  build: always link device_tree.o into emulators if libfdt available
  hw: include hw header files with full paths
  ppc: do not use ../ in include files
  vt82c686: vt82c686 is not a PCI host bridge
  virtio-9p: remove PCI dependencies from hw/9pfs/
  virtio-9p: use CONFIG_VIRTFS, not CONFIG_LINUX
  hw: move device-hotplug.o to toplevel, compile it once
  hw: move qdev-monitor.o to toplevel directory
  hw: move fifo.[ch] to libqemuutil
  hw: move char backends to backends/

Conflicts:
	backends/baum.c
	backends/msmouse.c
	hw/a15mpcore.c
	hw/arm/Makefile.objs
	hw/arm/pic_cpu.c
	hw/dataplane/event-poll.c
	hw/dataplane/virtio-blk.c
	include/char/baum.h
	include/char/msmouse.h
	qemu-char.c
	vl.c

Resolve conflicts caused by header movements.

Signed-off-by: Anthony Liguori &lt;aliguori@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>dataplane: remove EventPoll in favor of AioContext</title>
<updated>2013-03-04T08:54:17+00:00</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2013-02-22T09:40:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=2c20e711de308cdebc91ae4b7a983396b56f1de0'/>
<id>urn:sha1:2c20e711de308cdebc91ae4b7a983396b56f1de0</id>
<content type='text'>
During the review of the dataplane code, the EventPoll API morphed itself
(not concidentially) into something very very similar to an AioContext.
Thus, it is trivial to convert virtio-blk-dataplane to use AioContext,
and a first baby step towards letting dataplane talk directly to the
QEMU block layer.

The only interesting note is the value-copy of EventNotifiers.  At least
in my opinion this is part of the EventNotifier API and is even portable
to Windows.  Of course, in this case you should not close the notifier's
underlying file descriptors or handle with event_notifier_cleanup.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Signed-off-by: Stefan Hajnoczi &lt;stefanha@redhat.com&gt;
</content>
</entry>
<entry>
<title>hw: include hw header files with full paths</title>
<updated>2013-03-01T14:01:17+00:00</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2013-02-04T14:40:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=83c9f4ca794ec3b6fa7e5a5bb055d378916503e0'/>
<id>urn:sha1:83c9f4ca794ec3b6fa7e5a5bb055d378916503e0</id>
<content type='text'>
Done with this script:

cd hw
for i in `find . -name '*.h' | sed 's/^..//'`; do
  echo '\,^#.*include.*["&lt;]'$i'["&gt;], s,'$i',hw/&amp;,'
done | sed -i -f - `find . -type f`

This is so that paths remain valid as files are moved.

Instead, files in hw/dataplane are referenced with the relative path.
We know they are not going to move to include/, and they are the only
include files that are in subdirectories _and_ move.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>hw: move qdev-monitor.o to toplevel directory</title>
<updated>2013-03-01T12:54:10+00:00</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2013-02-04T10:37:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=b4a42f81383d60900aae09513f42eb857a5a7c7c'/>
<id>urn:sha1:b4a42f81383d60900aae09513f42eb857a5a7c7c</id>
<content type='text'>
qdev-monitor.c is the only "core qdev" file that is not used in
user-mode emulation, and it does not define anything that is used
by hardware models.  Remove it from the hw/ directory and
remove hw/qdev-monitor.h from hw/qdev.h too; this requires
some files to have some new explicitly includes.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
</entry>
<entry>
<title>dataplane: avoid reentrancy during virtio_blk_data_plane_stop()</title>
<updated>2013-01-18T15:57:59+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
</author>
<published>2013-01-15T16:19:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=cd7fdfe59f4f965665dcd9868fe3764f5256d6aa'/>
<id>urn:sha1:cd7fdfe59f4f965665dcd9868fe3764f5256d6aa</id>
<content type='text'>
When dataplane is stopping, the s-&gt;vdev-&gt;binding-&gt;set_host_notifier(...,
false) call can invoke the virtqueue handler if an ioeventfd
notification is pending.  This causes hw/virtio-blk.c to invoke
virtio_blk_data_plane_start() before virtio_blk_data_plane_stop()
returns!

The result is that we try to restart dataplane while trying to stop it
and the following assertion is raised:

  msix_set_mask_notifier: Assertion `!dev-&gt;msix_mask_notifier' failed.

Although the code was intended to prevent this scenario, the s-&gt;started
boolean isn't enough.  Add s-&gt;stopping so that we can postpone clearing
s-&gt;started until we've completely stopped dataplane.

This way, virtqueue handler calls during virtio_blk_data_plane_stop()
are ignored.  When dataplane is legitimately started again later we
already self-kick ourselves to resume processing.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@redhat.com&gt;
</content>
</entry>
<entry>
<title>dataplane: fix build breakage on set_guest_notifiers()</title>
<updated>2013-01-14T19:36:12+00:00</updated>
<author>
<name>Michael Roth</name>
</author>
<published>2013-01-14T19:20:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=b8bec49cccbf8e34558371df60e7e64419c4fde9'/>
<id>urn:sha1:b8bec49cccbf8e34558371df60e7e64419c4fde9</id>
<content type='text'>
virtio_pci_set_guest_notifiers() now takes an additional argument to
specify the number of virtqueues to assign a guest notifier for. This
causes a build breakage for CONFIG_VIRTIO_BLK_DATA_PLANE builds:

/home/mdroth/w/qemu2.git/hw/dataplane/virtio-blk.c: In function
‘virtio_blk_data_plane_start’:
/home/mdroth/w/qemu2.git/hw/dataplane/virtio-blk.c:451:47: error: too
few arguments to function ‘s-&gt;vdev-&gt;binding-&gt;set_guest_notifiers’
/home/mdroth/w/qemu2.git/hw/dataplane/virtio-blk.c: In function
‘virtio_blk_data_plane_stop’:
/home/mdroth/w/qemu2.git/hw/dataplane/virtio-blk.c:511:5: error: too few
arguments to function ‘s-&gt;vdev-&gt;binding-&gt;set_guest_notifiers’
make[1]: *** [hw/dataplane/virtio-blk.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [subdir-x86_64-softmmu] Error 2

Fix this by passing 1 as the number of virtqueues to assign notifiers
for.

Signed-off-by: Michael Roth &lt;mdroth@linux.vnet.ibm.com&gt;
Signed-off-by: Anthony Liguori &lt;aliguori@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>dataplane: handle misaligned virtio-blk requests</title>
<updated>2013-01-14T09:06:57+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
</author>
<published>2013-01-11T15:41:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=de0161c0d553f2aaf6118ca87f978a5e6b4a9732'/>
<id>urn:sha1:de0161c0d553f2aaf6118ca87f978a5e6b4a9732</id>
<content type='text'>
O_DIRECT on Linux has alignment requirements on I/O buffers and
misaligned requests result in -EINVAL.  The Linux virtio_blk guest
driver usually submits aligned requests so I forgot to handle misaligned
requests.

It turns out that virtio-win guest drivers submit misaligned requests.
Handle them using a bounce buffer that meets alignment requirements.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@redhat.com&gt;
Signed-off-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
</content>
</entry>
</feed>
