Lines Matching refs:sbi
24 struct f2fs_sb_info *sbi = F2FS_SB(sb); in iostat_info_seq_show() local
27 if (!sbi->iostat_enable) in iostat_info_seq_show()
35 sbi->rw_iostat[APP_BUFFERED_IO]); in iostat_info_seq_show()
37 sbi->rw_iostat[APP_DIRECT_IO]); in iostat_info_seq_show()
39 sbi->rw_iostat[APP_MAPPED_IO]); in iostat_info_seq_show()
43 sbi->rw_iostat[FS_DATA_IO]); in iostat_info_seq_show()
45 sbi->rw_iostat[FS_NODE_IO]); in iostat_info_seq_show()
47 sbi->rw_iostat[FS_META_IO]); in iostat_info_seq_show()
49 sbi->rw_iostat[FS_GC_DATA_IO]); in iostat_info_seq_show()
51 sbi->rw_iostat[FS_GC_NODE_IO]); in iostat_info_seq_show()
53 sbi->rw_iostat[FS_CP_DATA_IO]); in iostat_info_seq_show()
55 sbi->rw_iostat[FS_CP_NODE_IO]); in iostat_info_seq_show()
57 sbi->rw_iostat[FS_CP_META_IO]); in iostat_info_seq_show()
62 sbi->rw_iostat[APP_BUFFERED_READ_IO]); in iostat_info_seq_show()
64 sbi->rw_iostat[APP_DIRECT_READ_IO]); in iostat_info_seq_show()
66 sbi->rw_iostat[APP_MAPPED_READ_IO]); in iostat_info_seq_show()
70 sbi->rw_iostat[FS_DATA_READ_IO]); in iostat_info_seq_show()
72 sbi->rw_iostat[FS_GDATA_READ_IO]); in iostat_info_seq_show()
74 sbi->rw_iostat[FS_CDATA_READ_IO]); in iostat_info_seq_show()
76 sbi->rw_iostat[FS_NODE_READ_IO]); in iostat_info_seq_show()
78 sbi->rw_iostat[FS_META_READ_IO]); in iostat_info_seq_show()
83 sbi->rw_iostat[FS_DISCARD]); in iostat_info_seq_show()
88 static inline void __record_iostat_latency(struct f2fs_sb_info *sbi) in __record_iostat_latency() argument
93 struct iostat_lat_info *io_lat = sbi->iostat_io_lat; in __record_iostat_latency()
95 spin_lock_irq(&sbi->iostat_lat_lock); in __record_iostat_latency()
109 spin_unlock_irq(&sbi->iostat_lat_lock); in __record_iostat_latency()
111 trace_f2fs_iostat_latency(sbi, iostat_lat); in __record_iostat_latency()
114 static inline void f2fs_record_iostat(struct f2fs_sb_info *sbi) in f2fs_record_iostat() argument
119 if (time_is_after_jiffies(sbi->iostat_next_period)) in f2fs_record_iostat()
123 spin_lock(&sbi->iostat_lock); in f2fs_record_iostat()
124 if (time_is_after_jiffies(sbi->iostat_next_period)) { in f2fs_record_iostat()
125 spin_unlock(&sbi->iostat_lock); in f2fs_record_iostat()
128 sbi->iostat_next_period = jiffies + in f2fs_record_iostat()
129 msecs_to_jiffies(sbi->iostat_period_ms); in f2fs_record_iostat()
132 iostat_diff[i] = sbi->rw_iostat[i] - in f2fs_record_iostat()
133 sbi->prev_rw_iostat[i]; in f2fs_record_iostat()
134 sbi->prev_rw_iostat[i] = sbi->rw_iostat[i]; in f2fs_record_iostat()
136 spin_unlock(&sbi->iostat_lock); in f2fs_record_iostat()
138 trace_f2fs_iostat(sbi, iostat_diff); in f2fs_record_iostat()
140 __record_iostat_latency(sbi); in f2fs_record_iostat()
143 void f2fs_reset_iostat(struct f2fs_sb_info *sbi) in f2fs_reset_iostat() argument
145 struct iostat_lat_info *io_lat = sbi->iostat_io_lat; in f2fs_reset_iostat()
148 spin_lock(&sbi->iostat_lock); in f2fs_reset_iostat()
150 sbi->rw_iostat[i] = 0; in f2fs_reset_iostat()
151 sbi->prev_rw_iostat[i] = 0; in f2fs_reset_iostat()
153 spin_unlock(&sbi->iostat_lock); in f2fs_reset_iostat()
155 spin_lock_irq(&sbi->iostat_lat_lock); in f2fs_reset_iostat()
157 spin_unlock_irq(&sbi->iostat_lat_lock); in f2fs_reset_iostat()
160 void f2fs_update_iostat(struct f2fs_sb_info *sbi, in f2fs_update_iostat() argument
163 if (!sbi->iostat_enable) in f2fs_update_iostat()
166 spin_lock(&sbi->iostat_lock); in f2fs_update_iostat()
167 sbi->rw_iostat[type] += io_bytes; in f2fs_update_iostat()
170 sbi->rw_iostat[APP_BUFFERED_IO] = in f2fs_update_iostat()
171 sbi->rw_iostat[APP_WRITE_IO] - in f2fs_update_iostat()
172 sbi->rw_iostat[APP_DIRECT_IO]; in f2fs_update_iostat()
175 sbi->rw_iostat[APP_BUFFERED_READ_IO] = in f2fs_update_iostat()
176 sbi->rw_iostat[APP_READ_IO] - in f2fs_update_iostat()
177 sbi->rw_iostat[APP_DIRECT_READ_IO]; in f2fs_update_iostat()
178 spin_unlock(&sbi->iostat_lock); in f2fs_update_iostat()
180 f2fs_record_iostat(sbi); in f2fs_update_iostat()
189 struct f2fs_sb_info *sbi = iostat_ctx->sbi; in __update_iostat_latency() local
190 struct iostat_lat_info *io_lat = sbi->iostat_io_lat; in __update_iostat_latency()
193 if (!sbi->iostat_enable) in __update_iostat_latency()
209 spin_lock_irqsave(&sbi->iostat_lat_lock, flags); in __update_iostat_latency()
214 spin_unlock_irqrestore(&sbi->iostat_lat_lock, flags); in __update_iostat_latency()
225 bio->bi_private = iostat_ctx->sbi; in iostat_update_and_unbind_ctx()
230 void iostat_alloc_and_bind_ctx(struct f2fs_sb_info *sbi, in iostat_alloc_and_bind_ctx() argument
236 iostat_ctx->sbi = sbi; in iostat_alloc_and_bind_ctx()
269 int f2fs_init_iostat(struct f2fs_sb_info *sbi) in f2fs_init_iostat() argument
272 spin_lock_init(&sbi->iostat_lock); in f2fs_init_iostat()
273 spin_lock_init(&sbi->iostat_lat_lock); in f2fs_init_iostat()
274 sbi->iostat_enable = false; in f2fs_init_iostat()
275 sbi->iostat_period_ms = DEFAULT_IOSTAT_PERIOD_MS; in f2fs_init_iostat()
276 sbi->iostat_io_lat = f2fs_kzalloc(sbi, sizeof(struct iostat_lat_info), in f2fs_init_iostat()
278 if (!sbi->iostat_io_lat) in f2fs_init_iostat()
284 void f2fs_destroy_iostat(struct f2fs_sb_info *sbi) in f2fs_destroy_iostat() argument
286 kfree(sbi->iostat_io_lat); in f2fs_destroy_iostat()