Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1cbe236 authored by Wu Fengguang's avatar Wu Fengguang
Browse files

writeback: trace global_dirty_state



Add trace event balance_dirty_state for showing the global dirty page
counts and thresholds at each global_dirty_limits() invocation.  This
will cover the callers throttle_vm_writeout(), over_bground_thresh()
and each balance_dirty_pages() loop.

Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
parent ffd1f609
Loading
Loading
Loading
Loading
+46 −0
Original line number Original line Diff line number Diff line
@@ -204,6 +204,52 @@ TRACE_EVENT(writeback_queue_io,
		__entry->moved)
		__entry->moved)
);
);


TRACE_EVENT(global_dirty_state,

	TP_PROTO(unsigned long background_thresh,
		 unsigned long dirty_thresh
	),

	TP_ARGS(background_thresh,
		dirty_thresh
	),

	TP_STRUCT__entry(
		__field(unsigned long,	nr_dirty)
		__field(unsigned long,	nr_writeback)
		__field(unsigned long,	nr_unstable)
		__field(unsigned long,	background_thresh)
		__field(unsigned long,	dirty_thresh)
		__field(unsigned long,	dirty_limit)
		__field(unsigned long,	nr_dirtied)
		__field(unsigned long,	nr_written)
	),

	TP_fast_assign(
		__entry->nr_dirty	= global_page_state(NR_FILE_DIRTY);
		__entry->nr_writeback	= global_page_state(NR_WRITEBACK);
		__entry->nr_unstable	= global_page_state(NR_UNSTABLE_NFS);
		__entry->nr_dirtied	= global_page_state(NR_DIRTIED);
		__entry->nr_written	= global_page_state(NR_WRITTEN);
		__entry->background_thresh = background_thresh;
		__entry->dirty_thresh	= dirty_thresh;
		__entry->dirty_limit = global_dirty_limit;
	),

	TP_printk("dirty=%lu writeback=%lu unstable=%lu "
		  "bg_thresh=%lu thresh=%lu limit=%lu "
		  "dirtied=%lu written=%lu",
		  __entry->nr_dirty,
		  __entry->nr_writeback,
		  __entry->nr_unstable,
		  __entry->background_thresh,
		  __entry->dirty_thresh,
		  __entry->dirty_limit,
		  __entry->nr_dirtied,
		  __entry->nr_written
	)
);

DECLARE_EVENT_CLASS(writeback_congest_waited_template,
DECLARE_EVENT_CLASS(writeback_congest_waited_template,


	TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed),
	TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed),
+1 −0
Original line number Original line Diff line number Diff line
@@ -447,6 +447,7 @@ void global_dirty_limits(unsigned long *pbackground, unsigned long *pdirty)
	}
	}
	*pbackground = background;
	*pbackground = background;
	*pdirty = dirty;
	*pdirty = dirty;
	trace_global_dirty_state(background, dirty);
}
}


/**
/**