[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH RESEND v7 09/12] contrib/vhost-user-blk: enable it on any POSIX s
From: |
Stefano Garzarella |
Subject: |
[PATCH RESEND v7 09/12] contrib/vhost-user-blk: enable it on any POSIX system |
Date: |
Wed, 12 Jun 2024 15:01:37 +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 6413e858ea..8436e0c3d6 100644
--- a/meson.build
+++ b/meson.build
@@ -1985,8 +1985,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 RESEND v7 00/12] vhost-user: support any POSIX system (tested on macOS, FreeBSD, OpenBSD), Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 01/12] libvhost-user: set msg.msg_control to NULL when it is empty, Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 02/12] libvhost-user: fail vu_message_write() if sendmsg() is failing, Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 03/12] libvhost-user: mask F_INFLIGHT_SHMFD if memfd is not supported, Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 04/12] vhost-user-server: do not set memory fd non-blocking, Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 05/12] contrib/vhost-user-blk: fix bind() using the right size of the address, Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 06/12] contrib/vhost-user-*: use QEMU bswap helper functions, Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 07/12] vhost-user: enable frontends on any POSIX system, Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 08/12] libvhost-user: enable it on any POSIX system, Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 09/12] contrib/vhost-user-blk: enable it on any POSIX system,
Stefano Garzarella <=
- [PATCH RESEND v7 10/12] hostmem: add a new memory backend based on POSIX shm_open(), Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 11/12] tests/qtest/vhost-user-blk-test: use memory-backend-shm, Stefano Garzarella, 2024/06/12
- [PATCH RESEND v7 12/12] tests/qtest/vhost-user-test: add a test case for memory-backend-shm, Stefano Garzarella, 2024/06/12
- Re: [PATCH RESEND v7 00/12] vhost-user: support any POSIX system (tested on macOS, FreeBSD, OpenBSD), Stefano Garzarella, 2024/06/17
- Re: [PATCH RESEND v7 00/12] vhost-user: support any POSIX system (tested on macOS, FreeBSD, OpenBSD), Markus Armbruster, 2024/06/17
- Re: [PATCH RESEND v7 00/12] vhost-user: support any POSIX system (tested on macOS, FreeBSD, OpenBSD), Stefano Garzarella, 2024/06/17
- Re: [PATCH RESEND v7 00/12] vhost-user: support any POSIX system (tested on macOS, FreeBSD, OpenBSD), Michael S. Tsirkin, 2024/06/17
- Re: [PATCH RESEND v7 00/12] vhost-user: support any POSIX system (tested on macOS, FreeBSD, OpenBSD), Stefano Garzarella, 2024/06/17