Verification successful on Cosmic. Updated the test-case kernel part (attached), and repeated it 20+ times, without any process hanging.
In all cases, the new function call into write_cache_pages() is observed in thread 0, between page index 2 and page index 1. [ 150.914872] mod_init():161 :: hello [ 150.917828] mod_init():207 :: kernel version: prop/-19/cosmic [ 150.950322] Program running, TID = 1429 [ 150.951566] kp1_pre_handler():073 :: state 0 .... :: pid = 1429, mapping = 0xffff8abcba385570, comm = 'test' [ 150.954205] kp1_pre_handler():082 :: state 0 -> 1 :: pid = 1429, mapping = 0xffff8abcba385570 [ 150.956518] kp2_pre_handler():122 :: state 1 .... :: pid = 1429, page index = 1 [ 150.958410] kp3_pre_handler():147 :: state 1 .... :: pid = 1429, page index = 1, calling writepage() [ 150.961047] kp2_pre_handler():122 :: state 1 .... :: pid = 1429, page index = 2 [ 150.964788] kp3_pre_handler():147 :: state 1 .... :: pid = 1429, page index = 2, calling writepage() [ 151.973660] Thread 0 running, TID = 1430! [ 151.977071] kp1_pre_handler():073 :: state 1 .... :: pid = 7, mapping = 0xffff8abcba385570, comm = 'kworker/u8:0' [ 151.984836] kp1_pre_handler():104 :: state 1 -> 2 :: pid = 7, mapping = 0xffff8abcba385570, comm ('kworker/u8:0') is kworker AND wbc->range_cyclic (0x1) is true AND mapping->writeback_index (0x2) is 0x2. [ 152.017726] kp2_pre_handler():122 :: state 2 .... :: pid = 7, page index = 2 [ 152.027193] kp3_pre_handler():147 :: state 2 .... :: pid = 7, page index = 2, calling writepage() [ 152.038466] kp1_pre_handler():073 :: state 2 .... :: pid = 7, mapping = 0xffff8abcba385570, comm = 'kworker/u8:0' [ 152.048736] kp2_pre_handler():122 :: state 2 .... :: pid = 7, page index = 1 [ 152.056642] kp2_pre_handler():126 :: state 2 -> 3 :: pid = 7, page index = 1, spin 5 seconds before lock_page()... [ 152.973731] Thread 1 running, TID = 1431! [ 152.974943] kp1_pre_handler():073 :: state 3 .... :: pid = 1431, mapping = 0xffff8abcba385570, comm = 'test' [ 152.977489] kp2_pre_handler():122 :: state 3 .... :: pid = 1431, page index = 1 [ 152.979140] kp3_pre_handler():147 :: state 3 .... :: pid = 1431, page index = 1, calling writepage() [ 152.981928] kp2_pre_handler():122 :: state 3 .... :: pid = 1431, page index = 2 [ 153.973895] Thread 2 running, TID = 1432! [ 153.975160] kp1_pre_handler():073 :: state 3 .... :: pid = 1432, mapping = 0xffff8abcba385570, comm = 'test' [ 153.978573] kp2_pre_handler():122 :: state 3 .... :: pid = 1432, page index = 1 [ 157.033588] kp2_pre_handler():130 :: state 3 -> 4 :: pid = 7, page index = 1, spun 5 seconds before lock_page(). [ 157.036151] kp3_pre_handler():147 :: state 4 .... :: pid = 1431, page index = 2, calling writepage() [ 157.038804] kp3_pre_handler():147 :: state 4 .... :: pid = 1432, page index = 1, calling writepage() [ 157.041212] kp2_pre_handler():122 :: state 4 .... :: pid = 1432, page index = 2 [ 157.058880] mod_exit():230 :: bye ** Tags removed: verification-needed-cosmic ** Tags added: verification-done-cosmic ** Attachment removed: "kprobe-test.c" https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1824827/+attachment/5255994/+files/kprobe-test.c -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1824827 Title: tasks doing write()/fsync() hit deadlock in write_cache_pages() To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1824827/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs