From 21facb1630f070244d74e591bf19d4dc07d5983a Mon Sep 17 00:00:00 2001 From: Mingxin Liu Date: Tue, 21 Mar 2017 18:15:51 +0800 Subject: [PATCH] osd: should consider unstable_stats when publish stats to osd Signed-off-by: Mingxin Liu --- src/osd/PG.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 3a75d8932e928..458f7b52fdcae 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -2712,9 +2712,11 @@ void PG::publish_stats_to_osd() _update_blocked_by(); bool publish = false; + pg_stat_t pre_publish = info.stats; + pre_publish.stats.add(unstable_stats); utime_t cutoff = now; cutoff -= cct->_conf->osd_pg_stat_report_interval_max; - if (pg_stats_publish_valid && info.stats == pg_stats_publish && + if (pg_stats_publish_valid && pre_publish == pg_stats_publish && info.stats.last_fresh > cutoff) { dout(15) << "publish_stats_to_osd " << pg_stats_publish.reported_epoch << ": no change since " << info.stats.last_fresh << dendl; @@ -2739,8 +2741,7 @@ void PG::publish_stats_to_osd() publish = true; pg_stats_publish_valid = true; - pg_stats_publish = info.stats; - pg_stats_publish.stats.add(unstable_stats); + pg_stats_publish = pre_publish; dout(15) << "publish_stats_to_osd " << pg_stats_publish.reported_epoch << ":" << pg_stats_publish.reported_seq << dendl; -- 2.39.5