C1
el0t_64_sync
|__arm64_sys_write
|vfs_write
|fuse_file_write_iter
|f2fs_write_begin
|f2fs_get_block
|f2fs_reserve_new_blocks
| inc_valid_block_count.27232
|__dquot_alloc_space
|dquot_add_space
| spin_lock(&dquot->dq_dqb_lock); <----- two
ffffff809b05ad70 tail位置 c1 x1 : 0000000000200101 x0 : ffffff809b05ad70
|queued_spin_lock_slowpath
C2
|el0t_64_sync
|invoke_syscall
|do_filp_open
|path_openat
|fuse_atomic_open
|fuse_create_open_backing
|vfs_create
|f2fs_add_dentry
|f2fs_add_inline_entry
|f2fs_init_inode_metadata
|f2fs_new_node_page
|inc_valid_node_count
|dquot_alloc_inode
|//bl 0xffffffc0086c4f14 <dquot_add_inodes>
|dquot_add_inodes
|1285 spin_lock(&dquot->dq_dqb_lock); [H 10413.941527] c2 x1 : 0000000000080000 x0 : ffffff809b05ad70 <--- two
|queued_spin_lock_slowpath
C3
el0t_64_sync
|invoke_syscall
|__arm64_sys_unlinkat
|do_unlinkat
|iput
|evict
|f2fs_evict_inode
|f2fs_remove_inode_page
|truncate_node
|dec_valid_node_count
|bl 0xffffffc0086ca838 <dquot_free_inode>
|1917 void dquot_free_inode(struct inode *inode)
|1936 spin_lock(&dquots[cnt]->dq_dqb_lock); [H 10413.941531] c3 x1 : 00000000000c0000 x0 : ffffff809b05ad70 <---- two
1604 struct f2fs_sb_info {
spinlock_t stat_lock; /* lock for stat operations */
C5
kthread
|wb_workfn
|wb_do_writeback
|__writeback_inodes_wb
|__writeback_single_inode
|do_writepages
|f2fs_write_data_pages
|__f2fs_write_data_pages
|f2fs_write_cache_pages
|f2fs_write_single_data_page
|f2fs_do_write_data_page
|2819 int __test_set_page_writeback(struct page *page, bool keep_write) //XA_STATE(xas, &mapping->i_pages, page_index(page)); <--- three
|xas_lock_irqsave(&xas, flags);
| queued_spin_lock_slowpath at ffffffc0082872e0 存在疑问 [H 10413.941529] c5 x1 : 0000000000000101 x0 : ffffff807c2cc458 tail
C7
el0t_64_sync
|el0t_64_sync_handler
|__arm64_sys_write
|vfs_write
|fuse_file_write_iter_backing
|do_iter_write
|f2fs_file_write_iter
|f2fs_preallocate_blocks
|f2fs_map_blocks
|f2fs_reserve_new_blocks
|inc_valid_block_count.27232
|__dquot_alloc_space
|spin_lock(&inode->i_lock); <---- one
|dquot_add_space
|spin_lock(&dquot->dq_dqb_lock); 这里拿锁 block了C1 C2 C3 <----- two
|irq_enter
|blk_done_softirq
|mmc_blk_mq_complete
|mmc_blk_cqe_complete_rq
|blk_update_request
|bio_endio
|f2fs_write_end_io
|end_page_writeback
|2775 int test_clear_page_writeback(struct page *page)
|xa_lock_irqsave(&mapping->i_pages, flags); <----- three
|queued_spin_lock_slowpath [H 10413.941582] c7 x1 : 0000000000000001 x0 : ffffff807c2cc458 pending locked位置已1,再pending位置
C6
|kthread
|shrink_node
|shrink_node_memcgs
|shrink_lruvec
|shrink_inactive_list
|shrink_page_list
|__remove_mapping
|xa_lock_irq(&mapping->i_pages); <---- tree
|__delete_from_page_cache
|sprd_del_from_page_cache_info_print
|sprd_mm_filemap_inode_info
|spin_lock(&inode->i_lock); <---- one
|qspinlock ffffff807c2cc348 0000000000000001 locked位置已1,再pending位置
2580

被折叠的 条评论
为什么被折叠?



