Lines Matching refs:sbi
20 static inline unsigned long long iostat_get_avg_bytes(struct f2fs_sb_info *sbi, in iostat_get_avg_bytes() argument
23 return sbi->iostat_count[type] ? div64_u64(sbi->iostat_bytes[type], in iostat_get_avg_bytes()
24 sbi->iostat_count[type]) : 0; in iostat_get_avg_bytes()
29 name":", sbi->iostat_bytes[type], \
30 sbi->iostat_count[type], \
31 iostat_get_avg_bytes(sbi, type))
36 struct f2fs_sb_info *sbi = F2FS_SB(sb); in iostat_info_seq_show() local
38 if (!sbi->iostat_enable) in iostat_info_seq_show()
87 static inline void __record_iostat_latency(struct f2fs_sb_info *sbi) in __record_iostat_latency() argument
91 struct iostat_lat_info *io_lat = sbi->iostat_io_lat; in __record_iostat_latency()
94 spin_lock_irqsave(&sbi->iostat_lat_lock, flags); in __record_iostat_latency()
107 spin_unlock_irqrestore(&sbi->iostat_lat_lock, flags); in __record_iostat_latency()
109 trace_f2fs_iostat_latency(sbi, iostat_lat); in __record_iostat_latency()
112 static inline void f2fs_record_iostat(struct f2fs_sb_info *sbi) in f2fs_record_iostat() argument
118 if (time_is_after_jiffies(sbi->iostat_next_period)) in f2fs_record_iostat()
122 spin_lock_irqsave(&sbi->iostat_lock, flags); in f2fs_record_iostat()
123 if (time_is_after_jiffies(sbi->iostat_next_period)) { in f2fs_record_iostat()
124 spin_unlock_irqrestore(&sbi->iostat_lock, flags); in f2fs_record_iostat()
127 sbi->iostat_next_period = jiffies + in f2fs_record_iostat()
128 msecs_to_jiffies(sbi->iostat_period_ms); in f2fs_record_iostat()
131 iostat_diff[i] = sbi->iostat_bytes[i] - in f2fs_record_iostat()
132 sbi->prev_iostat_bytes[i]; in f2fs_record_iostat()
133 sbi->prev_iostat_bytes[i] = sbi->iostat_bytes[i]; in f2fs_record_iostat()
135 spin_unlock_irqrestore(&sbi->iostat_lock, flags); in f2fs_record_iostat()
137 trace_f2fs_iostat(sbi, iostat_diff); in f2fs_record_iostat()
139 __record_iostat_latency(sbi); in f2fs_record_iostat()
142 void f2fs_reset_iostat(struct f2fs_sb_info *sbi) in f2fs_reset_iostat() argument
144 struct iostat_lat_info *io_lat = sbi->iostat_io_lat; in f2fs_reset_iostat()
147 spin_lock_irq(&sbi->iostat_lock); in f2fs_reset_iostat()
149 sbi->iostat_count[i] = 0; in f2fs_reset_iostat()
150 sbi->iostat_bytes[i] = 0; in f2fs_reset_iostat()
151 sbi->prev_iostat_bytes[i] = 0; in f2fs_reset_iostat()
153 spin_unlock_irq(&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 static inline void __f2fs_update_iostat(struct f2fs_sb_info *sbi, in __f2fs_update_iostat() argument
163 sbi->iostat_bytes[type] += io_bytes; in __f2fs_update_iostat()
164 sbi->iostat_count[type]++; in __f2fs_update_iostat()
167 void f2fs_update_iostat(struct f2fs_sb_info *sbi, struct inode *inode, in f2fs_update_iostat() argument
172 if (!sbi->iostat_enable) in f2fs_update_iostat()
175 spin_lock_irqsave(&sbi->iostat_lock, flags); in f2fs_update_iostat()
176 __f2fs_update_iostat(sbi, type, io_bytes); in f2fs_update_iostat()
179 __f2fs_update_iostat(sbi, APP_WRITE_IO, io_bytes); in f2fs_update_iostat()
182 __f2fs_update_iostat(sbi, APP_READ_IO, io_bytes); in f2fs_update_iostat()
187 __f2fs_update_iostat(sbi, APP_BUFFERED_CDATA_IO, io_bytes); in f2fs_update_iostat()
190 __f2fs_update_iostat(sbi, APP_BUFFERED_CDATA_READ_IO, io_bytes); in f2fs_update_iostat()
193 __f2fs_update_iostat(sbi, APP_MAPPED_CDATA_READ_IO, io_bytes); in f2fs_update_iostat()
196 __f2fs_update_iostat(sbi, APP_MAPPED_CDATA_IO, io_bytes); in f2fs_update_iostat()
199 __f2fs_update_iostat(sbi, FS_CDATA_READ_IO, io_bytes); in f2fs_update_iostat()
202 __f2fs_update_iostat(sbi, FS_CDATA_IO, io_bytes); in f2fs_update_iostat()
206 spin_unlock_irqrestore(&sbi->iostat_lock, flags); in f2fs_update_iostat()
208 f2fs_record_iostat(sbi); in f2fs_update_iostat()
216 struct f2fs_sb_info *sbi = iostat_ctx->sbi; in __update_iostat_latency() local
217 struct iostat_lat_info *io_lat = sbi->iostat_io_lat; in __update_iostat_latency()
220 if (!sbi->iostat_enable) in __update_iostat_latency()
227 f2fs_warn(sbi, "%s: %d over NR_PAGE_TYPE", __func__, page_type); in __update_iostat_latency()
231 spin_lock_irqsave(&sbi->iostat_lat_lock, flags); in __update_iostat_latency()
236 spin_unlock_irqrestore(&sbi->iostat_lat_lock, flags); in __update_iostat_latency()
247 bio->bi_private = iostat_ctx->sbi; in iostat_update_and_unbind_ctx()
257 void iostat_alloc_and_bind_ctx(struct f2fs_sb_info *sbi, in iostat_alloc_and_bind_ctx() argument
263 iostat_ctx->sbi = sbi; in iostat_alloc_and_bind_ctx()
296 int f2fs_init_iostat(struct f2fs_sb_info *sbi) in f2fs_init_iostat() argument
299 spin_lock_init(&sbi->iostat_lock); in f2fs_init_iostat()
300 spin_lock_init(&sbi->iostat_lat_lock); in f2fs_init_iostat()
301 sbi->iostat_enable = false; in f2fs_init_iostat()
302 sbi->iostat_period_ms = DEFAULT_IOSTAT_PERIOD_MS; in f2fs_init_iostat()
303 sbi->iostat_io_lat = f2fs_kzalloc(sbi, sizeof(struct iostat_lat_info), in f2fs_init_iostat()
305 if (!sbi->iostat_io_lat) in f2fs_init_iostat()
311 void f2fs_destroy_iostat(struct f2fs_sb_info *sbi) in f2fs_destroy_iostat() argument
313 kfree(sbi->iostat_io_lat); in f2fs_destroy_iostat()