Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

f2fs: trace elapsed time for node_change lock

Use f2fs_{down,up}_read_trace for node_change to trace lock elapsed time.

Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

authored by

Chao Yu and committed by
Jaegeuk Kim
f9f93602 66e9e0d5

+6 -4
+2 -2
fs/f2fs/data.c
··· 1472 1472 { 1473 1473 f2fs_down_read(&sbi->cp_enable_rwsem); 1474 1474 if (flag == F2FS_GET_BLOCK_PRE_AIO) 1475 - f2fs_down_read(&sbi->node_change); 1475 + f2fs_down_read_trace(&sbi->node_change, lc); 1476 1476 else 1477 1477 f2fs_lock_op(sbi, lc); 1478 1478 } ··· 1482 1482 int flag) 1483 1483 { 1484 1484 if (flag == F2FS_GET_BLOCK_PRE_AIO) 1485 - f2fs_up_read(&sbi->node_change); 1485 + f2fs_up_read_trace(&sbi->node_change, lc); 1486 1486 else 1487 1487 f2fs_unlock_op(sbi, lc); 1488 1488 f2fs_up_read(&sbi->cp_enable_rwsem);
+1
fs/f2fs/f2fs.h
··· 176 176 enum f2fs_lock_name { 177 177 LOCK_NAME_NONE, 178 178 LOCK_NAME_CP_RWSEM, 179 + LOCK_NAME_NODE_CHANGE, 179 180 }; 180 181 181 182 /*
+1 -1
fs/f2fs/super.c
··· 4897 4897 mutex_init(&sbi->writepages); 4898 4898 init_f2fs_rwsem(&sbi->cp_global_sem); 4899 4899 init_f2fs_rwsem(&sbi->node_write); 4900 - init_f2fs_rwsem(&sbi->node_change); 4900 + init_f2fs_rwsem_trace(&sbi->node_change, sbi, LOCK_NAME_NODE_CHANGE); 4901 4901 spin_lock_init(&sbi->stat_lock); 4902 4902 init_f2fs_rwsem_trace(&sbi->cp_rwsem, sbi, LOCK_NAME_CP_RWSEM); 4903 4903 init_f2fs_rwsem(&sbi->cp_enable_rwsem);
+2 -1
include/trace/events/f2fs.h
··· 186 186 187 187 #define show_lock_name(lock) \ 188 188 __print_symbolic(lock, \ 189 - { LOCK_NAME_CP_RWSEM, "cp_rwsem" }) 189 + { LOCK_NAME_CP_RWSEM, "cp_rwsem" }, \ 190 + { LOCK_NAME_NODE_CHANGE, "node_change" }) 190 191 191 192 struct f2fs_sb_info; 192 193 struct f2fs_io_info;