* [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements
@ 2015-06-17 19:38 Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 01/10] vhost-user: part of virtio Michael S. Tsirkin
` (10 more replies)
0 siblings, 11 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell
OK things seem to be calming down nicely.
Here's to an uneventful 2.4!
The following changes since commit 4ebc736e9938a7e88ecc785734b17145bf802a56:
i386/acpi-build: fix PXB workarounds for unsupported BIOSes (2015-06-11 12:40:30 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
for you to fetch changes up to e352ced61b6030232338de59fd3fc69633b0755b:
vhost: enable vhost without without MSI-X (2015-06-17 21:27:40 +0200)
----------------------------------------------------------------
virtio, pci fixes, enhancements
Most notably this includes virtio cross-endian patches.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
----------------------------------------------------------------
Cédric Le Goater (1):
vhost_net: re-enable when cross endian
Greg Kurz (5):
linux-headers: sync vhost.h
virtio: introduce virtio_legacy_is_cross_endian()
vhost: set vring endianness for legacy virtio
tap: add VNET_LE/VNET_BE operations
vhost-net: tell tap backend about the vnet endianness
Laszlo Ersek (1):
hw/core: rebase sysbus_get_fw_dev_path() to g_strdup_printf()
Michael S. Tsirkin (1):
vhost-user: part of virtio
Pankaj Gupta (1):
vhost: enable vhost without without MSI-X
Shmulik Ladkani (1):
pci: Don't register a specialized 'config_write' if default behavior is intended
include/hw/virtio/vhost.h | 3 +-
include/hw/virtio/virtio-access.h | 13 ++++++++
include/net/net.h | 6 ++++
include/net/vhost_net.h | 2 --
linux-headers/linux/vhost.h | 14 +++++++++
net/tap-linux.h | 2 ++
net/tap_int.h | 2 ++
hw/core/sysbus.c | 16 ++++------
hw/misc/ivshmem.c | 1 -
hw/net/vhost_net.c | 60 ++++++++++++++++++------------------
hw/net/virtio-net.c | 4 ---
hw/net/vmxnet3.c | 9 ------
hw/scsi/megasas.c | 8 -----
hw/scsi/vhost-scsi.c | 2 +-
hw/scsi/vmw_pvscsi.c | 8 -----
hw/virtio/vhost.c | 64 ++++++++++++++++++++++++++++++---------
net/net.c | 18 +++++++++++
net/tap-linux.c | 34 +++++++++++++++++++++
net/tap.c | 17 ++++++++++-
net/vhost-user.c | 1 -
MAINTAINERS | 1 +
21 files changed, 195 insertions(+), 90 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 01/10] vhost-user: part of virtio
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
@ 2015-06-17 19:38 ` Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 02/10] linux-headers: sync vhost.h Michael S. Tsirkin
` (9 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, Peter Maydell, Markus Armbruster, Stefan Hajnoczi,
Amit Shah, Paolo Bonzini
vhost user is related to virtio, add it to the relevant entry.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 0463696..7a13d68 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -694,6 +694,7 @@ virtio
M: Michael S. Tsirkin <mst@redhat.com>
S: Supported
F: hw/*/virtio*
+F: net/vhost-user.c
virtio-9p
M: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
--
MST
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 02/10] linux-headers: sync vhost.h
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 01/10] vhost-user: part of virtio Michael S. Tsirkin
@ 2015-06-17 19:38 ` Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 03/10] virtio: introduce virtio_legacy_is_cross_endian() Michael S. Tsirkin
` (8 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell
From: Greg Kurz <gkurz@linux.vnet.ibm.com>
This patch brings the cross-endian vhost API to QEMU.
Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
| 14 ++++++++++++++
1 file changed, 14 insertions(+)
--git a/linux-headers/linux/vhost.h b/linux-headers/linux/vhost.h
index c656f61..ead86db 100644
--- a/linux-headers/linux/vhost.h
+++ b/linux-headers/linux/vhost.h
@@ -103,6 +103,20 @@ struct vhost_memory {
/* Get accessor: reads index, writes value in num */
#define VHOST_GET_VRING_BASE _IOWR(VHOST_VIRTIO, 0x12, struct vhost_vring_state)
+/* Set the vring byte order in num. Valid values are VHOST_VRING_LITTLE_ENDIAN
+ * or VHOST_VRING_BIG_ENDIAN (other values return -EINVAL).
+ * The byte order cannot be changed while the device is active: trying to do so
+ * returns -EBUSY.
+ * This is a legacy only API that is simply ignored when VIRTIO_F_VERSION_1 is
+ * set.
+ * Not all kernel configurations support this ioctl, but all configurations that
+ * support SET also support GET.
+ */
+#define VHOST_VRING_LITTLE_ENDIAN 0
+#define VHOST_VRING_BIG_ENDIAN 1
+#define VHOST_SET_VRING_ENDIAN _IOW(VHOST_VIRTIO, 0x13, struct vhost_vring_state)
+#define VHOST_GET_VRING_ENDIAN _IOW(VHOST_VIRTIO, 0x14, struct vhost_vring_state)
+
/* The following ioctls use eventfd file descriptors to signal and poll
* for events. */
--
MST
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 03/10] virtio: introduce virtio_legacy_is_cross_endian()
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 01/10] vhost-user: part of virtio Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 02/10] linux-headers: sync vhost.h Michael S. Tsirkin
@ 2015-06-17 19:38 ` Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 04/10] vhost: set vring endianness for legacy virtio Michael S. Tsirkin
` (7 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel; +Cc: Cornelia Huck, Peter Maydell, Rusty Russell, Alexander Graf
From: Greg Kurz <gkurz@linux.vnet.ibm.com>
This helper will be used by vhost and tap to detect cross-endianness in
the legacy virtio case.
Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
include/hw/virtio/virtio-access.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/include/hw/virtio/virtio-access.h b/include/hw/virtio/virtio-access.h
index ee28c21..cee5dd7 100644
--- a/include/hw/virtio/virtio-access.h
+++ b/include/hw/virtio/virtio-access.h
@@ -32,6 +32,19 @@ static inline bool virtio_access_is_big_endian(VirtIODevice *vdev)
#endif
}
+static inline bool virtio_legacy_is_cross_endian(VirtIODevice *vdev)
+{
+#ifdef TARGET_IS_BIENDIAN
+#ifdef HOST_WORDS_BIGENDIAN
+ return !virtio_is_big_endian(vdev);
+#else
+ return virtio_is_big_endian(vdev);
+#endif
+#else
+ return false;
+#endif
+}
+
static inline uint16_t virtio_lduw_phys(VirtIODevice *vdev, hwaddr pa)
{
if (virtio_access_is_big_endian(vdev)) {
--
MST
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 04/10] vhost: set vring endianness for legacy virtio
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
` (2 preceding siblings ...)
2015-06-17 19:38 ` [Qemu-devel] [PULL 03/10] virtio: introduce virtio_legacy_is_cross_endian() Michael S. Tsirkin
@ 2015-06-17 19:38 ` Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 05/10] tap: add VNET_LE/VNET_BE operations Michael S. Tsirkin
` (6 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell
From: Greg Kurz <gkurz@linux.vnet.ibm.com>
Legacy virtio is native endian: if the guest and host endianness differ,
we have to tell vhost so it can swap bytes where appropriate. This is
done through a vhost ring ioctl.
Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/virtio/vhost.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 49 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 7908255..7ea45b3 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -17,9 +17,11 @@
#include "hw/hw.h"
#include "qemu/atomic.h"
#include "qemu/range.h"
+#include "qemu/error-report.h"
#include <linux/vhost.h>
#include "exec/address-spaces.h"
#include "hw/virtio/virtio-bus.h"
+#include "hw/virtio/virtio-access.h"
#include "migration/migration.h"
static struct vhost_log *vhost_log;
@@ -686,6 +688,27 @@ static void vhost_log_stop(MemoryListener *listener,
/* FIXME: implement */
}
+static int vhost_virtqueue_set_vring_endian_legacy(struct vhost_dev *dev,
+ bool is_big_endian,
+ int vhost_vq_index)
+{
+ struct vhost_vring_state s = {
+ .index = vhost_vq_index,
+ .num = is_big_endian
+ };
+
+ if (!dev->vhost_ops->vhost_call(dev, VHOST_SET_VRING_ENDIAN, &s)) {
+ return 0;
+ }
+
+ if (errno == ENOTTY) {
+ error_report("vhost does not support cross-endian");
+ return -ENOSYS;
+ }
+
+ return -errno;
+}
+
static int vhost_virtqueue_start(struct vhost_dev *dev,
struct VirtIODevice *vdev,
struct vhost_virtqueue *vq,
@@ -716,6 +739,16 @@ static int vhost_virtqueue_start(struct vhost_dev *dev,
return -errno;
}
+ if (!virtio_has_feature(vdev, VIRTIO_F_VERSION_1) &&
+ virtio_legacy_is_cross_endian(vdev)) {
+ r = vhost_virtqueue_set_vring_endian_legacy(dev,
+ virtio_is_big_endian(vdev),
+ vhost_vq_index);
+ if (r) {
+ return -errno;
+ }
+ }
+
s = l = virtio_queue_get_desc_size(vdev, idx);
a = virtio_queue_get_desc_addr(vdev, idx);
vq->desc = cpu_physical_memory_map(a, &l, 0);
@@ -786,8 +819,9 @@ static void vhost_virtqueue_stop(struct vhost_dev *dev,
struct vhost_virtqueue *vq,
unsigned idx)
{
+ int vhost_vq_index = idx - dev->vq_index;
struct vhost_vring_state state = {
- .index = idx - dev->vq_index
+ .index = vhost_vq_index,
};
int r;
assert(idx >= dev->vq_index && idx < dev->vq_index + dev->nvqs);
@@ -798,6 +832,20 @@ static void vhost_virtqueue_stop(struct vhost_dev *dev,
}
virtio_queue_set_last_avail_idx(vdev, idx, state.num);
virtio_queue_invalidate_signalled_used(vdev, idx);
+
+ /* In the cross-endian case, we need to reset the vring endianness to
+ * native as legacy devices expect so by default.
+ */
+ if (!virtio_has_feature(vdev, VIRTIO_F_VERSION_1) &&
+ virtio_legacy_is_cross_endian(vdev)) {
+ r = vhost_virtqueue_set_vring_endian_legacy(dev,
+ !virtio_is_big_endian(vdev),
+ vhost_vq_index);
+ if (r < 0) {
+ error_report("failed to reset vring endianness");
+ }
+ }
+
assert (r >= 0);
cpu_physical_memory_unmap(vq->ring, virtio_queue_get_ring_size(vdev, idx),
0, virtio_queue_get_ring_size(vdev, idx));
--
MST
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 05/10] tap: add VNET_LE/VNET_BE operations
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
` (3 preceding siblings ...)
2015-06-17 19:38 ` [Qemu-devel] [PULL 04/10] vhost: set vring endianness for legacy virtio Michael S. Tsirkin
@ 2015-06-17 19:38 ` Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 06/10] vhost-net: tell tap backend about the vnet endianness Michael S. Tsirkin
` (5 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, Jason Wang, Stefan Hajnoczi
From: Greg Kurz <gkurz@linux.vnet.ibm.com>
The linux tap and macvtap backends can be told to parse vnet headers
according to little or big endian. This is done through the TUNSETVNETLE
and TUNSETVNETBE ioctls.
This patch brings all the plumbing for QEMU to use these APIs.
Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
include/net/net.h | 6 ++++++
net/tap-linux.h | 2 ++
net/tap_int.h | 2 ++
net/net.c | 18 ++++++++++++++++++
net/tap-linux.c | 34 ++++++++++++++++++++++++++++++++++
net/tap.c | 16 ++++++++++++++++
6 files changed, 78 insertions(+)
diff --git a/include/net/net.h b/include/net/net.h
index e66ca03..4306252 100644
--- a/include/net/net.h
+++ b/include/net/net.h
@@ -55,6 +55,8 @@ typedef bool (HasVnetHdrLen)(NetClientState *, int);
typedef void (UsingVnetHdr)(NetClientState *, bool);
typedef void (SetOffload)(NetClientState *, int, int, int, int, int);
typedef void (SetVnetHdrLen)(NetClientState *, int);
+typedef int (SetVnetLE)(NetClientState *, bool);
+typedef int (SetVnetBE)(NetClientState *, bool);
typedef struct NetClientInfo {
NetClientOptionsKind type;
@@ -73,6 +75,8 @@ typedef struct NetClientInfo {
UsingVnetHdr *using_vnet_hdr;
SetOffload *set_offload;
SetVnetHdrLen *set_vnet_hdr_len;
+ SetVnetLE *set_vnet_le;
+ SetVnetBE *set_vnet_be;
} NetClientInfo;
struct NetClientState {
@@ -139,6 +143,8 @@ void qemu_using_vnet_hdr(NetClientState *nc, bool enable);
void qemu_set_offload(NetClientState *nc, int csum, int tso4, int tso6,
int ecn, int ufo);
void qemu_set_vnet_hdr_len(NetClientState *nc, int len);
+int qemu_set_vnet_le(NetClientState *nc, bool is_le);
+int qemu_set_vnet_be(NetClientState *nc, bool is_be);
void qemu_macaddr_default_if_unset(MACAddr *macaddr);
int qemu_show_nic_models(const char *arg, const char *const *models);
void qemu_check_nic_model(NICInfo *nd, const char *model);
diff --git a/net/tap-linux.h b/net/tap-linux.h
index 1cf35d4..01dc6f8 100644
--- a/net/tap-linux.h
+++ b/net/tap-linux.h
@@ -30,6 +30,8 @@
#define TUNGETVNETHDRSZ _IOR('T', 215, int)
#define TUNSETVNETHDRSZ _IOW('T', 216, int)
#define TUNSETQUEUE _IOW('T', 217, int)
+#define TUNSETVNETLE _IOW('T', 220, int)
+#define TUNSETVNETBE _IOW('T', 222, int)
#endif
diff --git a/net/tap_int.h b/net/tap_int.h
index d12a409..2378021 100644
--- a/net/tap_int.h
+++ b/net/tap_int.h
@@ -40,6 +40,8 @@ int tap_probe_vnet_hdr_len(int fd, int len);
int tap_probe_has_ufo(int fd);
void tap_fd_set_offload(int fd, int csum, int tso4, int tso6, int ecn, int ufo);
void tap_fd_set_vnet_hdr_len(int fd, int len);
+int tap_fd_set_vnet_le(int fd, int vnet_is_le);
+int tap_fd_set_vnet_be(int fd, int vnet_is_be);
int tap_fd_enable(int fd);
int tap_fd_disable(int fd);
int tap_fd_get_ifname(int fd, char *ifname);
diff --git a/net/net.c b/net/net.c
index db6be12..5148aac 100644
--- a/net/net.c
+++ b/net/net.c
@@ -510,6 +510,24 @@ void qemu_set_vnet_hdr_len(NetClientState *nc, int len)
nc->info->set_vnet_hdr_len(nc, len);
}
+int qemu_set_vnet_le(NetClientState *nc, bool is_le)
+{
+ if (!nc || !nc->info->set_vnet_le) {
+ return -ENOSYS;
+ }
+
+ return nc->info->set_vnet_le(nc, is_le);
+}
+
+int qemu_set_vnet_be(NetClientState *nc, bool is_be)
+{
+ if (!nc || !nc->info->set_vnet_be) {
+ return -ENOSYS;
+ }
+
+ return nc->info->set_vnet_be(nc, is_be);
+}
+
int qemu_can_send_packet(NetClientState *sender)
{
int vm_running = runstate_is_running();
diff --git a/net/tap-linux.c b/net/tap-linux.c
index 6c3caef..394f2a6 100644
--- a/net/tap-linux.c
+++ b/net/tap-linux.c
@@ -198,6 +198,40 @@ void tap_fd_set_vnet_hdr_len(int fd, int len)
}
}
+int tap_fd_set_vnet_le(int fd, int is_le)
+{
+ int arg = is_le ? 1 : 0;
+
+ if (!ioctl(fd, TUNSETVNETLE, &arg)) {
+ return 0;
+ }
+
+ /* Check if our kernel supports TUNSETVNETLE */
+ if (errno == EINVAL) {
+ return -errno;
+ }
+
+ error_report("TUNSETVNETLE ioctl() failed: %s.\n", strerror(errno));
+ abort();
+}
+
+int tap_fd_set_vnet_be(int fd, int is_be)
+{
+ int arg = is_be ? 1 : 0;
+
+ if (!ioctl(fd, TUNSETVNETBE, &arg)) {
+ return 0;
+ }
+
+ /* Check if our kernel supports TUNSETVNETBE */
+ if (errno == EINVAL) {
+ return -errno;
+ }
+
+ error_report("TUNSETVNETBE ioctl() failed: %s.\n", strerror(errno));
+ abort();
+}
+
void tap_fd_set_offload(int fd, int csum, int tso4,
int tso6, int ecn, int ufo)
{
diff --git a/net/tap.c b/net/tap.c
index d1ca314..ec12dfd 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -275,6 +275,20 @@ static void tap_using_vnet_hdr(NetClientState *nc, bool using_vnet_hdr)
s->using_vnet_hdr = using_vnet_hdr;
}
+static int tap_set_vnet_le(NetClientState *nc, bool is_le)
+{
+ TAPState *s = DO_UPCAST(TAPState, nc, nc);
+
+ return tap_fd_set_vnet_le(s->fd, is_le);
+}
+
+static int tap_set_vnet_be(NetClientState *nc, bool is_be)
+{
+ TAPState *s = DO_UPCAST(TAPState, nc, nc);
+
+ return tap_fd_set_vnet_be(s->fd, is_be);
+}
+
static void tap_set_offload(NetClientState *nc, int csum, int tso4,
int tso6, int ecn, int ufo)
{
@@ -341,6 +355,8 @@ static NetClientInfo net_tap_info = {
.using_vnet_hdr = tap_using_vnet_hdr,
.set_offload = tap_set_offload,
.set_vnet_hdr_len = tap_set_vnet_hdr_len,
+ .set_vnet_le = tap_set_vnet_le,
+ .set_vnet_be = tap_set_vnet_be,
};
static TAPState *net_tap_fd_init(NetClientState *peer,
--
MST
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 06/10] vhost-net: tell tap backend about the vnet endianness
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
` (4 preceding siblings ...)
2015-06-17 19:38 ` [Qemu-devel] [PULL 05/10] tap: add VNET_LE/VNET_BE operations Michael S. Tsirkin
@ 2015-06-17 19:38 ` Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 07/10] vhost_net: re-enable when cross endian Michael S. Tsirkin
` (4 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell
From: Greg Kurz <gkurz@linux.vnet.ibm.com>
The default behaviour for TAP/MACVTAP is to consider vnet as native endian.
This patch handles the cases when this is not true:
- virtio 1.0: always little-endian
- legacy cross-endian
Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/net/vhost_net.c | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index 1c55517..8cbb2f6 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -38,6 +38,7 @@
#include "standard-headers/linux/virtio_ring.h"
#include "hw/virtio/vhost.h"
#include "hw/virtio/virtio-bus.h"
+#include "hw/virtio/virtio-access.h"
struct vhost_net {
struct vhost_dev dev;
@@ -197,6 +198,27 @@ static void vhost_net_set_vq_index(struct vhost_net *net, int vq_index)
net->dev.vq_index = vq_index;
}
+static int vhost_net_set_vnet_endian(VirtIODevice *dev, NetClientState *peer,
+ bool set)
+{
+ int r = 0;
+
+ if (virtio_has_feature(dev, VIRTIO_F_VERSION_1) ||
+ (virtio_legacy_is_cross_endian(dev) && !virtio_is_big_endian(dev))) {
+ r = qemu_set_vnet_le(peer, set);
+ if (r) {
+ error_report("backend does not support LE vnet headers");
+ }
+ } else if (virtio_legacy_is_cross_endian(dev)) {
+ r = qemu_set_vnet_be(peer, set);
+ if (r) {
+ error_report("backend does not support BE vnet headers");
+ }
+ }
+
+ return r;
+}
+
static int vhost_net_start_one(struct vhost_net *net,
VirtIODevice *dev)
{
@@ -314,6 +336,11 @@ int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
goto err;
}
+ r = vhost_net_set_vnet_endian(dev, ncs[0].peer, true);
+ if (r < 0) {
+ goto err;
+ }
+
for (i = 0; i < total_queues; i++) {
vhost_net_set_vq_index(get_vhost_net(ncs[i].peer), i * 2);
}
@@ -321,7 +348,7 @@ int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
r = k->set_guest_notifiers(qbus->parent, total_queues * 2, true);
if (r < 0) {
error_report("Error binding guest notifier: %d", -r);
- goto err;
+ goto err_endian;
}
for (i = 0; i < total_queues; i++) {
@@ -343,6 +370,8 @@ err_start:
fprintf(stderr, "vhost guest notifier cleanup failed: %d\n", e);
fflush(stderr);
}
+err_endian:
+ vhost_net_set_vnet_endian(dev, ncs[0].peer, false);
err:
return r;
}
@@ -365,6 +394,8 @@ void vhost_net_stop(VirtIODevice *dev, NetClientState *ncs,
fflush(stderr);
}
assert(r >= 0);
+
+ assert(vhost_net_set_vnet_endian(dev, ncs[0].peer, false) >= 0);
}
void vhost_net_cleanup(struct vhost_net *net)
--
MST
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 07/10] vhost_net: re-enable when cross endian
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
` (5 preceding siblings ...)
2015-06-17 19:38 ` [Qemu-devel] [PULL 06/10] vhost-net: tell tap backend about the vnet endianness Michael S. Tsirkin
@ 2015-06-17 19:38 ` Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 08/10] hw/core: rebase sysbus_get_fw_dev_path() to g_strdup_printf() Michael S. Tsirkin
` (3 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Maydell, =?UTF-8?q?C=C3=A9dric=20Le=20Goater?=
From: Cédric Le Goater <clg@fr.ibm.com>
Cross-endianness is now checked by the core vhost code.
revert 371df9f5e0f1 "vhost-net: disable when cross-endian"
Signed-off-by: Cédric Le Goater <clg@fr.ibm.com>
[ added commit message, Greg Kurz <gkurz@linux.vnet.ibm.com> ]
Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/net/vhost_net.c | 19 -------------------
1 file changed, 19 deletions(-)
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index 8cbb2f6..f505c91 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -303,19 +303,6 @@ static void vhost_net_stop_one(struct vhost_net *net,
vhost_dev_disable_notifiers(&net->dev, dev);
}
-static bool vhost_net_device_endian_ok(VirtIODevice *vdev)
-{
-#ifdef TARGET_IS_BIENDIAN
-#ifdef HOST_WORDS_BIGENDIAN
- return virtio_is_big_endian(vdev);
-#else
- return !virtio_is_big_endian(vdev);
-#endif
-#else
- return true;
-#endif
-}
-
int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
int total_queues)
{
@@ -324,12 +311,6 @@ int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(vbus);
int r, e, i;
- if (!vhost_net_device_endian_ok(dev)) {
- error_report("vhost-net does not support cross-endian");
- r = -ENOSYS;
- goto err;
- }
-
if (!k->set_guest_notifiers) {
error_report("binding does not support guest notifiers");
r = -ENOSYS;
--
MST
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 08/10] hw/core: rebase sysbus_get_fw_dev_path() to g_strdup_printf()
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
` (6 preceding siblings ...)
2015-06-17 19:38 ` [Qemu-devel] [PULL 07/10] vhost_net: re-enable when cross endian Michael S. Tsirkin
@ 2015-06-17 19:38 ` Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 09/10] pci: Don't register a specialized 'config_write' if default behavior is intended Michael S. Tsirkin
` (2 subsequent siblings)
10 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Maydell, Peter Crosthwaite, Markus Armbruster,
Alexander Graf, qemu-stable, Marcel Apfelbaum, Paolo Bonzini,
Laszlo Ersek
From: Laszlo Ersek <lersek@redhat.com>
This is done mainly for improving readability, and in preparation for the
next patch, but Markus pointed out another bonus for the string being
returned:
"No arbitrary length limit. Before the patch, it's 39 characters, and the
code breaks catastrophically when qdev_fw_name() is longer: the second
snprintf() is called with its first argument pointing beyond path[], and
its second argument underflowing to a huge size."
Cc: qemu-stable@nongnu.org
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/core/sysbus.c | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c
index b53c351..92eced9 100644
--- a/hw/core/sysbus.c
+++ b/hw/core/sysbus.c
@@ -281,19 +281,15 @@ static void sysbus_dev_print(Monitor *mon, DeviceState *dev, int indent)
static char *sysbus_get_fw_dev_path(DeviceState *dev)
{
SysBusDevice *s = SYS_BUS_DEVICE(dev);
- char path[40];
- int off;
-
- off = snprintf(path, sizeof(path), "%s", qdev_fw_name(dev));
if (s->num_mmio) {
- snprintf(path + off, sizeof(path) - off, "@"TARGET_FMT_plx,
- s->mmio[0].addr);
- } else if (s->num_pio) {
- snprintf(path + off, sizeof(path) - off, "@i%04x", s->pio[0]);
+ return g_strdup_printf("%s@" TARGET_FMT_plx, qdev_fw_name(dev),
+ s->mmio[0].addr);
}
-
- return g_strdup(path);
+ if (s->num_pio) {
+ return g_strdup_printf("%s@i%04x", qdev_fw_name(dev), s->pio[0]);
+ }
+ return g_strdup(qdev_fw_name(dev));
}
void sysbus_add_io(SysBusDevice *dev, hwaddr addr,
--
MST
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 09/10] pci: Don't register a specialized 'config_write' if default behavior is intended
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
` (7 preceding siblings ...)
2015-06-17 19:38 ` [Qemu-devel] [PULL 08/10] hw/core: rebase sysbus_get_fw_dev_path() to g_strdup_printf() Michael S. Tsirkin
@ 2015-06-17 19:38 ` Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 10/10] vhost: enable vhost without without MSI-X Michael S. Tsirkin
2015-06-18 10:36 ` [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Peter Maydell
10 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel
Cc: Leonid Shatz, Peter Maydell, qemu-block, Hannes Reinecke,
Dmitry Fleytman, Paolo Bonzini, Shmulik Ladkani
From: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com>
Few devices have their specialized 'config_write' methods which simply
call 'pci_default_write_config' followed by a 'msix_write_config' or
'msi_write_config' calls, using exact same arguments.
This is unnecessary as 'pci_default_write_config' already invokes
'msi_write_config' and 'msix_write_config'.
Also, since 'pci_default_write_config' is the default 'config_write'
handler, we can simply avoid the registration of these specialized
versions.
Cc: Leonid Shatz <leonid.shatz@ravellosystems.com>
Signed-off-by: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/misc/ivshmem.c | 1 -
hw/net/vmxnet3.c | 9 ---------
hw/scsi/megasas.c | 8 --------
hw/scsi/vmw_pvscsi.c | 8 --------
4 files changed, 26 deletions(-)
diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
index 5d272c8..231c35f 100644
--- a/hw/misc/ivshmem.c
+++ b/hw/misc/ivshmem.c
@@ -698,7 +698,6 @@ static void ivshmem_write_config(PCIDevice *pci_dev, uint32_t address,
uint32_t val, int len)
{
pci_default_write_config(pci_dev, address, val, len);
- msix_write_config(pci_dev, address, val, len);
}
static int pci_ivshmem_init(PCIDevice *dev)
diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
index dfb328d..34ffafd 100644
--- a/hw/net/vmxnet3.c
+++ b/hw/net/vmxnet3.c
@@ -2481,14 +2481,6 @@ static const VMStateDescription vmstate_vmxnet3 = {
}
};
-static void
-vmxnet3_write_config(PCIDevice *pci_dev, uint32_t addr, uint32_t val, int len)
-{
- pci_default_write_config(pci_dev, addr, val, len);
- msix_write_config(pci_dev, addr, val, len);
- msi_write_config(pci_dev, addr, val, len);
-}
-
static Property vmxnet3_properties[] = {
DEFINE_NIC_PROPERTIES(VMXNET3State, conf),
DEFINE_PROP_END_OF_LIST(),
@@ -2507,7 +2499,6 @@ static void vmxnet3_class_init(ObjectClass *class, void *data)
c->class_id = PCI_CLASS_NETWORK_ETHERNET;
c->subsystem_vendor_id = PCI_VENDOR_ID_VMWARE;
c->subsystem_id = PCI_DEVICE_ID_VMWARE_VMXNET3;
- c->config_write = vmxnet3_write_config,
dc->desc = "VMWare Paravirtualized Ethernet v3";
dc->reset = vmxnet3_qdev_reset;
dc->vmsd = &vmstate_vmxnet3;
diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
index 91a5d97..51ba9e0 100644
--- a/hw/scsi/megasas.c
+++ b/hw/scsi/megasas.c
@@ -2407,13 +2407,6 @@ static void megasas_scsi_realize(PCIDevice *dev, Error **errp)
}
}
-static void
-megasas_write_config(PCIDevice *pci, uint32_t addr, uint32_t val, int len)
-{
- pci_default_write_config(pci, addr, val, len);
- msi_write_config(pci, addr, val, len);
-}
-
static Property megasas_properties_gen1[] = {
DEFINE_PROP_UINT32("max_sge", MegasasState, fw_sge,
MEGASAS_DEFAULT_SGE),
@@ -2516,7 +2509,6 @@ static void megasas_class_init(ObjectClass *oc, void *data)
dc->vmsd = info->vmsd;
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
dc->desc = info->desc;
- pc->config_write = megasas_write_config;
}
static const TypeInfo megasas_info = {
diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
index c6148d3..9c71f31 100644
--- a/hw/scsi/vmw_pvscsi.c
+++ b/hw/scsi/vmw_pvscsi.c
@@ -1174,13 +1174,6 @@ static const VMStateDescription vmstate_pvscsi = {
}
};
-static void
-pvscsi_write_config(PCIDevice *pci, uint32_t addr, uint32_t val, int len)
-{
- pci_default_write_config(pci, addr, val, len);
- msi_write_config(pci, addr, val, len);
-}
-
static Property pvscsi_properties[] = {
DEFINE_PROP_UINT8("use_msg", PVSCSIState, use_msg, 1),
DEFINE_PROP_END_OF_LIST(),
@@ -1202,7 +1195,6 @@ static void pvscsi_class_init(ObjectClass *klass, void *data)
dc->vmsd = &vmstate_pvscsi;
dc->props = pvscsi_properties;
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- k->config_write = pvscsi_write_config;
hc->unplug = pvscsi_hot_unplug;
hc->plug = pvscsi_hotplug;
}
--
MST
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [Qemu-devel] [PULL 10/10] vhost: enable vhost without without MSI-X
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
` (8 preceding siblings ...)
2015-06-17 19:38 ` [Qemu-devel] [PULL 09/10] pci: Don't register a specialized 'config_write' if default behavior is intended Michael S. Tsirkin
@ 2015-06-17 19:38 ` Michael S. Tsirkin
2015-06-18 10:36 ` [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Peter Maydell
10 siblings, 0 replies; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-17 19:38 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Maydell, Jason Wang, Paolo Bonzini, Stefan Hajnoczi,
Pankaj Gupta
From: Pankaj Gupta <pagupta@redhat.com>
We use vhostforce to enable vhost even if Guests don't have MSI-X
support and we fall back to QEMU virtio-net.
This gives a very small performance gain, but the disadvantage
is that guest now controls which virtio code is running
(qemu or vhost) so our attack surface is doubled.
This patch will enable vhost unconditionally whenever it's requested.
For compatibility, enable vhost when vhostforce is set, as well.
Signed-off-by: Pankaj Gupta <pagupta@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Jason Wang <jasowang@redhat.com>
---
include/hw/virtio/vhost.h | 3 +--
include/net/vhost_net.h | 2 --
hw/net/vhost_net.c | 12 +-----------
hw/net/virtio-net.c | 4 ----
hw/scsi/vhost-scsi.c | 2 +-
hw/virtio/vhost.c | 14 +-------------
net/tap.c | 1 -
net/vhost-user.c | 1 -
8 files changed, 4 insertions(+), 35 deletions(-)
diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h
index 84f170e..dd51050 100644
--- a/include/hw/virtio/vhost.h
+++ b/include/hw/virtio/vhost.h
@@ -51,7 +51,6 @@ struct vhost_dev {
bool log_enabled;
unsigned long long log_size;
Error *migration_blocker;
- bool force;
bool memory_changed;
hwaddr mem_changed_start_addr;
hwaddr mem_changed_end_addr;
@@ -61,7 +60,7 @@ struct vhost_dev {
};
int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
- VhostBackendType backend_type, bool force);
+ VhostBackendType backend_type);
void vhost_dev_cleanup(struct vhost_dev *hdev);
bool vhost_dev_query(struct vhost_dev *hdev, VirtIODevice *vdev);
int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev);
diff --git a/include/net/vhost_net.h b/include/net/vhost_net.h
index 9eb493e..840d4b1 100644
--- a/include/net/vhost_net.h
+++ b/include/net/vhost_net.h
@@ -11,12 +11,10 @@ typedef struct VhostNetOptions {
VhostBackendType backend_type;
NetClientState *net_backend;
void *opaque;
- bool force;
} VhostNetOptions;
struct vhost_net *vhost_net_init(VhostNetOptions *options);
-bool vhost_net_query(VHostNetState *net, VirtIODevice *dev);
int vhost_net_start(VirtIODevice *dev, NetClientState *ncs, int total_queues);
void vhost_net_stop(VirtIODevice *dev, NetClientState *ncs, int total_queues);
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index f505c91..9bd360b 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -163,7 +163,7 @@ struct vhost_net *vhost_net_init(VhostNetOptions *options)
net->dev.vq_index = net->nc->queue_index;
r = vhost_dev_init(&net->dev, options->opaque,
- options->backend_type, options->force);
+ options->backend_type);
if (r < 0) {
goto fail;
}
@@ -188,11 +188,6 @@ fail:
return NULL;
}
-bool vhost_net_query(VHostNetState *net, VirtIODevice *dev)
-{
- return vhost_dev_query(&net->dev, dev);
-}
-
static void vhost_net_set_vq_index(struct vhost_net *net, int vq_index)
{
net->dev.vq_index = vq_index;
@@ -424,11 +419,6 @@ struct vhost_net *vhost_net_init(VhostNetOptions *options)
return NULL;
}
-bool vhost_net_query(VHostNetState *net, VirtIODevice *dev)
-{
- return false;
-}
-
int vhost_net_start(VirtIODevice *dev,
NetClientState *ncs,
int total_queues)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 9281aa1..d728233 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -128,10 +128,6 @@ static void virtio_net_vhost_status(VirtIONet *n, uint8_t status)
if (!n->vhost_started) {
int r, i;
- if (!vhost_net_query(get_vhost_net(nc->peer), vdev)) {
- return;
- }
-
/* Any packets outstanding? Purge them to avoid touching rings
* when vhost is running.
*/
diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c
index 1941aa1..1c389c4 100644
--- a/hw/scsi/vhost-scsi.c
+++ b/hw/scsi/vhost-scsi.c
@@ -246,7 +246,7 @@ static void vhost_scsi_realize(DeviceState *dev, Error **errp)
s->dev.backend_features = 0;
ret = vhost_dev_init(&s->dev, (void *)(uintptr_t)vhostfd,
- VHOST_BACKEND_TYPE_KERNEL, true);
+ VHOST_BACKEND_TYPE_KERNEL);
if (ret < 0) {
error_setg(errp, "vhost-scsi: vhost initialization failed: %s",
strerror(-ret));
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 7ea45b3..b84d21c 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -898,7 +898,7 @@ static void vhost_virtqueue_cleanup(struct vhost_virtqueue *vq)
}
int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
- VhostBackendType backend_type, bool force)
+ VhostBackendType backend_type)
{
uint64_t features;
int i, r;
@@ -961,7 +961,6 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
hdev->started = false;
hdev->memory_changed = false;
memory_listener_register(&hdev->memory_listener, &address_space_memory);
- hdev->force = force;
return 0;
fail_vq:
while (--i >= 0) {
@@ -989,17 +988,6 @@ void vhost_dev_cleanup(struct vhost_dev *hdev)
hdev->vhost_ops->vhost_backend_cleanup(hdev);
}
-bool vhost_dev_query(struct vhost_dev *hdev, VirtIODevice *vdev)
-{
- BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vdev)));
- VirtioBusState *vbus = VIRTIO_BUS(qbus);
- VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(vbus);
-
- return !k->query_guest_notifiers ||
- k->query_guest_notifiers(qbus->parent) ||
- hdev->force;
-}
-
/* Stop processing guest IO notifications in qemu.
* Start processing them in vhost in kernel.
*/
diff --git a/net/tap.c b/net/tap.c
index ec12dfd..3a3f522 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -671,7 +671,6 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
options.backend_type = VHOST_BACKEND_TYPE_KERNEL;
options.net_backend = &s->nc;
- options.force = tap->has_vhostforce && tap->vhostforce;
if (tap->has_vhostfd || tap->has_vhostfds) {
vhostfd = monitor_fd_param(cur_mon, vhostfdname, &err);
diff --git a/net/vhost-user.c b/net/vhost-user.c
index 8d26728..f1df26d 100644
--- a/net/vhost-user.c
+++ b/net/vhost-user.c
@@ -50,7 +50,6 @@ static int vhost_user_start(VhostUserState *s)
options.backend_type = VHOST_BACKEND_TYPE_USER;
options.net_backend = &s->nc;
options.opaque = s->chr;
- options.force = true;
s->vhost_net = vhost_net_init(&options);
--
MST
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
` (9 preceding siblings ...)
2015-06-17 19:38 ` [Qemu-devel] [PULL 10/10] vhost: enable vhost without without MSI-X Michael S. Tsirkin
@ 2015-06-18 10:36 ` Peter Maydell
2015-06-18 11:14 ` Michael S. Tsirkin
10 siblings, 1 reply; 18+ messages in thread
From: Peter Maydell @ 2015-06-18 10:36 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: QEMU Developers
On 17 June 2015 at 20:38, Michael S. Tsirkin <mst@redhat.com> wrote:
> OK things seem to be calming down nicely.
> Here's to an uneventful 2.4!
>
> The following changes since commit 4ebc736e9938a7e88ecc785734b17145bf802a56:
>
> i386/acpi-build: fix PXB workarounds for unsupported BIOSes (2015-06-11 12:40:30 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
>
> for you to fetch changes up to e352ced61b6030232338de59fd3fc69633b0755b:
>
> vhost: enable vhost without without MSI-X (2015-06-17 21:27:40 +0200)
>
> ----------------------------------------------------------------
> virtio, pci fixes, enhancements
>
> Most notably this includes virtio cross-endian patches.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Hi. I'm afraid this fails to build for OSX:
LINK arm-softmmu/qemu-system-arm
Undefined symbols for architecture x86_64:
"_tap_fd_set_vnet_be", referenced from:
_tap_set_vnet_be in tap.o
"_tap_fd_set_vnet_le", referenced from:
_tap_set_vnet_le in tap.o
thanks
-- PMM
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements
2015-06-18 10:36 ` [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Peter Maydell
@ 2015-06-18 11:14 ` Michael S. Tsirkin
2015-06-18 16:29 ` Peter Maydell
0 siblings, 1 reply; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-18 11:14 UTC (permalink / raw)
To: Peter Maydell; +Cc: QEMU Developers
On Thu, Jun 18, 2015 at 11:36:26AM +0100, Peter Maydell wrote:
> On 17 June 2015 at 20:38, Michael S. Tsirkin <mst@redhat.com> wrote:
> > OK things seem to be calming down nicely.
> > Here's to an uneventful 2.4!
> >
> > The following changes since commit 4ebc736e9938a7e88ecc785734b17145bf802a56:
> >
> > i386/acpi-build: fix PXB workarounds for unsupported BIOSes (2015-06-11 12:40:30 +0200)
> >
> > are available in the git repository at:
> >
> > git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
> >
> > for you to fetch changes up to e352ced61b6030232338de59fd3fc69633b0755b:
> >
> > vhost: enable vhost without without MSI-X (2015-06-17 21:27:40 +0200)
> >
> > ----------------------------------------------------------------
> > virtio, pci fixes, enhancements
> >
> > Most notably this includes virtio cross-endian patches.
> >
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
>
> Hi. I'm afraid this fails to build for OSX:
>
> LINK arm-softmmu/qemu-system-arm
> Undefined symbols for architecture x86_64:
> "_tap_fd_set_vnet_be", referenced from:
> _tap_set_vnet_be in tap.o
> "_tap_fd_set_vnet_le", referenced from:
> _tap_set_vnet_le in tap.o
>
> thanks
> -- PMM
Will fix, thanks!
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements
2015-06-18 11:14 ` Michael S. Tsirkin
@ 2015-06-18 16:29 ` Peter Maydell
2015-06-19 7:30 ` Michael S. Tsirkin
0 siblings, 1 reply; 18+ messages in thread
From: Peter Maydell @ 2015-06-18 16:29 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: QEMU Developers
On 18 June 2015 at 12:14, Michael S. Tsirkin <mst@redhat.com> wrote:
> On Thu, Jun 18, 2015 at 11:36:26AM +0100, Peter Maydell wrote:
>> Hi. I'm afraid this fails to build for OSX:
>>
>> LINK arm-softmmu/qemu-system-arm
>> Undefined symbols for architecture x86_64:
>> "_tap_fd_set_vnet_be", referenced from:
>> _tap_set_vnet_be in tap.o
>> "_tap_fd_set_vnet_le", referenced from:
>> _tap_set_vnet_le in tap.o
>>
> Will fix, thanks!
The updated version of this tag seems to build OK -- did you want me to
apply it? (Are the differences only trivial?)
thanks
-- PMM
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements
2015-06-18 16:29 ` Peter Maydell
@ 2015-06-19 7:30 ` Michael S. Tsirkin
2015-06-19 8:32 ` Peter Maydell
0 siblings, 1 reply; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-19 7:30 UTC (permalink / raw)
To: Peter Maydell; +Cc: QEMU Developers
On Thu, Jun 18, 2015 at 05:29:23PM +0100, Peter Maydell wrote:
> On 18 June 2015 at 12:14, Michael S. Tsirkin <mst@redhat.com> wrote:
> > On Thu, Jun 18, 2015 at 11:36:26AM +0100, Peter Maydell wrote:
> >> Hi. I'm afraid this fails to build for OSX:
> >>
> >> LINK arm-softmmu/qemu-system-arm
> >> Undefined symbols for architecture x86_64:
> >> "_tap_fd_set_vnet_be", referenced from:
> >> _tap_set_vnet_be in tap.o
> >> "_tap_fd_set_vnet_le", referenced from:
> >> _tap_set_vnet_le in tap.o
> >>
>
> > Will fix, thanks!
>
> The updated version of this tag seems to build OK -- did you want me to
> apply it? (Are the differences only trivial?)
>
> thanks
> -- PMM
They are trivial - a single patch on top that adds stubs for missing
platforms. And I think breaking bisect on non-linux isn't a big deal.
If you agree, please apply.
--
MST
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements
2015-06-19 7:30 ` Michael S. Tsirkin
@ 2015-06-19 8:32 ` Peter Maydell
2015-06-19 10:19 ` Michael S. Tsirkin
0 siblings, 1 reply; 18+ messages in thread
From: Peter Maydell @ 2015-06-19 8:32 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: QEMU Developers
On 19 June 2015 at 08:30, Michael S. Tsirkin <mst@redhat.com> wrote:
> They are trivial - a single patch on top that adds stubs for missing
> platforms. And I think breaking bisect on non-linux isn't a big deal.
> If you agree, please apply.
I would prefer the fix folded in to the correct point in the
patchset, please. We have the opportunity to avoid breaking
OSX bisection, we should take it.
-- PMM
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements
2015-06-19 8:32 ` Peter Maydell
@ 2015-06-19 10:19 ` Michael S. Tsirkin
2015-06-19 11:29 ` Peter Maydell
0 siblings, 1 reply; 18+ messages in thread
From: Michael S. Tsirkin @ 2015-06-19 10:19 UTC (permalink / raw)
To: Peter Maydell; +Cc: QEMU Developers
On Fri, Jun 19, 2015 at 09:32:48AM +0100, Peter Maydell wrote:
> On 19 June 2015 at 08:30, Michael S. Tsirkin <mst@redhat.com> wrote:
> > They are trivial - a single patch on top that adds stubs for missing
> > platforms. And I think breaking bisect on non-linux isn't a big deal.
> > If you agree, please apply.
>
> I would prefer the fix folded in to the correct point in the
> patchset, please. We have the opportunity to avoid breaking
> OSX bisection, we should take it.
>
> -- PMM
OK, done and pushed (same place). I verified that the resulting tree is
identical to the previous one, so your testing on OSX should still hold.
--
MST
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements
2015-06-19 10:19 ` Michael S. Tsirkin
@ 2015-06-19 11:29 ` Peter Maydell
0 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2015-06-19 11:29 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: QEMU Developers
On 19 June 2015 at 11:19, Michael S. Tsirkin <mst@redhat.com> wrote:
> On Fri, Jun 19, 2015 at 09:32:48AM +0100, Peter Maydell wrote:
>> On 19 June 2015 at 08:30, Michael S. Tsirkin <mst@redhat.com> wrote:
>> > They are trivial - a single patch on top that adds stubs for missing
>> > platforms. And I think breaking bisect on non-linux isn't a big deal.
>> > If you agree, please apply.
>>
>> I would prefer the fix folded in to the correct point in the
>> patchset, please. We have the opportunity to avoid breaking
>> OSX bisection, we should take it.
>>
>> -- PMM
>
> OK, done and pushed (same place). I verified that the resulting tree is
> identical to the previous one, so your testing on OSX should still hold.
Applied this version, thanks.
-- PMM
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2015-06-19 11:29 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-17 19:38 [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 01/10] vhost-user: part of virtio Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 02/10] linux-headers: sync vhost.h Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 03/10] virtio: introduce virtio_legacy_is_cross_endian() Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 04/10] vhost: set vring endianness for legacy virtio Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 05/10] tap: add VNET_LE/VNET_BE operations Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 06/10] vhost-net: tell tap backend about the vnet endianness Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 07/10] vhost_net: re-enable when cross endian Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 08/10] hw/core: rebase sysbus_get_fw_dev_path() to g_strdup_printf() Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 09/10] pci: Don't register a specialized 'config_write' if default behavior is intended Michael S. Tsirkin
2015-06-17 19:38 ` [Qemu-devel] [PULL 10/10] vhost: enable vhost without without MSI-X Michael S. Tsirkin
2015-06-18 10:36 ` [Qemu-devel] [PULL 00/10] virtio, pci fixes, enhancements Peter Maydell
2015-06-18 11:14 ` Michael S. Tsirkin
2015-06-18 16:29 ` Peter Maydell
2015-06-19 7:30 ` Michael S. Tsirkin
2015-06-19 8:32 ` Peter Maydell
2015-06-19 10:19 ` Michael S. Tsirkin
2015-06-19 11:29 ` Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).