From: Dave Chinner <david@fromorbit.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: axboe@kernel.dk, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 1/3] writeback: Initial tracing support
Date: Wed, 7 Jul 2010 13:06:17 +1000 [thread overview]
Message-ID: <20100707030617.GG25018@dastard> (raw)
In-Reply-To: <20100707021912.GA17385@infradead.org>
On Tue, Jul 06, 2010 at 10:19:12PM -0400, Christoph Hellwig wrote:
> > static void bdi_queue_work(struct backing_dev_info *bdi,
> > struct wb_writeback_work *work)
> > {
> > + trace_wb_sched_queue(bdi, work);
>
> Okay, I'm getting more nitpicky with every repost, but the naming here
> seems odd.
>
> First why the unreadle wb prefix instead of a proper writeback?
> And the sched in here seems rather useless, I'd just call it
>
> trace_writeback_queue
Done.
>
> > @@ -74,12 +85,16 @@ static void bdi_queue_work(struct backing_dev_info *bdi,
> > * it gets created and wakes up, we'll run this work.
> > */
> > if (unlikely(!bdi->wb.task)) {
> > + trace_wb_sched_default(bdi, work);
>
> trace_writeback_no_thread
>
> > wake_up_process(default_backing_dev_info.wb.task);
> > } else {
> > struct bdi_writeback *wb = &bdi->wb;
> >
> > - if (wb->task)
> > + if (wb->task) {
> > + trace_wb_sched_task(bdi, work);
>
> trace_writeback_wake
>
> then again I don't think we actually need this, if we got the
> trace_writeback_queue event, and no trace_writeback_no_thread it's
> implicit that we got here.
OK, fixed.
> > wake_up_process(wb->task);
> > + } else
> > + trace_wb_sched_notask(bdi, work);
>
> This case can't actually happen as we checked for the task a few lines
> above.
Right, my bad.
> Might be worth to throw in preparation patch in your series
> to something like:
>
>
> if (unlikely(!bdi->wb.task)) {
> wake_up_process(default_backing_dev_info.wb.task);
> - } else {
> - struct bdi_writeback *wb = &bdi->wb;
> -
> - if (wb->task)
> - wake_up_process(wb->task);
> - }
> + return;
> + }
> +
> + wake_up_process(bdi->wb.task);
>
> > }
> > }
Perhaps. making the above changes means it's not necessary...
> >
> > @@ -95,8 +110,10 @@ __bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages,
> > */
> > work = kzalloc(sizeof(*work), GFP_ATOMIC);
> > if (!work) {
> > - if (bdi->wb.task)
> > + if (bdi->wb.task) {
> > + trace_wb_sched_nowork(bdi, work);
>
> trace_writeback_nowork
>
> > + TP_fast_assign(
> > + strncpy(__entry->name, dev_name(bdi->dev), 32);
> > + __entry->nr_pages = work ? work->nr_pages : 0;
> > + __entry->sb_dev = work ? work->sb ? work->sb->s_dev : 0 : 0;
> > + __entry->sync_mode = work ? work->sync_mode : -1;
> > + __entry->for_kupdate = work ? work->for_kupdate : -1;
> > + __entry->range_cyclic = work ? work->range_cyclic : -1;
> > + __entry->for_background = work ? work->for_background : -1;
> > + ),
>
> If you had a separate class for those tracepoints that do not have
> a work item the code would be a lot simpler.
Yup, fixed.
I'll post a new version in a short while.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2010-07-07 3:06 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-06 23:41 [PATCH 0/3] writeback: Tracing support V2 Dave Chinner
2010-07-06 23:41 ` [PATCH 1/3] writeback: Initial tracing support Dave Chinner
2010-07-07 2:19 ` Christoph Hellwig
2010-07-07 3:06 ` Dave Chinner [this message]
2010-07-06 23:41 ` [PATCH 2/3] writeback: Add tracing to balance_dirty_pages Dave Chinner
2010-07-07 2:20 ` Christoph Hellwig
2010-07-07 3:11 ` Dave Chinner
2010-07-06 23:41 ` [PATCH 3/3] writeback: Add tracing to write_cache_pages Dave Chinner
-- strict thread matches above, loose matches on Subject: below --
2010-07-07 3:24 [PATCH 0/3] writeback: Tracing support V3 Dave Chinner
2010-07-07 3:24 ` [PATCH 1/3] writeback: Initial tracing support Dave Chinner
2010-06-21 1:25 [PATCH 0/3] writeback: " Dave Chinner
2010-06-21 1:25 ` [PATCH 1/3] writeback: initial " Dave Chinner
2010-06-21 8:09 ` Christoph Hellwig
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=20100707030617.GG25018@dastard \
--to=david@fromorbit.com \
--cc=axboe@kernel.dk \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.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).