tree: https://github.com/0day-ci/linux/commits/UPDATE-20220111-073805/trondmy-kernel-org/iomap-Address-soft-lockup-in-iomap_finish_ioend/20211231-034313 head: f1c8b8b2e616895aa0f5be4e53d4cd1ffa751001 commit: f1c8b8b2e616895aa0f5be4e53d4cd1ffa751001 iomap: Address soft lockup in iomap_finish_ioend() date: 3 days ago config: arm-randconfig-m031-20220113 (https://download.01.org/0day-ci/archive/20220113/202201132101.AoT0bCj5-lkp@intel.com/config) compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot New smatch warnings: fs/iomap/buffered-io.c:1098 iomap_finish_ioends() warn: inconsistent indenting fs/iomap/buffered-io.c:1330 iomap_add_to_ioend() warn: inconsistent indenting Old smatch warnings: fs/iomap/buffered-io.c:1434 iomap_writepage_map() warn: inconsistent indenting vim +1098 fs/iomap/buffered-io.c 1072 1073 /* 1074 * Ioend completion routine for merged bios. This can only be called from task 1075 * contexts as merged ioends can be of unbound length. Hence we have to break up 1076 * the page writeback completion into manageable chunks to avoid long scheduler 1077 * holdoffs. We aim to keep scheduler holdoffs down below 10ms so that we get 1078 * good batch processing throughput without creating adverse scheduler latency 1079 * conditions. 1080 */ 1081 void 1082 iomap_finish_ioends(struct iomap_ioend *ioend, int error) 1083 { 1084 struct list_head tmp; 1085 u32 pages; 1086 1087 might_sleep(); 1088 1089 list_replace_init(&ioend->io_list, &tmp); 1090 pages = iomap_finish_ioend(ioend, error); 1091 1092 while (!list_empty(&tmp)) { 1093 trace_printk("pages %u, start sector 0x%llx size %lu pcnt %u", 1094 ioend->io_pages, 1095 ioend->io_sector, 1096 ioend->io_size, 1097 pages); > 1098 if (pages > 32768) { 1099 cond_resched(); 1100 pages = 0; 1101 } 1102 ioend = list_first_entry(&tmp, struct iomap_ioend, io_list); 1103 list_del_init(&ioend->io_list); 1104 pages += iomap_finish_ioend(ioend, error); 1105 } 1106 trace_printk("pages %u, start sector 0x%llx size %lu pcnt %u", 1107 ioend->io_pages, 1108 ioend->io_sector, 1109 ioend->io_size, 1110 pages); 1111 } 1112 EXPORT_SYMBOL_GPL(iomap_finish_ioends); 1113 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org