> The kernel already exposes the user desired thresholds in /proc/sys/vm > with dirty_background_ratio and background_ratio. But the kernel may > alter the number requested without giving the user any indication that > is the case. > > Knowing the actual ratios the kernel is honoring can help app developers > understand how their buffered IO will be sent to the disk. > > $ grep threshold /proc/vmstat > nr_dirty_threshold 409111 > nr_dirty_background_threshold 818223 ? afaict, you and wu agreed /debug/bdi/default/stats is enough good. why do you change your mention? > > Signed-off-by: Michael Rubin <mrubin@xxxxxxxxxx> > --- > include/linux/mmzone.h | 2 ++ > mm/vmstat.c | 5 +++++ > 2 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index d42f179..ad48963 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -106,6 +106,8 @@ enum zone_stat_item { > NR_SHMEM, /* shmem pages (included tmpfs/GEM pages) */ > NR_FILE_PAGES_DIRTIED, /* number of times pages get dirtied */ > NR_PAGES_CLEANED, /* number of times pages enter writeback */ > + NR_DIRTY_THRESHOLD, /* writeback threshold */ > + NR_DIRTY_BG_THRESHOLD, /* bg writeback threshold */ Don't need this even though we add this two fields into /proc/sys/vm. It can be calculated at displaing time. > #ifdef CONFIG_NUMA > NUMA_HIT, /* allocated in intended node */ > NUMA_MISS, /* allocated in non intended node */ > diff --git a/mm/vmstat.c b/mm/vmstat.c > index 8521475..2342010 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -17,6 +17,7 @@ > #include <linux/vmstat.h> > #include <linux/sched.h> > #include <linux/math64.h> > +#include <linux/writeback.h> > > #ifdef CONFIG_VM_EVENT_COUNTERS > DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{0}}; > @@ -734,6 +735,8 @@ static const char * const vmstat_text[] = { > "nr_shmem", > "nr_dirtied", > "nr_cleaned", > + "nr_dirty_threshold", > + "nr_dirty_background_threshold", > > #ifdef CONFIG_NUMA > "numa_hit", > @@ -917,6 +920,8 @@ static void *vmstat_start(struct seq_file *m, loff_t *pos) > return ERR_PTR(-ENOMEM); > for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++) > v[i] = global_page_state(i); > + > + global_dirty_limits(v + NR_DIRTY_BG_THRESHOLD, v + NR_DIRTY_THRESHOLD); > #ifdef CONFIG_VM_EVENT_COUNTERS > e = v + NR_VM_ZONE_STAT_ITEMS; > all_vm_events(e); > -- > 1.7.1 > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>