bcache: display rate debug parameters to 0 when writeback is not running
When writeback is not running, writeback rate should be 0, other value is misleading. And the following dyanmic writeback rate debug parameters should be 0 too, rate, proportional, integral, change otherwise they are misleading when writeback is not running. Signed-off-by: Coly Li <colyli@suse.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
78ac210717
commit
b4cb6efc1a
|
@ -149,6 +149,7 @@ SHOW(__bch_cached_dev)
|
|||
struct cached_dev *dc = container_of(kobj, struct cached_dev,
|
||||
disk.kobj);
|
||||
const char *states[] = { "no cache", "clean", "dirty", "inconsistent" };
|
||||
int wb = dc->writeback_running;
|
||||
|
||||
#define var(stat) (dc->stat)
|
||||
|
||||
|
@ -170,7 +171,7 @@ SHOW(__bch_cached_dev)
|
|||
var_printf(writeback_running, "%i");
|
||||
var_print(writeback_delay);
|
||||
var_print(writeback_percent);
|
||||
sysfs_hprint(writeback_rate, dc->writeback_rate.rate << 9);
|
||||
sysfs_hprint(writeback_rate, wb ? dc->writeback_rate.rate << 9 : 0);
|
||||
sysfs_hprint(io_errors, atomic_read(&dc->io_errors));
|
||||
sysfs_printf(io_error_limit, "%i", dc->error_limit);
|
||||
sysfs_printf(io_disable, "%i", dc->io_disable);
|
||||
|
@ -188,15 +189,20 @@ SHOW(__bch_cached_dev)
|
|||
char change[20];
|
||||
s64 next_io;
|
||||
|
||||
bch_hprint(rate, dc->writeback_rate.rate << 9);
|
||||
bch_hprint(dirty, bcache_dev_sectors_dirty(&dc->disk) << 9);
|
||||
bch_hprint(target, dc->writeback_rate_target << 9);
|
||||
bch_hprint(proportional,dc->writeback_rate_proportional << 9);
|
||||
bch_hprint(integral, dc->writeback_rate_integral_scaled << 9);
|
||||
bch_hprint(change, dc->writeback_rate_change << 9);
|
||||
|
||||
next_io = div64_s64(dc->writeback_rate.next - local_clock(),
|
||||
NSEC_PER_MSEC);
|
||||
/*
|
||||
* Except for dirty and target, other values should
|
||||
* be 0 if writeback is not running.
|
||||
*/
|
||||
bch_hprint(rate, wb ? dc->writeback_rate.rate << 9 : 0);
|
||||
bch_hprint(dirty, bcache_dev_sectors_dirty(&dc->disk) << 9);
|
||||
bch_hprint(target, dc->writeback_rate_target << 9);
|
||||
bch_hprint(proportional,
|
||||
wb ? dc->writeback_rate_proportional << 9 : 0);
|
||||
bch_hprint(integral,
|
||||
wb ? dc->writeback_rate_integral_scaled << 9 : 0);
|
||||
bch_hprint(change, wb ? dc->writeback_rate_change << 9 : 0);
|
||||
next_io = wb ? div64_s64(dc->writeback_rate.next-local_clock(),
|
||||
NSEC_PER_MSEC) : 0;
|
||||
|
||||
return sprintf(buf,
|
||||
"rate:\t\t%s/sec\n"
|
||||
|
|
Loading…
Reference in New Issue