I suspect the issue is caused by this commit: commit c22d70a162d3cc177282c4487be4d54876ca55c8 Author: Roman Gushchin <[email protected]> Date: Mon Jun 28 19:36:03 2021 -0700 writeback, cgroup: release dying cgwbs by switching attached inodes
It introduces a kworker "cleanup_offline_cgwbs_work", which leverages inode_switch_wbs_work_fn to keep moving inodes from dying cgwb to their parent, so it can reclaim more memory from wb structures. Moving inodes from a wb needs to take its lock (wb->list_lock) which also needs to be taken in inode_switch_wbs, that could be where the contention happens. I built a test kernel based on gcp kernel (6.8.0-1019) disabling this kworker for "testing only": - queue_work(system_unbound_wq, &cleanup_offline_cgwbs_work); + //queue_work(system_unbound_wq, &cleanup_offline_cgwbs_work); https://launchpad.net/~gerald-yang-tw/+archive/ubuntu/400986-debug If you would like to help testing, please add the above test PPA and install: linux-gcp-6.8-headers-6.8.0-1019 linux-gcp-6.8-tools-6.8.0-1019 linux-headers-6.8.0-1019-gcp linux-image-unsigned-6.8.0-1019-gcp linux-modules-6.8.0-1019-gcp linux-modules-extra-6.8.0-1019-gcp Please note: This test kernel is only used to confirm if this kworker is the cause of the issue, not a fix. Thanks, Gerald -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2038492 Title: workqueue: inode_switch_wbs_work_fn hogged CPU for >10000us 16 times, consider switching to WQ_UNBOUND To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux-oem-6.5/+bug/2038492/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
