From b773020464641d3e9cec5ad5fa35e7153e54e118 Mon Sep 17 00:00:00 2001 From: izxl007 Date: Tue, 3 Jun 2025 22:04:52 +0800 Subject: Update how to use the io_uring and io_uring_q_depth mount options MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch updates how to use the io_uring and io_uring_q_depth mount options. There are two reasons for this: 1. It is recommended for end-users to use a format like “-o io_uring" (with a space) in README.fuse-io-uring. This is because, in the passthrough_hp example, cxxopts does not support the "-oio_uring" format (without a space), and using it would result in a syntax error. 2. Remove redundant "--uring" and "--uring-q-depth=" from passthrough_hp example. Signed-off-by: izxl007 --- example/passthrough_hp.cc | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) (limited to 'example') diff --git a/example/passthrough_hp.cc b/example/passthrough_hp.cc index b88c2c5..f1fc927 100644 --- a/example/passthrough_hp.cc +++ b/example/passthrough_hp.cc @@ -77,9 +77,6 @@ using namespace std; #define SFS_DEFAULT_THREADS "-1" // take libfuse value as default #define SFS_DEFAULT_CLONE_FD "0" -#define SFS_DEFAULT_URING "1" -#define SFS_DEFAULT_URING_Q_DEPTH "0" -#define SFS_DEFAULT_URING_ARGLEN "0" /* We are re-using pointers to our `struct sfs_inode` and `struct sfs_dirp` elements as inodes and file handles. This means that we @@ -158,10 +155,6 @@ struct Fs { bool nocache; size_t num_threads; bool clone_fd; - struct { - bool enable; - int queue_depth; - } uring; std::string fuse_mount_options; bool direct_io; @@ -1410,10 +1403,8 @@ static cxxopts::ParseResult parse_options(int argc, char **argv) { ("num-threads", "Number of libfuse worker threads", cxxopts::value()->default_value(SFS_DEFAULT_THREADS)) ("clone-fd", "use separate fuse device fd for each thread") - ("direct-io", "enable fuse kernel internal direct-io") - ("uring", "use uring communication") - ("uring-q-depth", "io-uring queue depth", - cxxopts::value()->default_value(SFS_DEFAULT_URING_Q_DEPTH)); + ("direct-io", "enable fuse kernel internal direct-io"); + // FIXME: Find a better way to limit the try clause to just // opt_parser.parse() (cf. https://github.com/jarro2783/cxxopts/issues/146) auto options = parse_wrapper(opt_parser, argc, argv); @@ -1446,9 +1437,6 @@ static cxxopts::ParseResult parse_options(int argc, char **argv) { fs.clone_fd = options.count("clone-fd"); fs.direct_io = options.count("direct-io"); - fs.uring.enable = options.count("uring"); - fs.uring.queue_depth = options["uring-q-depth"].as(); - char* resolved_path = realpath(argv[1], NULL); if (resolved_path == NULL) warn("WARNING: realpath() failed with"); @@ -1534,13 +1522,6 @@ int main(int argc, char *argv[]) { (fs.debug_fuse && fuse_opt_add_arg(&args, "-odebug"))) errx(3, "ERROR: Out of memory adding arguments"); - if (fs.uring.enable) { - if (fuse_opt_add_arg(&args, "-oio_uring") || - fuse_opt_add_arg(&args, ("-oio_uring_q_depth=" + - std::to_string(fs.uring.queue_depth)).c_str())) - errx(3, "ERROR: Out of memory adding io-uring arguments"); - } - ret = -1; fuse_lowlevel_ops sfs_oper {}; assign_operations(sfs_oper); -- cgit v1.2.3