From: Tejun Heo <tj@kernel.org>
To: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Jan Kara <jack@suse.cz>, Kemeng Shi <shikemeng@huaweicloud.com>,
akpm@linux-foundation.org, willy@infradead.org,
bfoster@redhat.com, dsterba@suse.com, mjguzik@gmail.com,
dhowells@redhat.com, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH v2 0/6] Improve visibility of writeback
Date: Wed, 3 Apr 2024 09:21:37 -1000 [thread overview]
Message-ID: <Zg2sQTIDom21q4i9@slm.duckdns.org> (raw)
In-Reply-To: <qemects2mglzjdig7y5uufhoqdhoccwlrwrtfhe4jy6gbadj6n@dnnbzymtxpyj>
Hello,
On Wed, Apr 03, 2024 at 03:06:56PM -0400, Kent Overstreet wrote:
...
> That's how it should be if you just make a point of making your internal
> state easy to view and introspect, but when I'm debugging issues that
> run into the wider block layer, or memory reclaim, we often hit a wall.
Try drgn:
https://drgn.readthedocs.io/en/latest/
I've been adding drgn scripts under tools/ directory for introspection.
They're easy to write, deploy and ask users to run.
> Writeback throttling was buggy for _months_, no visibility or
> introspection or concerns for debugging, and that's a small chunk of
> code. io_uring - had to disable it. I _still_ have people bringing
> issues to me that are clearly memory reclaim related but I don't have
> the tools.
>
> It's not like any of this code exports much in the way of useful
> tracepoints either, but tracepoints often just aren't what you want;
> what you want just to be able to see internal state (_without_ having to
> use a debugger, because that's completely impractical outside highly
> controlled environments) - and tracing is also never the first thing you
> want to reach for when you have a user asking you "hey, this thing went
> wonky, what's it doing?" - tracing automatically turns it into a multi
> step process of decide what you want to look at, run the workload more
> to collect data, iterate.
>
> Think more about "what would make code easier to debug" and less about
> "how do I shove this round peg through the square tracing/BPF slot".
> There's _way_ more we could be doing that would just make our lives
> easier.
Maybe it'd help classifying visibility into the the following categories:
1. Current state introspection.
2. Dynamic behavior tracing.
3. Accumluative behavior profiling.
drgn is great for #1. Tracing and BPF stuff is great for #2 especially when
things get complicated. #3 is the trickest. Static stuff is useful in a lot
of cases but BPF can also be useful in other cases.
I agree that it's all about using the right tool for the problem.
--
tejun
next prev parent reply other threads:[~2024-04-03 19:21 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-27 15:57 [PATCH v2 0/6] Improve visibility of writeback Kemeng Shi
2024-03-27 15:57 ` [PATCH v2 1/6] writeback: protect race between bdi release and bdi_debug_stats_show Kemeng Shi
2024-03-28 17:53 ` Brian Foster
2024-04-03 2:16 ` Kemeng Shi
2024-03-27 15:57 ` [PATCH v2 2/6] writeback: collect stats of all wb of bdi in bdi_debug_stats_show Kemeng Shi
2024-03-29 13:04 ` Brian Foster
2024-04-03 7:49 ` Kemeng Shi
2024-03-27 15:57 ` [PATCH v2 3/6] writeback: support retrieving per group debug writeback stats of bdi Kemeng Shi
2024-03-29 13:10 ` Brian Foster
2024-04-03 8:49 ` Kemeng Shi
2024-04-03 15:04 ` Brian Foster
2024-04-04 9:07 ` Jan Kara
2024-04-07 3:13 ` Kemeng Shi
2024-04-07 2:48 ` Kemeng Shi
2024-03-27 15:57 ` [PATCH v2 4/6] writeback: add wb_monitor.py script to monitor writeback info on bdi Kemeng Shi
2024-03-27 15:57 ` [PATCH v2 5/6] writeback: rename nr_reclaimable to nr_dirty in balance_dirty_pages Kemeng Shi
2024-03-27 15:57 ` [PATCH v2 6/6] writeback: define GDTC_INIT_NO_WB to null Kemeng Shi
2024-03-27 17:40 ` [PATCH v2 0/6] Improve visibility of writeback Andrew Morton
2024-03-28 1:59 ` Kemeng Shi
2024-03-28 8:23 ` Kemeng Shi
2024-03-28 19:15 ` Kent Overstreet
2024-03-28 19:23 ` Andrew Morton
2024-03-28 19:36 ` Kent Overstreet
2024-03-28 19:24 ` Kent Overstreet
2024-03-28 19:31 ` Tejun Heo
2024-03-28 19:40 ` Kent Overstreet
2024-03-28 19:46 ` Tejun Heo
2024-03-28 19:55 ` Kent Overstreet
2024-03-28 20:13 ` Tejun Heo
2024-03-28 20:22 ` Kent Overstreet
2024-03-28 20:46 ` Tejun Heo
2024-03-28 20:53 ` Kent Overstreet
2024-04-03 16:27 ` Jan Kara
2024-04-03 18:44 ` Tejun Heo
2024-04-03 19:06 ` Kent Overstreet
2024-04-03 19:21 ` Tejun Heo [this message]
2024-04-03 22:24 ` Kent Overstreet
2024-04-03 6:56 ` Kemeng Shi
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=Zg2sQTIDom21q4i9@slm.duckdns.org \
--to=tj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=bfoster@redhat.com \
--cc=dhowells@redhat.com \
--cc=dsterba@suse.com \
--cc=jack@suse.cz \
--cc=kent.overstreet@linux.dev \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mjguzik@gmail.com \
--cc=shikemeng@huaweicloud.com \
--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).