From: Kemeng Shi <shikemeng@huaweicloud.com>
To: akpm@linux-foundation.org, tj@kernel.org, linux-mm@kvack.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: willy@infradead.org, bfoster@redhat.com, jack@suse.cz,
dsterba@suse.com, mjguzik@gmail.com, dhowells@redhat.com,
peterz@infradead.org
Subject: [PATCH 0/6] Improve visibility of writeback
Date: Wed, 20 Mar 2024 19:02:16 +0800 [thread overview]
Message-ID: <20240320110222.6564-1-shikemeng@huaweicloud.com> (raw)
This series tries to improve visilibity of writeback. Patch 1 make
/sys/kernel/debug/bdi/xxx/stats show writeback info of whole bdi
instead of only writeback info in root cgroup. Patch 2 add a new
debug file /sys/kernel/debug/bdi/xxx/wb_stats to show per wb writeback
info. Patch 4 add wb_monitor.py to monitor basic writeback info
of running system, more info could be added on demand. Rest patches
are some random cleanups. More details can be found in respective
patches. Thanks!
Following domain hierarchy is tested:
global domain (320G)
/ \
cgroup domain1(10G) cgroup domain2(10G)
| |
bdi wb1 wb2
/* all writeback info of bdi is successfully collected */
# cat /sys/kernel/debug/bdi/252:16/stats:
BdiWriteback: 448 kB
BdiReclaimable: 1303904 kB
BdiDirtyThresh: 189914124 kB
DirtyThresh: 195337564 kB
BackgroundThresh: 32516508 kB
BdiDirtied: 3591392 kB
BdiWritten: 2287488 kB
BdiWriteBandwidth: 322248 kBps
b_dirty: 0
b_io: 0
b_more_io: 2
b_dirty_time: 0
bdi_list: 1
state: 1
/* per wb writeback info is collected */
# cat /sys/kernel/debug/bdi/252:16/wb_stats:
cat wb_stats
WbCgIno: 1
WbWriteback: 0 kB
WbReclaimable: 0 kB
WbDirtyThresh: 0 kB
WbDirtied: 0 kB
WbWritten: 0 kB
WbWriteBandwidth: 102400 kBps
b_dirty: 0
b_io: 0
b_more_io: 0
b_dirty_time: 0
state: 1
WbCgIno: 4284
WbWriteback: 448 kB
WbReclaimable: 818944 kB
WbDirtyThresh: 3096524 kB
WbDirtied: 2266880 kB
WbWritten: 1447936 kB
WbWriteBandwidth: 214036 kBps
b_dirty: 0
b_io: 0
b_more_io: 1
b_dirty_time: 0
state: 5
WbCgIno: 4325
WbWriteback: 224 kB
WbReclaimable: 819392 kB
WbDirtyThresh: 2920088 kB
WbDirtied: 2551808 kB
WbWritten: 1732416 kB
WbWriteBandwidth: 201832 kBps
b_dirty: 0
b_io: 0
b_more_io: 1
b_dirty_time: 0
state: 5
/* monitor writeback info */
# ./wb_monitor.py 252:16 -c
writeback reclaimable dirtied written avg_bw
252:16_1 0 0 0 0 102400
252:16_4284 672 820064 9230368 8410304 685612
252:16_4325 896 819840 10491264 9671648 652348
252:16 1568 1639904 19721632 18081952 1440360
writeback reclaimable dirtied written avg_bw
252:16_1 0 0 0 0 102400
252:16_4284 672 820064 9230368 8410304 685612
252:16_4325 896 819840 10491264 9671648 652348
252:16 1568 1639904 19721632 18081952 1440360
...
Kemeng Shi (6):
writeback: collect stats of all wb of bdi in bdi_debug_stats_show
writeback: support retrieving per group debug writeback stats of bdi
workqueue: remove unnecessary import and function in wq_monitor.py
writeback: add wb_monitor.py script to monitor writeback info on bdi
writeback: rename nr_reclaimable to nr_dirty in balance_dirty_pages
writeback: remove unneeded GDTC_INIT_NO_WB
include/linux/writeback.h | 1 +
mm/backing-dev.c | 159 ++++++++++++++++++++++++++-----
mm/page-writeback.c | 32 +++++--
tools/workqueue/wq_monitor.py | 9 +-
tools/writeback/wb_monitor.py | 172 ++++++++++++++++++++++++++++++++++
5 files changed, 334 insertions(+), 39 deletions(-)
create mode 100644 tools/writeback/wb_monitor.py
--
2.30.0
next reply other threads:[~2024-03-20 2:06 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-20 11:02 Kemeng Shi [this message]
2024-03-20 11:02 ` [PATCH 1/6] writeback: collect stats of all wb of bdi in bdi_debug_stats_show Kemeng Shi
2024-03-20 13:21 ` Brian Foster
2024-03-21 3:44 ` Kemeng Shi
2024-03-21 12:10 ` Brian Foster
2024-03-22 7:32 ` Kemeng Shi
2024-03-21 18:06 ` Jan Kara
2024-03-22 7:51 ` Kemeng Shi
2024-03-22 11:58 ` Brian Foster
2024-03-26 13:16 ` Kemeng Shi
2024-03-20 11:02 ` [PATCH 2/6] writeback: support retrieving per group debug writeback stats of bdi Kemeng Shi
2024-03-20 15:01 ` Tejun Heo
2024-03-21 3:45 ` Kemeng Shi
2024-03-26 12:24 ` Jan Kara
2024-03-26 13:26 ` Kemeng Shi
2024-03-20 11:02 ` [PATCH 3/6] workqueue: remove unnecessary import and function in wq_monitor.py Kemeng Shi
2024-03-20 15:03 ` Tejun Heo
2024-03-21 6:08 ` Kemeng Shi
2024-03-20 11:02 ` [PATCH 4/6] writeback: add wb_monitor.py script to monitor writeback info on bdi Kemeng Shi
2024-03-20 15:12 ` Tejun Heo
2024-03-21 6:22 ` Kemeng Shi
2024-03-20 11:02 ` [PATCH 5/6] writeback: rename nr_reclaimable to nr_dirty in balance_dirty_pages Kemeng Shi
2024-03-26 12:27 ` Jan Kara
2024-03-20 11:02 ` [PATCH 6/6] writeback: remove unneeded GDTC_INIT_NO_WB Kemeng Shi
2024-03-20 15:15 ` Tejun Heo
2024-03-21 7:12 ` Kemeng Shi
2024-03-25 20:26 ` Tejun Heo
2024-03-26 13:17 ` Kemeng Shi
2024-03-27 9:33 ` Jan Kara
2024-03-28 1:49 ` Kemeng Shi
2024-04-02 13:53 ` Jan Kara
2024-04-03 8:50 ` Kemeng Shi
2024-03-26 12:35 ` Jan Kara
2024-03-26 13:30 ` Kemeng Shi
2024-03-20 15:20 ` [PATCH 0/6] Improve visibility of writeback Tejun Heo
2024-03-20 17:22 ` Jan Kara
2024-03-21 8:12 ` Kemeng Shi
2024-03-21 18:07 ` Jan Kara
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=20240320110222.6564-1-shikemeng@huaweicloud.com \
--to=shikemeng@huaweicloud.com \
--cc=akpm@linux-foundation.org \
--cc=bfoster@redhat.com \
--cc=dhowells@redhat.com \
--cc=dsterba@suse.com \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mjguzik@gmail.com \
--cc=peterz@infradead.org \
--cc=tj@kernel.org \
--cc=willy@infradead.org \
/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).