lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202212071715.FXStQlMF-lkp@intel.com>
Date:   Wed, 7 Dec 2022 17:57:43 +0800
From:   kernel test robot <lkp@...el.com>
To:     Yangtao Li <frank.li@...o.com>, jaegeuk@...nel.org, chao@...nel.org
Cc:     oe-kbuild-all@...ts.linux.dev,
        linux-f2fs-devel@...ts.sourceforge.net,
        linux-kernel@...r.kernel.org, qixiaoyu1@...omi.com,
        xiongping1@...omi.com, Yangtao Li <frank.li@...o.com>
Subject: Re: [PATCH] f2fs: introduce hot_data_age_threshold and
 warm_data_age_threshold mount opt

Hi Yangtao,

I love your patch! Perhaps something to improve:

[auto build test WARNING on jaegeuk-f2fs/dev-test]
[cannot apply to jaegeuk-f2fs/dev linus/master v6.1-rc8 next-20221207]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Yangtao-Li/f2fs-introduce-hot_data_age_threshold-and-warm_data_age_threshold-mount-opt/20221206-143754
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
patch link:    https://lore.kernel.org/r/20221206063616.68522-1-frank.li%40vivo.com
patch subject: [PATCH] f2fs: introduce hot_data_age_threshold and warm_data_age_threshold mount opt
reproduce:
        # https://github.com/intel-lab-lkp/linux/commit/91f112832ffd9afa43d01f4acae672c7dfae45b6
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Yangtao-Li/f2fs-introduce-hot_data_age_threshold-and-warm_data_age_threshold-mount-opt/20221206-143754
        git checkout 91f112832ffd9afa43d01f4acae672c7dfae45b6
        make menuconfig
        # enable CONFIG_COMPILE_TEST, CONFIG_WARN_MISSING_DOCUMENTS, CONFIG_WARN_ABI_ERRORS
        make htmldocs

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

>> Documentation/filesystems/f2fs.rst:354: WARNING: Malformed table.

vim +354 Documentation/filesystems/f2fs.rst

   106	
   107	
   108	======================== ============================================================
   109	background_gc=%s	 Turn on/off cleaning operations, namely garbage
   110				 collection, triggered in background when I/O subsystem is
   111				 idle. If background_gc=on, it will turn on the garbage
   112				 collection and if background_gc=off, garbage collection
   113				 will be turned off. If background_gc=sync, it will turn
   114				 on synchronous garbage collection running in background.
   115				 Default value for this option is on. So garbage
   116				 collection is on by default.
   117	gc_merge		 When background_gc is on, this option can be enabled to
   118				 let background GC thread to handle foreground GC requests,
   119				 it can eliminate the sluggish issue caused by slow foreground
   120				 GC operation when GC is triggered from a process with limited
   121				 I/O and CPU resources.
   122	nogc_merge		 Disable GC merge feature.
   123	disable_roll_forward	 Disable the roll-forward recovery routine
   124	norecovery		 Disable the roll-forward recovery routine, mounted read-
   125				 only (i.e., -o ro,disable_roll_forward)
   126	discard/nodiscard	 Enable/disable real-time discard in f2fs, if discard is
   127				 enabled, f2fs will issue discard/TRIM commands when a
   128				 segment is cleaned.
   129	no_heap			 Disable heap-style segment allocation which finds free
   130				 segments for data from the beginning of main area, while
   131				 for node from the end of main area.
   132	nouser_xattr		 Disable Extended User Attributes. Note: xattr is enabled
   133				 by default if CONFIG_F2FS_FS_XATTR is selected.
   134	noacl			 Disable POSIX Access Control List. Note: acl is enabled
   135				 by default if CONFIG_F2FS_FS_POSIX_ACL is selected.
   136	active_logs=%u		 Support configuring the number of active logs. In the
   137				 current design, f2fs supports only 2, 4, and 6 logs.
   138				 Default number is 6.
   139	disable_ext_identify	 Disable the extension list configured by mkfs, so f2fs
   140				 is not aware of cold files such as media files.
   141	inline_xattr		 Enable the inline xattrs feature.
   142	noinline_xattr		 Disable the inline xattrs feature.
   143	inline_xattr_size=%u	 Support configuring inline xattr size, it depends on
   144				 flexible inline xattr feature.
   145	inline_data		 Enable the inline data feature: Newly created small (<~3.4k)
   146				 files can be written into inode block.
   147	inline_dentry		 Enable the inline dir feature: data in newly created
   148				 directory entries can be written into inode block. The
   149				 space of inode block which is used to store inline
   150				 dentries is limited to ~3.4k.
   151	noinline_dentry		 Disable the inline dentry feature.
   152	flush_merge		 Merge concurrent cache_flush commands as much as possible
   153				 to eliminate redundant command issues. If the underlying
   154				 device handles the cache_flush command relatively slowly,
   155				 recommend to enable this option.
   156	nobarrier		 This option can be used if underlying storage guarantees
   157				 its cached data should be written to the novolatile area.
   158				 If this option is set, no cache_flush commands are issued
   159				 but f2fs still guarantees the write ordering of all the
   160				 data writes.
   161	barrier		 If this option is set, cache_flush commands are allowed to be
   162				 issued.
   163	fastboot		 This option is used when a system wants to reduce mount
   164				 time as much as possible, even though normal performance
   165				 can be sacrificed.
   166	extent_cache		 Enable an extent cache based on rb-tree, it can cache
   167				 as many as extent which map between contiguous logical
   168				 address and physical address per inode, resulting in
   169				 increasing the cache hit ratio. Set by default.
   170	noextent_cache		 Disable an extent cache based on rb-tree explicitly, see
   171				 the above extent_cache mount option.
   172	noinline_data		 Disable the inline data feature, inline data feature is
   173				 enabled by default.
   174	data_flush		 Enable data flushing before checkpoint in order to
   175				 persist data of regular and symlink.
   176	reserve_root=%d		 Support configuring reserved space which is used for
   177				 allocation from a privileged user with specified uid or
   178				 gid, unit: 4KB, the default limit is 0.2% of user blocks.
   179	resuid=%d		 The user ID which may use the reserved blocks.
   180	resgid=%d		 The group ID which may use the reserved blocks.
   181	fault_injection=%d	 Enable fault injection in all supported types with
   182				 specified injection rate.
   183	fault_type=%d		 Support configuring fault injection type, should be
   184				 enabled with fault_injection option, fault type value
   185				 is shown below, it supports single or combined type.
   186	
   187				 ===================	  ===========
   188				 Type_Name		  Type_Value
   189				 ===================	  ===========
   190				 FAULT_KMALLOC		  0x000000001
   191				 FAULT_KVMALLOC		  0x000000002
   192				 FAULT_PAGE_ALLOC	  0x000000004
   193				 FAULT_PAGE_GET		  0x000000008
   194				 FAULT_ALLOC_BIO	  0x000000010 (obsolete)
   195				 FAULT_ALLOC_NID	  0x000000020
   196				 FAULT_ORPHAN		  0x000000040
   197				 FAULT_BLOCK		  0x000000080
   198				 FAULT_DIR_DEPTH	  0x000000100
   199				 FAULT_EVICT_INODE	  0x000000200
   200				 FAULT_TRUNCATE		  0x000000400
   201				 FAULT_READ_IO		  0x000000800
   202				 FAULT_CHECKPOINT	  0x000001000
   203				 FAULT_DISCARD		  0x000002000
   204				 FAULT_WRITE_IO		  0x000004000
   205				 FAULT_SLAB_ALLOC	  0x000008000
   206				 FAULT_DQUOT_INIT	  0x000010000
   207				 FAULT_LOCK_OP		  0x000020000
   208				 FAULT_BLKADDR		  0x000040000
   209				 ===================	  ===========
   210	mode=%s			 Control block allocation mode which supports "adaptive"
   211				 and "lfs". In "lfs" mode, there should be no random
   212				 writes towards main area.
   213				 "fragment:segment" and "fragment:block" are newly added here.
   214				 These are developer options for experiments to simulate filesystem
   215				 fragmentation/after-GC situation itself. The developers use these
   216				 modes to understand filesystem fragmentation/after-GC condition well,
   217				 and eventually get some insights to handle them better.
   218				 In "fragment:segment", f2fs allocates a new segment in ramdom
   219				 position. With this, we can simulate the after-GC condition.
   220				 In "fragment:block", we can scatter block allocation with
   221				 "max_fragment_chunk" and "max_fragment_hole" sysfs nodes.
   222				 We added some randomness to both chunk and hole size to make
   223				 it close to realistic IO pattern. So, in this mode, f2fs will allocate
   224				 1..<max_fragment_chunk> blocks in a chunk and make a hole in the
   225				 length of 1..<max_fragment_hole> by turns. With this, the newly
   226				 allocated blocks will be scattered throughout the whole partition.
   227				 Note that "fragment:block" implicitly enables "fragment:segment"
   228				 option for more randomness.
   229				 Please, use these options for your experiments and we strongly
   230				 recommend to re-format the filesystem after using these options.
   231	io_bits=%u		 Set the bit size of write IO requests. It should be set
   232				 with "mode=lfs".
   233	usrquota		 Enable plain user disk quota accounting.
   234	grpquota		 Enable plain group disk quota accounting.
   235	prjquota		 Enable plain project quota accounting.
   236	usrjquota=<file>	 Appoint specified file and type during mount, so that quota
   237	grpjquota=<file>	 information can be properly updated during recovery flow,
   238	prjjquota=<file>	 <quota file>: must be in root directory;
   239	jqfmt=<quota type>	 <quota type>: [vfsold,vfsv0,vfsv1].
   240	offusrjquota		 Turn off user journalled quota.
   241	offgrpjquota		 Turn off group journalled quota.
   242	offprjjquota		 Turn off project journalled quota.
   243	quota			 Enable plain user disk quota accounting.
   244	noquota			 Disable all plain disk quota option.
   245	alloc_mode=%s		 Adjust block allocation policy, which supports "reuse"
   246				 and "default".
   247	fsync_mode=%s		 Control the policy of fsync. Currently supports "posix",
   248				 "strict", and "nobarrier". In "posix" mode, which is
   249				 default, fsync will follow POSIX semantics and does a
   250				 light operation to improve the filesystem performance.
   251				 In "strict" mode, fsync will be heavy and behaves in line
   252				 with xfs, ext4 and btrfs, where xfstest generic/342 will
   253				 pass, but the performance will regress. "nobarrier" is
   254				 based on "posix", but doesn't issue flush command for
   255				 non-atomic files likewise "nobarrier" mount option.
   256	test_dummy_encryption
   257	test_dummy_encryption=%s
   258				 Enable dummy encryption, which provides a fake fscrypt
   259				 context. The fake fscrypt context is used by xfstests.
   260				 The argument may be either "v1" or "v2", in order to
   261				 select the corresponding fscrypt policy version.
   262	checkpoint=%s[:%u[%]]	 Set to "disable" to turn off checkpointing. Set to "enable"
   263				 to reenable checkpointing. Is enabled by default. While
   264				 disabled, any unmounting or unexpected shutdowns will cause
   265				 the filesystem contents to appear as they did when the
   266				 filesystem was mounted with that option.
   267				 While mounting with checkpoint=disabled, the filesystem must
   268				 run garbage collection to ensure that all available space can
   269				 be used. If this takes too much time, the mount may return
   270				 EAGAIN. You may optionally add a value to indicate how much
   271				 of the disk you would be willing to temporarily give up to
   272				 avoid additional garbage collection. This can be given as a
   273				 number of blocks, or as a percent. For instance, mounting
   274				 with checkpoint=disable:100% would always succeed, but it may
   275				 hide up to all remaining free space. The actual space that
   276				 would be unusable can be viewed at /sys/fs/f2fs/<disk>/unusable
   277				 This space is reclaimed once checkpoint=enable.
   278	checkpoint_merge	 When checkpoint is enabled, this can be used to create a kernel
   279				 daemon and make it to merge concurrent checkpoint requests as
   280				 much as possible to eliminate redundant checkpoint issues. Plus,
   281				 we can eliminate the sluggish issue caused by slow checkpoint
   282				 operation when the checkpoint is done in a process context in
   283				 a cgroup having low i/o budget and cpu shares. To make this
   284				 do better, we set the default i/o priority of the kernel daemon
   285				 to "3", to give one higher priority than other kernel threads.
   286				 This is the same way to give a I/O priority to the jbd2
   287				 journaling thread of ext4 filesystem.
   288	nocheckpoint_merge	 Disable checkpoint merge feature.
   289	compress_algorithm=%s	 Control compress algorithm, currently f2fs supports "lzo",
   290				 "lz4", "zstd" and "lzo-rle" algorithm.
   291	compress_algorithm=%s:%d Control compress algorithm and its compress level, now, only
   292				 "lz4" and "zstd" support compress level config.
   293				 algorithm	level range
   294				 lz4		3 - 16
   295				 zstd		1 - 22
   296	compress_log_size=%u	 Support configuring compress cluster size. The size will
   297				 be 4KB * (1 << %u). The default and minimum sizes are 16KB.
   298	compress_extension=%s	 Support adding specified extension, so that f2fs can enable
   299				 compression on those corresponding files, e.g. if all files
   300				 with '.ext' has high compression rate, we can set the '.ext'
   301				 on compression extension list and enable compression on
   302				 these file by default rather than to enable it via ioctl.
   303				 For other files, we can still enable compression via ioctl.
   304				 Note that, there is one reserved special extension '*', it
   305				 can be set to enable compression for all files.
   306	nocompress_extension=%s	 Support adding specified extension, so that f2fs can disable
   307				 compression on those corresponding files, just contrary to compression extension.
   308				 If you know exactly which files cannot be compressed, you can use this.
   309				 The same extension name can't appear in both compress and nocompress
   310				 extension at the same time.
   311				 If the compress extension specifies all files, the types specified by the
   312				 nocompress extension will be treated as special cases and will not be compressed.
   313				 Don't allow use '*' to specifie all file in nocompress extension.
   314				 After add nocompress_extension, the priority should be:
   315				 dir_flag < comp_extention,nocompress_extension < comp_file_flag,no_comp_file_flag.
   316				 See more in compression sections.
   317	
   318	compress_chksum		 Support verifying chksum of raw data in compressed cluster.
   319	compress_mode=%s	 Control file compression mode. This supports "fs" and "user"
   320				 modes. In "fs" mode (default), f2fs does automatic compression
   321				 on the compression enabled files. In "user" mode, f2fs disables
   322				 the automaic compression and gives the user discretion of
   323				 choosing the target file and the timing. The user can do manual
   324				 compression/decompression on the compression enabled files using
   325				 ioctls.
   326	compress_cache		 Support to use address space of a filesystem managed inode to
   327				 cache compressed block, in order to improve cache hit ratio of
   328				 random read.
   329	inlinecrypt		 When possible, encrypt/decrypt the contents of encrypted
   330				 files using the blk-crypto framework rather than
   331				 filesystem-layer encryption. This allows the use of
   332				 inline encryption hardware. The on-disk format is
   333				 unaffected. For more details, see
   334				 Documentation/block/inline-encryption.rst.
   335	atgc			 Enable age-threshold garbage collection, it provides high
   336				 effectiveness and efficiency on background GC.
   337	discard_unit=%s		 Control discard unit, the argument can be "block", "segment"
   338				 and "section", issued discard command's offset/size will be
   339				 aligned to the unit, by default, "discard_unit=block" is set,
   340				 so that small discard functionality is enabled.
   341				 For blkzoned device, "discard_unit=section" will be set by
   342				 default, it is helpful for large sized SMR or ZNS devices to
   343				 reduce memory cost by getting rid of fs metadata supports small
   344				 discard.
   345	memory=%s		 Control memory mode. This supports "normal" and "low" modes.
   346				 "low" mode is introduced to support low memory devices.
   347				 Because of the nature of low memory devices, in this mode, f2fs
   348				 will try to save memory sometimes by sacrificing performance.
   349				 "normal" mode is the default mode and same as before.
   350	age_extent_cache	 Enable an age extent cache based on rb-tree. It records
   351				 data block update frequency of the extent per inode, in
   352				 order to provide better temperature hints for data block
   353				 allocation.
 > 354	hot_data_age_threshold=%u	 When age_extent_cache is on, it controls the age
   355				 threshold to indicate the data blocks as hot. By default it was
   356				 initialized as 262144 blocks(equals to 1GB).
   357	warm_data_age_threshold=%u	 When age_extent_cache is on, it controls the age
   358				 threshold to indicate the data blocks as warm. By default it was
   359				 initialized as 2621440 blocks(equals to 10GB).
   360	======================== ============================================================
   361	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

View attachment "config" of type "text/plain" (38870 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ