1*4882a593Smuzhiyun.. SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun================================================= 4*4882a593Smuzhiyunincfs: A stacked incremental filesystem for Linux 5*4882a593Smuzhiyun================================================= 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun/sys/fs interface 8*4882a593Smuzhiyun================= 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunPlease update Documentation/ABI/testing/sysfs-fs-incfs if you update this 11*4882a593Smuzhiyunsection. 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunincfs creates the following files in /sys/fs. 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunFeatures 16*4882a593Smuzhiyun-------- 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun/sys/fs/incremental-fs/features/corefs 19*4882a593Smuzhiyun Reads 'supported'. Always present. 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun/sys/fs/incremental-fs/features/v2 22*4882a593Smuzhiyun Reads 'supported'. Present if all v2 features of incfs are supported. These 23*4882a593Smuzhiyun are: 24*4882a593Smuzhiyun fs-verity support 25*4882a593Smuzhiyun inotify support 26*4882a593Smuzhiyun ioclts: 27*4882a593Smuzhiyun INCFS_IOC_SET_READ_TIMEOUTS 28*4882a593Smuzhiyun INCFS_IOC_GET_READ_TIMEOUTS 29*4882a593Smuzhiyun INCFS_IOC_GET_BLOCK_COUNT 30*4882a593Smuzhiyun INCFS_IOC_CREATE_MAPPED_FILE 31*4882a593Smuzhiyun .incomplete folder 32*4882a593Smuzhiyun .blocks_written pseudo file 33*4882a593Smuzhiyun report_uid mount option 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun/sys/fs/incremental-fs/features/zstd 36*4882a593Smuzhiyun Reads 'supported'. Present if zstd compression is supported for data blocks. 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunOptional per mount 39*4882a593Smuzhiyun------------------ 40*4882a593Smuzhiyun 41*4882a593SmuzhiyunFor each incfs mount, the mount option sysfs_name=[name] creates a /sys/fs 42*4882a593Smuzhiyunnode called: 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun/sys/fs/incremental-fs/instances/[name] 45*4882a593Smuzhiyun 46*4882a593SmuzhiyunThis will contain the following files: 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun/sys/fs/incremental-fs/instances/[name]/reads_delayed_min 49*4882a593Smuzhiyun Returns a count of the number of reads that were delayed as a result of the 50*4882a593Smuzhiyun per UID read timeouts min time setting. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun/sys/fs/incremental-fs/instances/[name]/reads_delayed_min_us 53*4882a593Smuzhiyun Returns total delay time for all files since first mount as a result of the 54*4882a593Smuzhiyun per UID read timeouts min time setting. 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun/sys/fs/incremental-fs/instances/[name]/reads_delayed_pending 57*4882a593Smuzhiyun Returns a count of the number of reads that were delayed as a result of 58*4882a593Smuzhiyun waiting for a pending read. 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun/sys/fs/incremental-fs/instances/[name]/reads_delayed_pending_us 61*4882a593Smuzhiyun Returns total delay time for all files since first mount as a result of 62*4882a593Smuzhiyun waiting for a pending read. 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun/sys/fs/incremental-fs/instances/[name]/reads_failed_hash_verification 65*4882a593Smuzhiyun Returns number of reads that failed because of hash verification failures. 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun/sys/fs/incremental-fs/instances/[name]/reads_failed_other 68*4882a593Smuzhiyun Returns number of reads that failed for reasons other than timing out or 69*4882a593Smuzhiyun hash failures. 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun/sys/fs/incremental-fs/instances/[name]/reads_failed_timed_out 72*4882a593Smuzhiyun Returns number of reads that timed out. 73*4882a593Smuzhiyun 74*4882a593SmuzhiyunFor reads_delayed_*** settings, note that a file can count for both 75*4882a593Smuzhiyunreads_delayed_min and reads_delayed_pending if incfs first waits for a pending 76*4882a593Smuzhiyunread then has to wait further for the min time. In that case, the time spent 77*4882a593Smuzhiyunwaiting is split between reads_delayed_pending_us, which is increased by the 78*4882a593Smuzhiyuntime spent waiting for the pending read, and reads_delayed_min_us, which is 79*4882a593Smuzhiyunincreased by the remainder of the time spent waiting. 80*4882a593Smuzhiyun 81*4882a593SmuzhiyunReads that timed out are not added to the reads_delayed_pending or the 82*4882a593Smuzhiyunreads_delayed_pending_us counters. 83