Whamcloud - gitweb
LU-13300 ldiskfs: port patches to improve extent status shrink 49/37749/7
authorWang Shilong <wshilong@ddn.com>
Thu, 27 Feb 2020 09:21:53 +0000 (17:21 +0800)
committerOleg Drokin <green@whamcloud.com>
Sat, 14 Mar 2020 17:25:57 +0000 (17:25 +0000)
commitcc058b253ac7987a8350880e1c34a39cdf0625e8
tree33de2ba2fd7976d29e9b65c702e2001b60041e3e
parentc7c83582aeee6f8bc54915cce6d64d3307bf1ff6
LU-13300 ldiskfs: port patches to improve extent status shrink

We see serious extent status shrink problem on some customer sites,
the backtrace could be:

NMI watchdog: BUG: soft lockup - CPU#6 stuck for 22s! [kswapd0:106]
[<ffffffffae1958c2>] merge+0x62/0xc0
[<ffffffffc123fc50>] ? ldiskfs_init_inode_table+0x410/0x410 [ldiskfs]
[<ffffffffae1959bb>] list_sort+0x9b/0x250
[<ffffffffc124014e>] __ldiskfs_es_shrink+0x1ce/0x2a0 [ldiskfs]
[<ffffffffc12402d4>] ldiskfs_es_shrink+0xb4/0x130 [ldiskfs]
[<ffffffffadfcf805>] shrink_slab+0x175/0x340
[<ffffffffae03e1d7>] ? vmpressure+0x87/0x90
[<ffffffffadfd3538>] balance_pgdat+0x3a8/0x5e0

Backport following Linux upstrem commits since v3.18 to RHEL7:

Linux-commit: eb68d0e2fc5a4e5c06324ea5f485fccbae626d05
ext4: track extent status tree shrinker delay statictics

Linux-commit: 50460fe8c6d1d95b16427936e351f277a1c72d43
ext4: remove extent status procfs files if journal load

Linux-commit: edaa53cac8fd4b96ed4b8f96c4933158ff2dd337
ext4: change LRU to round-robin in extent status tree shrinker

Linux-commit: b0dea4c1651f3cdb6d17604fa473e72cb74cdc6b
ext4: move handling of list of shrinkable inodes into extent status code

Linux-commit: dd4759255188771e60cf3455982959a1ba04f4eb
ext4: limit number of scanned extents in status tree shrinker

Linux-commit: 624d0f1dd7c80d2bac4fc3066b2ff3947f890883
ext4: cleanup flag definitions for extent status tree

Linux-commit: 2be12de98a1cc21c4de4e2d6fb2bf5aa0a279947
ext4: introduce aging to extent status tree

Test-Parameters: fstype=ldiskfs serverdistro=el7.7
Change-Id: Idd97872b1663bc001a63274a430eaade66efd37d
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Reviewed-on: https://review.whamcloud.com/37749
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Li Dongyang <dongyangli@ddn.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
ldiskfs/kernel_patches/patches/rhel7.6/ext4-change-LRU-to-round-robin-in-extent-status-tree.patch [new file with mode: 0644]
ldiskfs/kernel_patches/patches/rhel7.6/ext4-cleanup-flag-definitions-for-extent-status-tree.patch [new file with mode: 0644]
ldiskfs/kernel_patches/patches/rhel7.6/ext4-introduce-aging-to-extent-status-tree.patch [new file with mode: 0644]
ldiskfs/kernel_patches/patches/rhel7.6/ext4-limit-number-of-scanned-extents-in-status-tree-.patch [new file with mode: 0644]
ldiskfs/kernel_patches/patches/rhel7.6/ext4-move-handling-of-list-of-shrinkable-inodes-into.patch [new file with mode: 0644]
ldiskfs/kernel_patches/patches/rhel7.6/ext4-remove-extent-status-procfs-files-if-journal-lo.patch [new file with mode: 0644]
ldiskfs/kernel_patches/patches/rhel7.6/ext4-track-extent-status-tree-shrinker-delay-statict.patch [new file with mode: 0644]
ldiskfs/kernel_patches/series/ldiskfs-3.10-rhel7.6.series
ldiskfs/kernel_patches/series/ldiskfs-3.10-rhel7.7.series