[Qemu-devel] [PATCH v5 19/48] ivshmem: print error on invalid peer id

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau The server shouldn't send invalid peer id, so print an error if it's the case. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index d7a00bd..6

[Qemu-devel] [PATCH v5 29/48] ivshmem: error on too many eventfd received

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau The number of eventfd that can be handled per peer is limited by the number of vectors. Return an error when receiving too many of them. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 8 1 file changed, 8 insertions(+) d

[Qemu-devel] [PATCH v5 15/48] ivshmem: initialize max_peer to -1

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau There is no peer when device is initialized, do not let doorbell for inexisting peer 0. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/mi

[Qemu-devel] [PATCH v5 21/48] ivshmem: use common return

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Both if branches return, move this out to common end. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index c054e52..fbb6f40

[Qemu-devel] [PATCH v5 28/48] ivshmem: replace 'guest' for 'peer' appropriately

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau The terms 'guest' and 'peer' are used sometime interchangeably which may be confusing. Instead, use 'peer' for the remote instances of ivshmem clients, and 'guest' for the local VM. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 2

[Qemu-devel] [PATCH v5 16/48] ivshmem: remove max_peer field

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau max_peer isn't really useful, it tracks the maximum received VM id, but that quickly matches nb_peers, the size of the peers array. Since VM come and go, there might be sparse peers so it doesn't help much in general to have this value around. Signed-off-by: Marc-André Lu

[Qemu-devel] [PATCH v5 32/48] ivshmem-client: check the number of vectors

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Check the number of vectors received from the server, to avoid out of bound array access. Signed-off-by: Marc-André Lureau --- contrib/ivshmem-client/ivshmem-client.c | 5 + 1 file changed, 5 insertions(+) diff --git a/contrib/ivshmem-client/ivshmem-client.c b/con

[Qemu-devel] [PATCH v5 23/48] ivshmem: migrate with VMStateDescription

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau load_state_old() is used to keep compatibility with version 0. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 142 ++ 1 file changed, 89 insertions(+), 53 deletions(-) diff --gi

[Qemu-devel] [PATCH v5 36/48] ivshmem: add check on protocol version in QEMU

2015-10-02 Thread marcandre . lureau
From: David Marchand Send a protocol version as the first message from server, clients must close communication if they don't support this protocol version. Older QEMUs should be fine with this change in the protocol since they overrides their own vm_id on reception of an id associated to no eve

[Qemu-devel] [PATCH v5 20/48] ivshmem: simplify a bit the code

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Use some more explicit variables to simplify the code. Signed-off-by: Marc-André Lureau --- hw/misc/ivshmem.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 6ee4881..c054e52

[Qemu-devel] [PATCH v5 24/48] ivshmem: shmfd can be 0

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau 0 is a valid fd value, so change conditions and set -1 value early Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index

[Qemu-devel] [PATCH v5 35/48] docs: update ivshmem device spec

2015-10-02 Thread marcandre . lureau
From: David Marchand Add some notes on the parts needed to use ivshmem devices: more specifically, explain the purpose of an ivshmem server and the basic concept to use the ivshmem devices in guests. Move some parts of the documentation and re-organise it. Signed-off-by: David Marchand Reviewed

[Qemu-devel] [PATCH v5 41/48] tests: add ivshmem qtest

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Adds 4 ivshmemtests: - single qemu instance and basic IO - pair of instances, check memory sharing - pair of instances with server, and MSIX - hot plug/unplug A temporary shm is created as well as a directory to place server socket, both should be clear on exit and abort.

[Qemu-devel] [PATCH v5 39/48] qtest: add qtest_add_abrt_handler()

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Allow a test to add abort handlers, use GHook for all handlers. There is currently no way to remove a handler, but it could be later added if needed. Signed-off-by: Marc-André Lureau --- tests/libqtest.c | 37 - tests/libqtest.h | 2

[Qemu-devel] [PATCH v5 26/48] ivshmem: add device description

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 9023f95..7be3d5e 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -925,6 +925,7 @

[Qemu-devel] [PATCH v5 25/48] ivshmem: check shm isn't already initialized

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau The server should not change the shm, and this isn't handled by qemu and we should should verify this in qemu. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/hw/misc/ivshmem.

[Qemu-devel] [PATCH v5 30/48] ivshmem: reset mask on device reset

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau The interrupt mask is a state value, it should be reset, like the interrupt status. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 50af4

[Qemu-devel] [PATCH v5 42/48] ivshmem: do not keep shm_fd open

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Remove shm_fd from device state, closing it as early as possible to avoid leaks. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 16 +--- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/hw/misc/ivshmem.c

[Qemu-devel] [PATCH v5 33/48] ivshmem-server: use a uint16 for client ID

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau In practice, the number of VM is limited to MAXUINT16 in ivshmem, so use the same limit on the server (removes a theorical infinite loop) Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- contrib/ivshmem-server/ivshmem-server.c | 11 ++- contrib

[Qemu-devel] [PATCH v5 34/48] ivshmem-server: fix hugetlbfs support

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau As pointed out on the ML by Andrew Jones, glibc no longer permits creating POSIX shm on hugetlbfs directly. When given a hugetlbfs path, create a shareable file there. Signed-off-by: Marc-André Lureau Reviewed-by: Vladimir Sementsov-Ogievskiy --- contrib/ivshmem-server

[Qemu-devel] [PATCH v5 48/48] ivshmem: use little-endian int64_t for the protocol

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau The current ivshmem protocol uses 'long' for integers. But the sizeof(long) depends on the host and the endianess is not defined, which may cause portability troubles. Instead, switch to using little-endian int64_t. This breaks the protocol, except on x64 little-endian ho

[Qemu-devel] [PATCH v5 37/48] contrib: remove unnecessary strdup()

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau getopt() optarg points to argv memory, no need to dup those values, fixes small leaks detected by clang-analyzer. Signed-off-by: Marc-André Lureau Reviewed-by: Vladimir Sementsov-Ogievskiy --- contrib/ivshmem-client/main.c | 2 +- contrib/ivshmem-server/main.c | 6 +++-

[Qemu-devel] [PATCH v5 38/48] msix: implement pba write (but read-only)

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau qpci_msix_pending() writes on pba region, causing qemu to SEGV: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x77fba8c0 (LWP 25882)] 0x in ?? () (gdb) bt #0 0x in () #1 0x556556c5 in m

[Qemu-devel] [PATCH v5 31/48] contrib: add ivshmem client and server

2015-10-02 Thread marcandre . lureau
From: David Marchand When using ivshmem devices, notifications between guests can be sent as interrupts using a ivshmem-server (typical use described in documentation). The client is provided as a debug tool. Signed-off-by: Olivier Matz Signed-off-by: David Marchand [fix a valgrind warning, op

[Qemu-devel] [PATCH v5 40/48] glib-compat: add 2.38/2.40/2.46 asserts

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Those are mostly useful for writing tests. Signed-off-by: Marc-André Lureau --- include/glib-compat.h | 61 +++ 1 file changed, 61 insertions(+) diff --git a/include/glib-compat.h b/include/glib-compat.h index 318e000..fb

[Qemu-devel] [PATCH v5 46/48] ivshmem: rename MSI eventfd_table

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau The array is used to have vector specific data, so use a more descriptive name. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/hw/misc/ivshmem.c

[Qemu-devel] [PATCH v5 43/48] ivshmem: use qemu_strtosz()

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Use the common qemu utility function to parse the memory size. Signed-off-by: Marc-André Lureau --- hw/misc/ivshmem.c | 36 +--- 1 file changed, 5 insertions(+), 31 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index b8

[Qemu-devel] [PATCH v5 45/48] ivshmem: remove EventfdEntry.vector

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau No need to store an extra int for the vector number when it can be computed easily by looking at the position in the array. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 8 1 file changed, 4 insertions(+), 4 deletions(-)

[Qemu-devel] [PATCH v5 44/48] ivshmem: add hostmem backend

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Instead of handling allocation, teach ivshmem to use a memory backend. This allows to use hugetlbfs backed memory now. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c| 84 +--- test

[Qemu-devel] [PATCH v5 47/48] ivshmem: use kvm irqfd for msi notifications

2015-10-02 Thread marcandre . lureau
From: Marc-André Lureau Use irqfd for improving context switch when notifying the guest. If the host doesn't support kvm irqfd, regular msi notifications are still supported. Note: the ivshmem implementation doesn't allow switching between MSI and IO interrupts, this patch doesn't either. Signe

[Qemu-devel] [PULL 02/48] msix: add VMSTATE_MSIX_TEST

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau ivshmem is going to use MSIX state conditionally. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- include/hw/pci/msix.h | 16 ++-- 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/include/hw/pci/msix.h b/include/hw/pci/msix.h

[Qemu-devel] [PULL 00/48] ivshmem series

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau The following changes since commit 5fdb4671b08e0d1631447e81348b2b50a6b85bf7: Merge remote-tracking branch 'remotes/ehabkost/tags/x86-pull-request' into staging (2015-10-06 13:42:33 +0100) are available in the git repository at: https://github.com/elmarco/qemu tags/

[Qemu-devel] [PULL 14/48] ivshmem: remove useless ivshmem_update_irq() val argument

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau val isn't used in ivshmem_update_irq() function. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 19640bb..374ecff

[Qemu-devel] [PULL 04/48] ivshmem: fix number of bytes to push to fifo

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau If the fifo has 0 bytes, and the read is of size 1, the call to fifo8_push_all() will copy off boundary data. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/misc

[Qemu-devel] [PULL 15/48] ivshmem: initialize max_peer to -1

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau There is no peer when device is initialized, do not let doorbell for inexisting peer 0. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/mi

[Qemu-devel] [PULL 26/48] ivshmem: add device description

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 9023f95..7be3d5e 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -925,6 +925,7 @

[Qemu-devel] [PULL 05/48] ivshmem: factor out the incoming fifo handling

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Make a new function fifo_update_and_get() that can be reused by other functions (in next commits). Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 59 --- 1 file changed, 39 inser

[Qemu-devel] [PULL 07/48] ivshmem: remove superflous ivshmem_attr field

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 16 +++- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index fbeb731..7138b8d 100644 --- a/hw/misc/ivshmem.c +++ b/hw/

[Qemu-devel] [PULL 27/48] ivshmem: fix pci_ivshmem_exit()

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Free all objects owned by the device, making sure the device is free, fixing hot-unplug. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 38 +++--- 1 file changed, 35 insertions(+), 3 deletions(-) d

[Qemu-devel] [PULL 24/48] ivshmem: shmfd can be 0

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau 0 is a valid fd value, so change conditions and set -1 value early Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index

[Qemu-devel] [PULL 03/48] ivhsmem: read do not accept more than sizeof(long)

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau ivshmem_read() only reads sizeof(long) from the input buffer. Accepting more could lead to fifo8 abort() on 32bit systems if fifo is not empty. A following patch will change the protocol to 64-bit little-endian instead. Signed-off-by: Marc-André Lureau Reviewed-by: Cla

[Qemu-devel] [PULL 12/48] ivshmem: simplify around increase_dynamic_storage()

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Set the number of peers and array allocation in a single place. Rename to better reflect the function content. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 27 +++ 1 file changed, 11 insertions(+), 16 del

[Qemu-devel] [PULL 46/48] ivshmem: rename MSI eventfd_table

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau The array is used to have vector specific data, so use a more descriptive name. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/hw/misc/ivshmem.c

[Qemu-devel] [PULL 18/48] ivshmem: improve error handling

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau The test whether the chardev is an AF_UNIX socket rejects "-chardev socket,id=chr0,path=/tmp/foo,server,nowait -device ivshmem,chardev=chr0", but fails to explain why. Use an explicit error on why a chardev may be rejected. Signed-off-by: Marc-André Lureau Reviewed-by:

[Qemu-devel] [PULL 25/48] ivshmem: check shm isn't already initialized

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau The server should not change the shm, and this isn't handled by qemu and we should should verify this in qemu. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/hw/misc/ivshmem.

[Qemu-devel] [PULL 45/48] ivshmem: remove EventfdEntry.vector

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau No need to store an extra int for the vector number when it can be computed easily by looking at the position in the array. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 8 1 file changed, 4 insertions(+), 4 deletions(-)

[Qemu-devel] [PULL 33/48] ivshmem-server: use a uint16 for client ID

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau In practice, the number of VM is limited to MAXUINT16 in ivshmem, so use the same limit on the server (removes a theorical infinite loop) Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- contrib/ivshmem-server/ivshmem-server.c | 11 ++- contrib

[Qemu-devel] [PULL 39/48] qtest: add qtest_add_abrt_handler()

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Allow a test to add abort handlers, use GHook for all handlers. There is currently no way to remove a handler, but it could be later added if needed. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- tests/libqtest.c | 37 --

[Qemu-devel] [PULL 17/48] ivshmem: improve debug messages

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Some misc improvements to ivshmem debug. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 10 +++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index c4c130d..50f9c8f 1006

[Qemu-devel] [PULL 37/48] contrib: remove unnecessary strdup()

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau getopt() optarg points to argv memory, no need to dup those values, fixes small leaks detected by clang-analyzer. Signed-off-by: Marc-André Lureau Reviewed-by: Vladimir Sementsov-Ogievskiy --- contrib/ivshmem-client/main.c | 2 +- contrib/ivshmem-server/main.c | 6 +++-

[Qemu-devel] [PULL 21/48] ivshmem: use common return

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Both if branches return, move this out to common end. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index c054e52..fbb6f40

[Qemu-devel] [PULL 28/48] ivshmem: replace 'guest' for 'peer' appropriately

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau The terms 'guest' and 'peer' are used sometime interchangeably which may be confusing. Instead, use 'peer' for the remote instances of ivshmem clients, and 'guest' for the local VM. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 2

[Qemu-devel] [PULL 44/48] ivshmem: add hostmem backend

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Instead of handling allocation, teach ivshmem to use a memory backend. This allows to use hugetlbfs backed memory now. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c| 84 +--- test

[Qemu-devel] [PULL 43/48] ivshmem: use qemu_strtosz()

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Use the common qemu utility function to parse the memory size. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 36 +--- 1 file changed, 5 insertions(+), 31 deletions(-) diff --git a/hw/misc/ivshmem.

[Qemu-devel] [PULL 47/48] ivshmem: use kvm irqfd for msi notifications

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Use irqfd for improving context switch when notifying the guest. If the host doesn't support kvm irqfd, regular msi notifications are still supported. Note: the ivshmem implementation doesn't allow switching between MSI and IO interrupts, this patch doesn't either. Signe

[Qemu-devel] [PULL 09/48] ivshmem: more qdev conversion

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Use the latest qemu device modeling API, in particular, convert to realize to fix the error handling; right now a botched device_add ivhsmem command kills the VM. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 119

[Qemu-devel] [PULL 41/48] tests: add ivshmem qtest

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Adds 4 ivshmemtests: - single qemu instance and basic IO - pair of instances, check memory sharing - pair of instances with server, and MSIX - hot plug/unplug A temporary shm is created as well as a directory to place server socket, both should be clear on exit and abort.

[Qemu-devel] [PULL 29/48] ivshmem: error on too many eventfd received

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau The number of eventfd that can be handled per peer is limited by the number of vectors. Return an error when receiving too many of them. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 8 1 file changed, 8 insertions(+) d

[Qemu-devel] [PULL 38/48] msix: implement pba write (but read-only)

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau qpci_msix_pending() writes on pba region, causing qemu to SEGV: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x77fba8c0 (LWP 25882)] 0x in ?? () (gdb) bt #0 0x in () #1 0x556556c5 in m

[Qemu-devel] [PULL 23/48] ivshmem: migrate with VMStateDescription

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau load_state_old() is used to keep compatibility with version 0. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 142 ++ 1 file changed, 89 insertions(+), 53 deletions(-) diff --gi

[Qemu-devel] [PULL 01/48] char: add qemu_chr_free()

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau If a chardev is allowed to be created outside of QMP, then it must be also possible to free it. This is useful for ivshmem that creates chardev anonymously and must be able to free them. Signed-off-by: Marc-André Lureau Acked-by: Paolo Bonzini Reviewed-by: Claudio Fonta

[Qemu-devel] [PULL 19/48] ivshmem: print error on invalid peer id

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau The server shouldn't send invalid peer id, so print an error if it's the case. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index d7a00bd..6

[Qemu-devel] [PULL 31/48] contrib: add ivshmem client and server

2015-10-06 Thread marcandre . lureau
From: David Marchand When using ivshmem devices, notifications between guests can be sent as interrupts using a ivshmem-server (typical use described in documentation). The client is provided as a debug tool. Signed-off-by: Olivier Matz Signed-off-by: David Marchand [fix a valgrind warning, op

[Qemu-devel] [PULL 48/48] ivshmem: use little-endian int64_t for the protocol

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau The current ivshmem protocol uses 'long' for integers. But the sizeof(long) depends on the host and the endianess is not defined, which may cause portability troubles. Instead, switch to using little-endian int64_t. This breaks the protocol, except on x64 little-endian ho

[Qemu-devel] [PULL 35/48] docs: update ivshmem device spec

2015-10-06 Thread marcandre . lureau
From: David Marchand Add some notes on the parts needed to use ivshmem devices: more specifically, explain the purpose of an ivshmem server and the basic concept to use the ivshmem devices in guests. Move some parts of the documentation and re-organise it. Signed-off-by: David Marchand Reviewed

[Qemu-devel] [PULL 40/48] glib-compat: add 2.38/2.40/2.46 asserts

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Those are mostly useful for writing tests. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- include/glib-compat.h | 61 +++ 1 file changed, 61 insertions(+) diff --git a/include/glib-compat.h b/include/g

[Qemu-devel] [PULL 08/48] ivshmem: remove useless doorbell field

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 7138b8d..dea4096 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -71,7 +71,6 @@ t

[Qemu-devel] [PULL 34/48] ivshmem-server: fix hugetlbfs support

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau As pointed out on the ML by Andrew Jones, glibc no longer permits creating POSIX shm on hugetlbfs directly. When given a hugetlbfs path, create a shareable file there. Signed-off-by: Marc-André Lureau Reviewed-by: Vladimir Sementsov-Ogievskiy --- contrib/ivshmem-server

[Qemu-devel] [PULL 20/48] ivshmem: simplify a bit the code

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Use some more explicit variables to simplify the code. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivs

[Qemu-devel] [PULL 22/48] ivshmem: use common is_power_of_2()

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau The common version correctly checks for 0 value case. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index fbb6f40..e678b

[Qemu-devel] [PULL 11/48] ivshmem: limit maximum number of peers to G_MAXUINT16

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Limit the maximum number of peers to MAXUINT16. This is more realistic and better matches the limit of the doorbell register. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)

[Qemu-devel] [PULL 06/48] ivshmem: remove unnecessary dup()

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau qemu_chr_fe_get_msgfd() transfers ownership, there is no need to dup the fd. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 21 ++--- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/hw/misc/ivshmem.c

[Qemu-devel] [PULL 32/48] ivshmem-client: check the number of vectors

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Check the number of vectors received from the server, to avoid out of bound array access. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- contrib/ivshmem-client/ivshmem-client.c | 5 + 1 file changed, 5 insertions(+) diff --git a/contrib/ivshmem-

[Qemu-devel] [PULL 42/48] ivshmem: do not keep shm_fd open

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Remove shm_fd from device state, closing it as early as possible to avoid leaks. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 16 +--- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/hw/misc/ivshmem.c

[Qemu-devel] [PULL 10/48] ivshmem: remove last exit(1)

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau Failing to create a chardev shouldn't be fatal. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 62547c0..e7224b9 100644 -

[Qemu-devel] [PULL 13/48] ivshmem: allocate eventfds in resize_peers()

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau It simplifies a bit the code to allocate the array when setting the number of peers instead of lazily when receiving the first vector. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 11 ++- 1 file changed, 2 insertions(+),

[Qemu-devel] [PULL 16/48] ivshmem: remove max_peer field

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau max_peer isn't really useful, it tracks the maximum received VM id, but that quickly matches nb_peers, the size of the peers array. Since VM come and go, there might be sparse peers so it doesn't help much in general to have this value around. Signed-off-by: Marc-André Lu

[Qemu-devel] [PULL 30/48] ivshmem: reset mask on device reset

2015-10-06 Thread marcandre . lureau
From: Marc-André Lureau The interrupt mask is a state value, it should be reset, like the interrupt status. Signed-off-by: Marc-André Lureau Reviewed-by: Claudio Fontana --- hw/misc/ivshmem.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 50af4

[Qemu-devel] [PULL 36/48] ivshmem: add check on protocol version in QEMU

2015-10-06 Thread marcandre . lureau
From: David Marchand Send a protocol version as the first message from server, clients must close communication if they don't support this protocol version. Older QEMUs should be fine with this change in the protocol since they overrides their own vm_id on reception of an id associated to no eve

[Qemu-devel] [PATCH] doc: document ivshmem & hugepages

2015-10-07 Thread marcandre . lureau
From: Marc-André Lureau Document and give some examples of hugepages support with ivshmem device and server. Signed-off-by: Marc-André Lureau --- qemu-doc.texi | 13 + 1 file changed, 13 insertions(+) diff --git a/qemu-doc.texi b/qemu-doc.texi index afa2263..b15c14c 100644 --- a/q

[Qemu-devel] [PATCH v8 07/27] util: add fallback for qemu_memfd_alloc()

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Add an open/unlink/mmap fallback for system that do not support memfd (only available since 3.17, ~1y ago). This patch may require additional SELinux policies to work for enforced systems, but should fail gracefully in this case. Signed-off-by: Marc-André Lureau --- ut

[Qemu-devel] [PATCH v8 16/27] net: add trace_vhost_user_event

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Replace error_report() and use tracing instead. It's not an error to get a connection or a disconnection, so silence this and trace it instead. Signed-off-by: Marc-André Lureau --- net/vhost-user.c | 4 ++-- trace-events | 3 +++ 2 files changed, 5 insertions(+), 2

[Qemu-devel] [PATCH v8 26/27] vhost-user-test: check ownership during migration

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Check that backend source and destination do not have simultaneous ownership during migration. Signed-off-by: Marc-André Lureau --- tests/vhost-user-test.c | 38 ++ 1 file changed, 38 insertions(+) diff --git a/tests/vhost-user-test.

[Qemu-devel] [PATCH v8 01/27] exec: factor out duplicate mmap code

2015-10-09 Thread marcandre . lureau
From: "Michael S. Tsirkin" Anonymous and file-backed RAM allocation are now almost exactly the same. Reduce code duplication by moving RAM mmap code out of oslib-posix.c and exec.c. Signed-off-by: Michael S. Tsirkin Reviewed-by: Paolo Bonzini Acked-by: Paolo Bonzini --- exec.c

[Qemu-devel] [PATCH v8 06/27] util: add memfd helpers

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Add qemu_memfd_alloc/free() helpers. The function helps to allocate and seal shared memory. Signed-off-by: Marc-André Lureau --- include/qemu/memfd.h | 4 +++ util/memfd.c | 72 +++- 2 files changed, 75 insertion

[Qemu-devel] [PATCH v8 09/27] vhost: add vhost_set_log_base op

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Split VHOST_SET_LOG_BASE call in a seperate function callback, so that type safety works and more arguments can be added in the next patches. Signed-off-by: Marc-André Lureau --- hw/virtio/vhost-backend.c | 8 hw/virtio/vhost-user.c| 17 +++

[Qemu-devel] [PATCH v8 03/27] linux-headers: add unistd.h

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau New syscalls are not yet widely distributed. Add them to qemu linux-headers include directory. Update based on v4.3-rc3 kernel headers. Exclude mips for now, which is more problematic due to extra header inclusion and probably unnecessary here. Signed-off-by: Marc-André

[Qemu-devel] [PATCH v8 12/27] vhost-user: send log shm fd along with log_base

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Send the shm for the dirty pages logging if the backend supports VHOST_USER_PROTOCOL_F_LOG_SHMFD. Wait for a reply to make sure the old log is no longer used. Signed-off-by: Marc-André Lureau --- hw/virtio/vhost-backend.c | 3 ++- hw/virtio/vhost-user.c

[Qemu-devel] [PATCH v8 18/27] vhost user: add rarp sending after live migration for legacy guest

2015-10-09 Thread marcandre . lureau
From: Thibaut Collet A new vhost user message is added to allow QEMU to ask to vhost user backend to broadcast a fake RARP after live migration for guest without GUEST_ANNOUNCE capability. This new message is sent only if the backend supports the new VHOST_USER_PROTOCOL_F_RARP protocol feature.

[Qemu-devel] [PATCH v8 15/27] vhost-user: document migration log

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Signed-off-by: Marc-André Lureau --- docs/specs/vhost-user.txt | 48 +-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/docs/specs/vhost-user.txt b/docs/specs/vhost-user.txt index 4eadad1..e0292a0 100644 --- a/d

[Qemu-devel] [PATCH v8 23/27] vhost-user-test: wrap server in TestServer struct

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau In the coming patches, a test will use several servers simultaneously. Wrap the server in a struct, out of the global scope. Signed-off-by: Marc-André Lureau --- tests/vhost-user-test.c | 139 +++- 1 file changed, 89 insertion

[Qemu-devel] [PATCH v8 20/27] vhost: add migration block if memfd failed

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Signed-off-by: Marc-André Lureau --- hw/virtio/vhost.c| 3 +++ include/qemu/memfd.h | 2 ++ util/memfd.c | 22 ++ 3 files changed, 27 insertions(+) diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index 1e8ee76..eaf8117 100644 --- a/h

[Qemu-devel] [PATCH v8 19/27] vhost-user: use an enum helper for features mask

2015-10-09 Thread marcandre . lureau
From: Thibaut Collet The VHOST_USER_PROTOCOL_FEATURE_MASK will be automatically updated when adding new features to the enum. Signed-off-by: Thibaut Collet [Adapted from mailing list discussion - Marc-André] Signed-off-by: Marc-André Lureau --- hw/virtio/vhost-user.c | 13 + 1 fil

[Qemu-devel] [PATCH v8 21/27] vhost-user-test: move wait_for_fds() out

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau This function is a precondition for most vhost-user tests. Signed-off-by: Marc-André Lureau --- tests/vhost-user-test.c | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c index 56df5c

[Qemu-devel] [PATCH v8 02/27] configure: probe for memfd

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Check if memfd_create() is part of system libc. Signed-off-by: Marc-André Lureau --- configure | 19 +++ 1 file changed, 19 insertions(+) diff --git a/configure b/configure index 2d2a498..a68863c 100755 --- a/configure +++ b/configure @@ -3486,6 +3486,2

[Qemu-devel] [PATCH v8 25/27] vhost-user-test: add live-migration test

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau This test checks that the log fd is given to the migration source, and mark dirty pages during migration. Signed-off-by: Marc-André Lureau --- tests/vhost-user-test.c | 171 +++- 1 file changed, 169 insertions(+), 2 deletions(

[Qemu-devel] [PATCH v8 27/27] seccomp: add memfd_create to whitelist

2015-10-09 Thread marcandre . lureau
From: Eduardo Otubo This is used by memfd code. Signed-off-by: Eduardo Otubo Signed-off-by: Marc-André Lureau --- qemu-seccomp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qemu-seccomp.c b/qemu-seccomp.c index f9de0d3..80d034a 100644 --- a/qemu-seccomp.c +++ b/qemu-

[Qemu-devel] [PATCH v8 24/27] vhost-user-test: learn to tweak various qemu arguments

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Add a new macro to make the qemu command line with other values of memory size, and specific chardev id. Signed-off-by: Marc-André Lureau --- tests/vhost-user-test.c | 25 +++-- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/tests/vh

[Qemu-devel] [PATCH v8 17/27] vhost user: add support of live migration

2015-10-09 Thread marcandre . lureau
From: Thibaut Collet Some vhost user backends are able to support live migration. To provide this service the following features must be added: 1. Add the VIRTIO_NET_F_GUEST_ANNOUNCE capability to vhost-net when netdev backend is vhost-user. 2. Provide a nop receive callback to vhost-user.

[Qemu-devel] [PATCH v8 10/27] vhost-user: add vhost_user_requires_shm_log()

2015-10-09 Thread marcandre . lureau
From: Marc-André Lureau Check if the backend has VHOST_USER_PROTOCOL_F_LOG_SHMFD feature and require a shared log. Signed-off-by: Marc-André Lureau --- hw/virtio/vhost-user.c| 14 -- include/hw/virtio/vhost-backend.h | 4 2 files changed, 16 insertions(+), 2 delet

<    1   2   3   4   5   6   7   8   9   10   >