@@ -951,6 +951,8 @@ struct f2fs_sb_info {
951951 atomic_t inline_xattr ; /* # of inline_xattr inodes */
952952 atomic_t inline_inode ; /* # of inline_data inodes */
953953 atomic_t inline_dir ; /* # of inline_dentry inodes */
954+ atomic_t aw_cnt ; /* # of atomic writes */
955+ atomic_t max_aw_cnt ; /* max # of atomic writes */
954956 int bg_gc ; /* background gc calls */
955957 unsigned int ndirty_inode [NR_INODE_TYPE ]; /* # of dirty inodes */
956958#endif
@@ -2303,6 +2305,7 @@ struct f2fs_stat_info {
23032305 int total_count , utilization ;
23042306 int bg_gc , nr_wb_cp_data , nr_wb_data ;
23052307 int inline_xattr , inline_inode , inline_dir , orphans ;
2308+ int aw_cnt , max_aw_cnt ;
23062309 unsigned int valid_count , valid_node_count , valid_inode_count , discard_blks ;
23072310 unsigned int bimodal , avg_vblocks ;
23082311 int util_free , util_valid , util_invalid ;
@@ -2374,6 +2377,17 @@ static inline struct f2fs_stat_info *F2FS_STAT(struct f2fs_sb_info *sbi)
23742377 ((sbi)->block_count[(curseg)->alloc_type]++)
23752378#define stat_inc_inplace_blocks (sbi ) \
23762379 (atomic_inc(&(sbi)->inplace_count))
2380+ #define stat_inc_atomic_write (inode ) \
2381+ (atomic_inc(&F2FS_I_SB(inode)->aw_cnt));
2382+ #define stat_dec_atomic_write (inode ) \
2383+ (atomic_dec(&F2FS_I_SB(inode)->aw_cnt));
2384+ #define stat_update_max_atomic_write (inode ) \
2385+ do { \
2386+ int cur = atomic_read(&F2FS_I_SB(inode)->aw_cnt); \
2387+ int max = atomic_read(&F2FS_I_SB(inode)->max_aw_cnt); \
2388+ if (cur > max) \
2389+ atomic_set(&F2FS_I_SB(inode)->max_aw_cnt, cur); \
2390+ } while (0)
23772391#define stat_inc_seg_count (sbi , type , gc_type ) \
23782392 do { \
23792393 struct f2fs_stat_info *si = F2FS_STAT(sbi); \
@@ -2427,6 +2441,9 @@ void f2fs_destroy_root_stats(void);
24272441#define stat_dec_inline_inode (inode )
24282442#define stat_inc_inline_dir (inode )
24292443#define stat_dec_inline_dir (inode )
2444+ #define stat_inc_atomic_write (inode )
2445+ #define stat_dec_atomic_write (inode )
2446+ #define stat_update_max_atomic_write (inode )
24302447#define stat_inc_seg_type (sbi , curseg )
24312448#define stat_inc_block_count (sbi , curseg )
24322449#define stat_inc_inplace_blocks (sbi )
0 commit comments