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
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
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
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
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/
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
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
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
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
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:
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
-
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
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(-)
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
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
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
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
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
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(+),
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
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
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.
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
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 @
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-
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
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
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
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
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 +++-
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
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
From: Marc-André Lureau
Document and give some examples of hugepages support with ivshmem device
and server.
Signed-off-by: Marc-André Lureau
Reviewed-by: Eric Blake
---
qemu-doc.texi | 13 +
1 file changed, 13 insertions(+)
diff --git a/qemu-doc.texi b/qemu-doc.texi
index afa226
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
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.
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 --
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(-)
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.
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
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
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
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
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
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
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
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
From: Marc-André Lureau
The following changes since commit c49d3411faae8ffaab8f7e5db47405a008411c10:
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2015-10-12' into
staging (2015-10-13 10:42:06 +0100)
are available in the git repository at:
g...@github.com:elmarco/qemu.git ta
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
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
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
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
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:
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
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
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
-
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
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.
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
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(+),
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
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
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
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
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
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
From: Marc-André Lureau
Signed-off-by: Marc-André Lureau
---
include/qemu/event_notifier.h | 2 +-
util/event_notifier-posix.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/qemu/event_notifier.h b/include/qemu/event_notifier.h
index 88b57af..a8f2854 100644
---
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
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
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
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-
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
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
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
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
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
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 +++-
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
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 --
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
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
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
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.
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.
From: Marc-André Lureau
Document and give some examples of hugepages support with ivshmem device
and server.
Signed-off-by: Marc-André Lureau
Reviewed-by: Eric Blake
---
qemu-doc.texi | 13 +
1 file changed, 13 insertions(+)
diff --git a/qemu-doc.texi b/qemu-doc.texi
index afa226
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(-)
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
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
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
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
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 @
From: Andreas Färber
Note that it launches two instances, as sharing memory is the purpose of
ivshmem.
Cc: Cam Macdonell
Cc: Marc-André Lureau
Signed-off-by: Andreas Färber
[ Remove Nahanni codename, add test to pci set - Marc-André ]
Signed-off-by: Marc-André Lureau
---
tests/Makefile
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
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(-)
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
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
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/
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
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
From: Marc-André Lureau
Commit 7fe34ca9c2e actually disabled vhost-user-test altogether,
since CONFIG_VHOST_NET is a per-target config variable.
CONFIG_VHOST_NET_USED is the host config, actually unused since
1322629b4f2. But it was set whenever vhost_net was enabled.
tests/vhost-user-test is a
From: Marc-André Lureau
Commit 7fe34ca9c2e actually disabled vhost-user-test altogether,
since CONFIG_VHOST_NET is a per-target config variable.
tests/vhost-user-test is already x86/64 softmmu specific test, in order
to enable it correctly, kvm & vhost-net are also conditions. To check
that, set
301 - 400 of 3981 matches
Mail list logo