[PATCH v10] erofs-utils: add support for fuse 2/3 lowlevel API
Gao Xiang
hsiangkao at linux.alibaba.com
Tue Oct 10 14:51:01 AEDT 2023
On 2023/9/18 17:03, Li Yiyan wrote:
> Support FUSE low-level APIs for erofsfuse. Lowlevel APIs offer improved
> performance compared to the previous high-level APIs, while maintaining
> compatibility with libfuse version 2(>=2.6) and 3 (>=3.0).
>
> Dataset: linux 5.15
> Compression algorithm: lz4hc,12
> Additional options: -T0 -C16384
> Test options: --warmup 3 -p "echo 3 > /proc/sys/vm/drop_caches; sleep 1"
>
> Evaluation result (highlevel->lowlevel avg time):
> - Sequence metadata: 777.3 ms->180.9 ms
> - Sequence data: 3.282 s->818.1 ms
> - Random metadata: 1.571 s->928.3 ms
> - Random data: 2.461 s->597.8 ms
>
> Signed-off-by: Li Yiyan <lyy0627 at sjtu.edu.cn>
Looks good to me, applied to -experimental now.
...
>
> static void usage(void)
> {
> - struct fuse_args args = FUSE_ARGS_INIT(0, NULL);
> +#if FUSE_MAJOR_VERSION >= 3
> + fuse_lowlevel_version();
> +#endif
> + fprintf(stderr, "erofsfuse version: %s\n\n", cfg.c_version);
>
> fputs("usage: [options] IMAGE MOUNTPOINT\n\n"
> "Options:\n"
> @@ -220,12 +546,15 @@ static void usage(void)
> " --device=# specify an extra device to be used together\n"
> #if FUSE_MAJOR_VERSION < 3
> " --help display this help and exit\n"
> + " --version display erofsfuse version\n"
> #endif
> "\n", stderr);
>
> #if FUSE_MAJOR_VERSION >= 3
> + fputs("\nFUSE options:\n", stderr);
> fuse_cmdline_help();
> #else
> + struct fuse_args args = FUSE_ARGS_INIT(0, NULL);
It's not a good idea to mix definitions and the rest code.
I will fix manually.
Thanks,
Gao Xiang
More information about the Linux-erofs
mailing list