diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-11-12 15:15:30 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-11-12 15:25:40 +0000 |
commit | 8f0da01d189077647adf79618acc3832f77b7918 (patch) | |
tree | 7568fa8da4565837820094ed31c01307fa17d1af /tests | |
parent | 17e50a72a3aade0eddfebc012a5d7bdd40a03573 (diff) | |
parent | 4652f1640e029e1f2433fa77ba6af285c7cd923a (diff) | |
download | qemu-8f0da01d189077647adf79618acc3832f77b7918.zip qemu-8f0da01d189077647adf79618acc3832f77b7918.tar.gz qemu-8f0da01d189077647adf79618acc3832f77b7918.tar.bz2 |
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
virtio, vhost: fixes for 2.5
This fixes a performance regression with virtio 1,
and makes device stop/start more robust for vhost-user.
virtio devices on pcie bus now have pcie and pm
capability, as required by the PCI Express spec.
migration now works better with virtio 9p.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
# gpg: Signature made Thu 12 Nov 2015 14:40:42 GMT using RSA key ID D28D5469
# gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>"
# gpg: aka "Michael S. Tsirkin <mst@redhat.com>"
* remotes/mst/tags/for_upstream:
virtio-9p: add savem handlers
hw/virtio: Add PCIe capability to virtio devices
vhost: send SET_VRING_ENABLE at start/stop
vhost: rename RESET_DEVICE backto RESET_OWNER
vhost-user: modify SET_LOG_BASE to pass mmap size and offset
virtio-pci: unbreak queue_enable read
virtio-pci: introduce pio notification capability for modern device
virtio-pci: use zero length mmio eventfd for 1.0 notification cap when possible
KVM: add support for any length io eventfd
memory: don't try to adjust endianness for zero length eventfd
virtio-pci: fix 1.0 virtqueue migration
Conflicts:
include/hw/compat.h
[Fixed a trivial merge conflict in compat.h]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/vhost-user-bridge.c | 6 | ||||
-rw-r--r-- | tests/vhost-user-test.c | 12 |
2 files changed, 13 insertions, 5 deletions
diff --git a/tests/vhost-user-bridge.c b/tests/vhost-user-bridge.c index fa18ad5..864f69e 100644 --- a/tests/vhost-user-bridge.c +++ b/tests/vhost-user-bridge.c @@ -188,7 +188,7 @@ typedef enum VhostUserRequest { VHOST_USER_GET_FEATURES = 1, VHOST_USER_SET_FEATURES = 2, VHOST_USER_SET_OWNER = 3, - VHOST_USER_RESET_DEVICE = 4, + VHOST_USER_RESET_OWNER = 4, VHOST_USER_SET_MEM_TABLE = 5, VHOST_USER_SET_LOG_BASE = 6, VHOST_USER_SET_LOG_FD = 7, @@ -274,7 +274,7 @@ static const char *vubr_request_str[] = { [VHOST_USER_GET_FEATURES] = "VHOST_USER_GET_FEATURES", [VHOST_USER_SET_FEATURES] = "VHOST_USER_SET_FEATURES", [VHOST_USER_SET_OWNER] = "VHOST_USER_SET_OWNER", - [VHOST_USER_RESET_DEVICE] = "VHOST_USER_RESET_DEVICE", + [VHOST_USER_RESET_OWNER] = "VHOST_USER_RESET_OWNER", [VHOST_USER_SET_MEM_TABLE] = "VHOST_USER_SET_MEM_TABLE", [VHOST_USER_SET_LOG_BASE] = "VHOST_USER_SET_LOG_BASE", [VHOST_USER_SET_LOG_FD] = "VHOST_USER_SET_LOG_FD", @@ -921,7 +921,7 @@ vubr_execute_request(VubrDev *dev, VhostUserMsg *vmsg) return vubr_set_features_exec(dev, vmsg); case VHOST_USER_SET_OWNER: return vubr_set_owner_exec(dev, vmsg); - case VHOST_USER_RESET_DEVICE: + case VHOST_USER_RESET_OWNER: return vubr_reset_device_exec(dev, vmsg); case VHOST_USER_SET_MEM_TABLE: return vubr_set_mem_table_exec(dev, vmsg); diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c index b6dde75..01cfc7e 100644 --- a/tests/vhost-user-test.c +++ b/tests/vhost-user-test.c @@ -57,7 +57,7 @@ typedef enum VhostUserRequest { VHOST_USER_GET_FEATURES = 1, VHOST_USER_SET_FEATURES = 2, VHOST_USER_SET_OWNER = 3, - VHOST_USER_RESET_DEVICE = 4, + VHOST_USER_RESET_OWNER = 4, VHOST_USER_SET_MEM_TABLE = 5, VHOST_USER_SET_LOG_BASE = 6, VHOST_USER_SET_LOG_FD = 7, @@ -86,6 +86,11 @@ typedef struct VhostUserMemory { VhostUserMemoryRegion regions[VHOST_MEMORY_MAX_NREGIONS]; } VhostUserMemory; +typedef struct VhostUserLog { + uint64_t mmap_size; + uint64_t mmap_offset; +} VhostUserLog; + typedef struct VhostUserMsg { VhostUserRequest request; @@ -94,10 +99,13 @@ typedef struct VhostUserMsg { uint32_t flags; uint32_t size; /* the following payload size */ union { +#define VHOST_USER_VRING_IDX_MASK (0xff) +#define VHOST_USER_VRING_NOFD_MASK (0x1<<8) uint64_t u64; struct vhost_vring_state state; struct vhost_vring_addr addr; VhostUserMemory memory; + VhostUserLog log; } payload; } QEMU_PACKED VhostUserMsg; @@ -307,7 +315,7 @@ static void chr_read(void *opaque, const uint8_t *buf, int size) g_cond_signal(&s->data_cond); break; - case VHOST_USER_RESET_DEVICE: + case VHOST_USER_RESET_OWNER: s->fds_num = 0; break; |