Skip to content

Commit 5634cc2

Browse files
htejunaxboe
authored andcommitted
writeback: update writeback tracepoints to report cgroup
The following tracepoints are updated to report the cgroup used during cgroup writeback. * writeback_write_inode[_start] * writeback_queue * writeback_exec * writeback_start * writeback_written * writeback_wait * writeback_nowork * writeback_wake_background * wbc_writepage * writeback_queue_io * bdi_dirty_ratelimit * balance_dirty_pages * writeback_sb_inodes_requeue * writeback_single_inode[_start] Note that writeback_bdi_register is separated out from writeback_class as reporting cgroup doesn't make sense to it. Tracepoints which take bdi are updated to take bdi_writeback instead. Signed-off-by: Tejun Heo <[email protected]> Suggested-by: Jan Kara <[email protected]> Reviewed-by: Jan Kara <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
1 parent 9acee9c commit 5634cc2

File tree

3 files changed

+151
-49
lines changed

3 files changed

+151
-49
lines changed

fs/fs-writeback.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ static void wb_wakeup(struct bdi_writeback *wb)
176176
static void wb_queue_work(struct bdi_writeback *wb,
177177
struct wb_writeback_work *work)
178178
{
179-
trace_writeback_queue(wb->bdi, work);
179+
trace_writeback_queue(wb, work);
180180

181181
spin_lock_bh(&wb->work_lock);
182182
if (!test_bit(WB_registered, &wb->state))
@@ -883,7 +883,7 @@ void wb_start_writeback(struct bdi_writeback *wb, long nr_pages,
883883
*/
884884
work = kzalloc(sizeof(*work), GFP_ATOMIC);
885885
if (!work) {
886-
trace_writeback_nowork(wb->bdi);
886+
trace_writeback_nowork(wb);
887887
wb_wakeup(wb);
888888
return;
889889
}
@@ -913,7 +913,7 @@ void wb_start_background_writeback(struct bdi_writeback *wb)
913913
* We just wake up the flusher thread. It will perform background
914914
* writeback as soon as there is no other work to do.
915915
*/
916-
trace_writeback_wake_background(wb->bdi);
916+
trace_writeback_wake_background(wb);
917917
wb_wakeup(wb);
918918
}
919919

@@ -1616,14 +1616,14 @@ static long wb_writeback(struct bdi_writeback *wb,
16161616
} else if (work->for_background)
16171617
oldest_jif = jiffies;
16181618

1619-
trace_writeback_start(wb->bdi, work);
1619+
trace_writeback_start(wb, work);
16201620
if (list_empty(&wb->b_io))
16211621
queue_io(wb, work);
16221622
if (work->sb)
16231623
progress = writeback_sb_inodes(work->sb, wb, work);
16241624
else
16251625
progress = __writeback_inodes_wb(wb, work);
1626-
trace_writeback_written(wb->bdi, work);
1626+
trace_writeback_written(wb, work);
16271627

16281628
wb_update_bandwidth(wb, wb_start);
16291629

@@ -1648,7 +1648,7 @@ static long wb_writeback(struct bdi_writeback *wb,
16481648
* we'll just busyloop.
16491649
*/
16501650
if (!list_empty(&wb->b_more_io)) {
1651-
trace_writeback_wait(wb->bdi, work);
1651+
trace_writeback_wait(wb, work);
16521652
inode = wb_inode(wb->b_more_io.prev);
16531653
spin_lock(&inode->i_lock);
16541654
spin_unlock(&wb->list_lock);
@@ -1754,7 +1754,7 @@ static long wb_do_writeback(struct bdi_writeback *wb)
17541754
while ((work = get_next_work_item(wb)) != NULL) {
17551755
struct wb_completion *done = work->done;
17561756

1757-
trace_writeback_exec(wb->bdi, work);
1757+
trace_writeback_exec(wb, work);
17581758

17591759
wrote += wb_writeback(wb, work);
17601760

0 commit comments

Comments
 (0)