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>