From: Michael Rubin <mrubin@google.com>
To: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-mm@kvack.org
Cc: fengguang.wu@intel.com, jack@suse.cz, riel@redhat.com,
akpm@linux-foundation.org, david@fromorbit.com,
kosaki.motohiro@jp.fujitsu.com, npiggin@kernel.dk, hch@lst.de,
axboe@kernel.dk, Michael Rubin <mrubin@google.com>
Subject: [PATCH 4/4] writeback: Reporting dirty thresholds in /proc/vmstat
Date: Fri, 27 Aug 2010 19:40:27 -0700 [thread overview]
Message-ID: <1282963227-31867-5-git-send-email-mrubin@google.com> (raw)
In-Reply-To: <1282963227-31867-1-git-send-email-mrubin@google.com>
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
Signed-off-by: Michael Rubin <mrubin@google.com>
---
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 */
#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@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2010-08-28 2:40 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-28 2:40 [PATCH 0/4] writeback: kernel visibility Michael Rubin
2010-08-28 2:40 ` [PATCH 1/4] mm: exporting account_page_dirty Michael Rubin
2010-08-28 22:11 ` Sage Weil
2010-08-28 2:40 ` [PATCH 2/4] mm: account_page_writeback added Michael Rubin
2010-08-28 2:40 ` [PATCH 3/4] writeback: nr_dirtied and nr_cleaned in /proc/vmstat Michael Rubin
2010-08-28 23:50 ` Wu Fengguang
2010-08-31 6:09 ` Michael Rubin
2010-08-31 7:48 ` Wu Fengguang
2010-09-05 14:17 ` Wu Fengguang
2010-09-06 1:00 ` KOSAKI Motohiro
2010-09-06 1:34 ` Wu Fengguang
2010-08-28 2:40 ` Michael Rubin [this message]
2010-08-30 0:28 ` [PATCH 4/4] writeback: Reporting dirty thresholds " KOSAKI Motohiro
2010-08-30 16:25 ` Michael Rubin
2010-08-31 1:07 ` KOSAKI Motohiro
2010-08-31 1:32 ` Wu Fengguang
-- strict thread matches above, loose matches on Subject: below --
2010-08-20 9:31 [PATCH 0/4] writeback: kernel visibility Michael Rubin
2010-08-20 9:31 ` [PATCH 4/4] writeback: Reporting dirty thresholds in /proc/vmstat Michael Rubin
2010-08-20 10:06 ` KOSAKI Motohiro
2010-08-22 10:27 ` KOSAKI Motohiro
2010-08-20 10:12 ` Wu Fengguang
2010-08-21 5:48 ` Wu Fengguang
2010-08-23 17:52 ` Michael Rubin
2010-08-24 1:20 ` KOSAKI Motohiro
2010-08-24 1:41 ` Michael Rubin
2010-08-24 2:11 ` Wu Fengguang
2010-08-24 2:42 ` Michael Rubin
2010-08-24 2:01 ` Wu Fengguang
2010-08-24 2:04 ` Michael Rubin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1282963227-31867-5-git-send-email-mrubin@google.com \
--to=mrubin@google.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=david@fromorbit.com \
--cc=fengguang.wu@intel.com \
--cc=hch@lst.de \
--cc=jack@suse.cz \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=npiggin@kernel.dk \
--cc=riel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).