From 8de32bc3c52da74b82755c8fd6973919997408fe Mon Sep 17 00:00:00 2001 From: Bernd Schubert Date: Fri, 5 Aug 2022 20:51:51 +0200 Subject: Add summary of changes regarding 'max_threads' to ChangeLog.rst Update the change log file with the summary of API changes related to the 'max_threads' changes. --- ChangeLog.rst | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/ChangeLog.rst b/ChangeLog.rst index f4cb07c..08df4a8 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -1,3 +1,58 @@ +libfuse 3.12.0 () +=========================== +* The 'max_idle_threads' parameter has performance implication + due to run time thread creation and destruction per request + and it is deprecated in favor of the new max_threads parameter. + + * API changes: + In order to avoid future version symboling and also to + allow to set fuse_loop_config defaults an API change has been + introduced beginning with API version (FUSE_USE_VERSION) 312. + 'struct fuse_loop_config' is now private and has to be + constructed using fuse_loop_cfg_create(). Besides allocating + memory this function also sets struct member default. + Desctruction (free) is done through fuse_loop_cfg_destroy(). + Struct parameters can be changed using fuse_loop_cfg_set_*() + functions. + New functions regarding the fuse-loop configuration are: + fuse_loop_cfg_create + fuse_loop_cfg_destroy + fuse_loop_cfg_set_idle_threads + fuse_loop_cfg_set_max_threads + fuse_loop_cfg_set_clone_fd + fuse_loop_cfg_convert (internal for API/ABI compatibility) + Functions details can be found in fuse_common.h + + In API version 312 the fuse_session_loop_mt() function now + also accepts struct fuse_loop_config * as NULL pointer and + uses defaults then. + + * Users of fuse_parse_cmdline() get the new option + 'max_threads' with API version 312. + + * File system conversion help: + - See example/passthrough_hp.cc + + #define FUSE_USE_VERSION FUSE_MAKE_VERSION(3, 12) + + ... + main(int argc, char *argv[]) + ... + struct fuse_loop_config *loop_config; + ... + loop_config = fuse_loop_cfg_create(); + ... + ret = fuse_session_loop_mt(se, loop_config); + ... + fuse_loop_cfg_destroy(loop_config); + + * Further notes: + Using max_threads == 1 and calling fuse_session_loop_mt() works, + it will run single threaded similar to fuse_session_loop(). In + fact, fuse_session_loop() might get deprecated in future + versions. + + libfuse 3.11.0 (2022-05-02) =========================== -- cgit v1.2.1