On Wed, Jun 16, 2021 at 09:12:29AM +0800, huang...@chinatelecom.cn wrote: > -static void init_dirtyrate_stat(int64_t start_time, int64_t calc_time, > - uint64_t sample_pages) > +static void init_dirtyrate_stat(int64_t start_time, > + struct DirtyRateConfig config) > { > - DirtyStat.total_dirty_samples = 0; > - DirtyStat.total_sample_count = 0; > - DirtyStat.total_block_mem_MB = 0; > DirtyStat.dirty_rate = -1; > DirtyStat.start_time = start_time; > - DirtyStat.calc_time = calc_time; > - DirtyStat.sample_pages = sample_pages; > + DirtyStat.calc_time = config.sample_period_seconds; > + DirtyStat.sample_pages = config.sample_pages_per_gigabytes; > + > + switch (config.mode) { > + case DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING: > + DirtyStat.page_sampling.total_dirty_samples = 0; > + DirtyStat.page_sampling.total_sample_count = 0; > + DirtyStat.page_sampling.total_block_mem_MB = 0; > + break; > + case DIRTY_RATE_MEASURE_MODE_DIRTY_RING: > + DirtyStat.dirty_ring.nvcpu = -1; > + DirtyStat.dirty_ring.rates = NULL;
Missing "break"? > + default: Assert here instead? > + break; > + } > } -- Peter Xu