Hi Marc Andre', On 15.09.2015 18:07, marcandre.lur...@redhat.com wrote: > From: Marc-André Lureau <marcandre.lur...@redhat.com> > > Hi, > > This series is mostly about adding the client/server code from David > Marchand, code cleanups, and little improvements and fixes for > ivshmem. Finally there is some ivshmem tests (they work fine without > kvm btw). > > The first two series didn't get much feedback, and the third series is > mostly untouched. The code is not complicated (hopefully), please > review, thanks!! :)
I'll give it a shot. Ciao Claudio > > Git: https://github.com/elmarco/qemu.git ivshmem branch > > v2->v3: > - add old migration fallback code > - split a few patches > - improve some commit messages > - drop a commit checking eventfd read value > > v1->v2: > - add support for hugepage shm (suggested by Andrew Jones) > - add irqfd for msix notification > > David Marchand (3): > contrib: add ivshmem client and server > docs: update ivshmem device spec > ivshmem: add check on protocol version in QEMU > > Marc-André Lureau (43): > char: add qemu_chr_free() > msix: add VMSTATE_MSIX_TEST > ivhsmem: read do not accept more than sizeof(long) > ivshmem: fix number of bytes to push to fifo > ivshmem: factor out the incoming fifo handling > ivshmem: remove unnecessary dup() > ivshmem: remove superflous ivshmem_attr field > ivshmem: remove useless doorbell field > ivshmem: more qdev conversion > ivshmem: remove last exit(1) > ivshmem: limit maximum number of peers to G_MAXUINT16 > ivshmem: simplify around increase_dynamic_storage() > ivshmem: allocate eventfds in resize_peers() > ivshmem: remove useless ivshmem_update_irq() val argument > ivshmem: initialize max_peer to -1 > ivshmem: remove max_peer field > ivshmem: improve debug messages > ivshmem: improve error > ivshmem: print error on invalid peer id > ivshmem: simplify a bit the code > ivshmem: use common return > ivshmem: use common is_power_of_2() > ivshmem: migrate with VMStateDescription > ivshmem: shmfd can be 0 > ivshmem: check shm isn't already initialized > ivshmem: add device description > ivshmem: fix pci_ivshmem_exit() > ivshmem: replace 'guest' for 'peer' appropriately > ivshmem: error on too many eventfd received > ivshmem: reset mask on device reset > ivshmem-client: check the number of vectors > ivshmem-server: use a uint16 for client ID > ivshmem-server: fix hugetlbfs support > contrib: remove unnecessary strdup() > msix: implement pba write (but read-only) > qtest: add qtest_add_abrt_handler() > tests: add ivshmem qtest > ivshmem: do not keep shm_fd open > ivshmem: make ivshmem_get_size() more generic > ivshmem: add hostmem backend > ivshmem: remove EventfdEntry.vector > ivshmem: rename MSI eventfd_table > ivshmem: use kvm irqfd for msi notifications > > Makefile | 8 + > configure | 3 + > contrib/ivshmem-client/ivshmem-client.c | 444 ++++++++++++++++++ > contrib/ivshmem-client/ivshmem-client.h | 213 +++++++++ > contrib/ivshmem-client/main.c | 239 ++++++++++ > contrib/ivshmem-server/ivshmem-server.c | 478 +++++++++++++++++++ > contrib/ivshmem-server/ivshmem-server.h | 166 +++++++ > contrib/ivshmem-server/main.c | 263 +++++++++++ > docs/specs/ivshmem_device_spec.txt | 127 +++-- > hw/misc/ivshmem.c | 801 > ++++++++++++++++++++++---------- > hw/pci/msix.c | 6 + > include/hw/misc/ivshmem.h | 25 + > include/hw/pci/msix.h | 16 +- > include/sysemu/char.h | 10 +- > qemu-char.c | 9 +- > qemu-doc.texi | 10 +- > tests/Makefile | 3 + > tests/ivshmem-test.c | 486 +++++++++++++++++++ > tests/libqtest.c | 37 +- > tests/libqtest.h | 2 + > 20 files changed, 3050 insertions(+), 296 deletions(-) > create mode 100644 contrib/ivshmem-client/ivshmem-client.c > create mode 100644 contrib/ivshmem-client/ivshmem-client.h > create mode 100644 contrib/ivshmem-client/main.c > create mode 100644 contrib/ivshmem-server/ivshmem-server.c > create mode 100644 contrib/ivshmem-server/ivshmem-server.h > create mode 100644 contrib/ivshmem-server/main.c > create mode 100644 include/hw/misc/ivshmem.h > create mode 100644 tests/ivshmem-test.c >