mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2026-01-04 03:31:53 +00:00
For many use cases (e.g. container images are just fetched from remote),
performance will be impacted if underlay page cache is up-to-date but
direct i/o flushes dirty pages first.
Instead, let's use buffered I/O by default to keep in sync with loop
devices and add a (re)mount option to explicitly give a try to use
direct I/O if supported by the underlying files.
The container startup time is improved as below:
[workload] docker.io/library/workpress:latest
unpack 1st run non-1st runs
EROFS snapshotter buffered I/O file 4.586404265s 0.308s 0.198s
EROFS snapshotter direct I/O file 4.581742849s 2.238s 0.222s
EROFS snapshotter loop 4.596023152s 0.346s 0.201s
Overlayfs snapshotter 5.382851037s 0.206s 0.214s
Fixes:
|
||
|---|---|---|
| .. | ||
| compress.h | ||
| data.c | ||
| decompressor_deflate.c | ||
| decompressor_lzma.c | ||
| decompressor_zstd.c | ||
| decompressor.c | ||
| dir.c | ||
| erofs_fs.h | ||
| fileio.c | ||
| fscache.c | ||
| inode.c | ||
| internal.h | ||
| Kconfig | ||
| Makefile | ||
| namei.c | ||
| super.c | ||
| sysfs.c | ||
| xattr.c | ||
| xattr.h | ||
| zdata.c | ||
| zmap.c | ||
| zutil.c | ||