brintos

brintos / linux-shallow public Read only

0
0
Text · 888 B · 82c79c8 Raw
29 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _BCACHEFS_CLOCK_H3#define _BCACHEFS_CLOCK_H4 5void bch2_io_timer_add(struct io_clock *, struct io_timer *);6void bch2_io_timer_del(struct io_clock *, struct io_timer *);7void bch2_kthread_io_clock_wait(struct io_clock *, u64, unsigned long);8 9void __bch2_increment_clock(struct io_clock *, u64);10 11static inline void bch2_increment_clock(struct bch_fs *c, u64 sectors,12					int rw)13{14	struct io_clock *clock = &c->io_clock[rw];15 16	if (unlikely(this_cpu_add_return(*clock->pcpu_buf, sectors) >=17		   IO_CLOCK_PCPU_SECTORS))18		__bch2_increment_clock(clock, this_cpu_xchg(*clock->pcpu_buf, 0));19}20 21void bch2_io_clock_schedule_timeout(struct io_clock *, u64);22 23void bch2_io_timers_to_text(struct printbuf *, struct io_clock *);24 25void bch2_io_clock_exit(struct io_clock *);26int bch2_io_clock_init(struct io_clock *);27 28#endif /* _BCACHEFS_CLOCK_H */29