[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v8 10/13] contrib/vhost-user-blk: enable it on any POSIX system
From: |
Stefano Garzarella |
Subject: |
[PATCH v8 10/13] contrib/vhost-user-blk: enable it on any POSIX system |
Date: |
Tue, 18 Jun 2024 12:05:11 +0200 |
Let's make the code more portable by adding defines from
block/file-posix.c to support O_DIRECT in other systems (e.g. macOS).
vhost-user-server.c is a dependency, let's enable it for any POSIX
system.
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
---
v6:
- reverted v5 changes since we can't move O_DSYNC and O_DIRECT in osdep
[Daniel, failing tests on Windows]
v5:
- O_DSYNC and O_DIRECT definition are now in osdep [Phil]
- commit updated since we moved out all code changes
v4:
- moved using of "qemu/bswap.h" API in a separate patch [Phil]
---
meson.build | 2 --
contrib/vhost-user-blk/vhost-user-blk.c | 14 ++++++++++++++
util/meson.build | 4 +++-
3 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index 487153a431..f86ce92364 100644
--- a/meson.build
+++ b/meson.build
@@ -2001,8 +2001,6 @@ has_statx = cc.has_header_symbol('sys/stat.h',
'STATX_BASIC_STATS', prefix: gnu_
has_statx_mnt_id = cc.has_header_symbol('sys/stat.h', 'STATX_MNT_ID', prefix:
gnu_source_prefix)
have_vhost_user_blk_server = get_option('vhost_user_blk_server') \
- .require(host_os == 'linux',
- error_message: 'vhost_user_blk_server requires linux') \
.require(have_vhost_user,
error_message: 'vhost_user_blk_server requires vhost-user support')
\
.disable_auto_if(not have_tools and not have_system) \
diff --git a/contrib/vhost-user-blk/vhost-user-blk.c
b/contrib/vhost-user-blk/vhost-user-blk.c
index 9492146855..a450337685 100644
--- a/contrib/vhost-user-blk/vhost-user-blk.c
+++ b/contrib/vhost-user-blk/vhost-user-blk.c
@@ -25,6 +25,20 @@
#include <sys/ioctl.h>
#endif
+/* OS X does not have O_DSYNC */
+#ifndef O_DSYNC
+#ifdef O_SYNC
+#define O_DSYNC O_SYNC
+#elif defined(O_FSYNC)
+#define O_DSYNC O_FSYNC
+#endif
+#endif
+
+/* Approximate O_DIRECT with O_DSYNC if O_DIRECT isn't available */
+#ifndef O_DIRECT
+#define O_DIRECT O_DSYNC
+#endif
+
enum {
VHOST_USER_BLK_MAX_QUEUES = 8,
};
diff --git a/util/meson.build b/util/meson.build
index 72b505df11..c414178ace 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -112,10 +112,12 @@ if have_block
util_ss.add(files('filemonitor-stub.c'))
endif
if host_os == 'linux'
- util_ss.add(files('vhost-user-server.c'), vhost_user)
util_ss.add(files('vfio-helpers.c'))
util_ss.add(files('chardev_open.c'))
endif
+ if host_os != 'windows'
+ util_ss.add(files('vhost-user-server.c'), vhost_user)
+ endif
util_ss.add(files('yank.c'))
endif
--
2.45.2
- [PATCH v8 01/13] qapi: clarify that the default is backend dependent, (continued)
- [PATCH v8 01/13] qapi: clarify that the default is backend dependent, Stefano Garzarella, 2024/06/18
- [PATCH v8 02/13] libvhost-user: set msg.msg_control to NULL when it is empty, Stefano Garzarella, 2024/06/18
- [PATCH v8 03/13] libvhost-user: fail vu_message_write() if sendmsg() is failing, Stefano Garzarella, 2024/06/18
- [PATCH v8 04/13] libvhost-user: mask F_INFLIGHT_SHMFD if memfd is not supported, Stefano Garzarella, 2024/06/18
- [PATCH v8 05/13] vhost-user-server: do not set memory fd non-blocking, Stefano Garzarella, 2024/06/18
- [PATCH v8 06/13] contrib/vhost-user-blk: fix bind() using the right size of the address, Stefano Garzarella, 2024/06/18
- [PATCH v8 08/13] vhost-user: enable frontends on any POSIX system, Stefano Garzarella, 2024/06/18
- [PATCH v8 07/13] contrib/vhost-user-*: use QEMU bswap helper functions, Stefano Garzarella, 2024/06/18
- [PATCH v8 09/13] libvhost-user: enable it on any POSIX system, Stefano Garzarella, 2024/06/18
- [PATCH v8 10/13] contrib/vhost-user-blk: enable it on any POSIX system,
Stefano Garzarella <=
- [PATCH v8 11/13] hostmem: add a new memory backend based on POSIX shm_open(), Stefano Garzarella, 2024/06/18
- [PATCH v8 12/13] tests/qtest/vhost-user-blk-test: use memory-backend-shm, Stefano Garzarella, 2024/06/18
- [PATCH v8 13/13] tests/qtest/vhost-user-test: add a test case for memory-backend-shm, Stefano Garzarella, 2024/06/18