From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wu Fengguang Subject: [PATCH,RFC] writeback: show raw dirtied_when in trace writeback_single_inode Date: Mon, 29 Aug 2011 10:06:01 +0800 Message-ID: <20110829020601.GA4862@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Andrew Morton , Jan Kara , Dave Chinner , Christoph Hellwig To: linux-fsdevel@vger.kernel.org Return-path: Received: from mga03.intel.com ([143.182.124.21]:38523 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751901Ab1H2CGF (ORCPT ); Sun, 28 Aug 2011 22:06:05 -0400 Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-ID: It looks more reasonable to save inode->dirtied_when in the raw trace output, and to show both the absolute raw value for easy scripting and the relative age in seconds for easy human reading. The trace event was newly added in 3.1-rc1, so we still have the chance to change the format. btw, are there ways for user space to query the HZ value of the running kernel? Which is required for converting the raw dirtied_when ticks to clock time. CC: Jan Kara Signed-off-by: Wu Fengguang --- include/trace/events/writeback.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) --- linux-next.orig/include/trace/events/writeback.h 2011-08-29 09:51:12.000000000 +0800 +++ linux-next/include/trace/events/writeback.h 2011-08-29 09:52:19.000000000 +0800 @@ -433,7 +433,7 @@ DECLARE_EVENT_CLASS(writeback_single_ino __array(char, name, 32) __field(unsigned long, ino) __field(unsigned long, state) - __field(unsigned long, age) + __field(unsigned long, dirtied_when) __field(unsigned long, writeback_index) __field(long, nr_to_write) __field(unsigned long, wrote) @@ -444,19 +444,19 @@ DECLARE_EVENT_CLASS(writeback_single_ino dev_name(inode->i_mapping->backing_dev_info->dev), 32); __entry->ino = inode->i_ino; __entry->state = inode->i_state; - __entry->age = (jiffies - inode->dirtied_when) * - 1000 / HZ; + __entry->age = (jiffies - inode->dirtied_when) / HZ; __entry->writeback_index = inode->i_mapping->writeback_index; __entry->nr_to_write = nr_to_write; __entry->wrote = nr_to_write - wbc->nr_to_write; ), - TP_printk("bdi %s: ino=%lu state=%s age=%lu " + TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu " "index=%lu to_write=%ld wrote=%lu", __entry->name, __entry->ino, show_inode_state(__entry->state), - __entry->age, + __entry->dirtied_when, + (jiffies - __entry->dirtied_when) / HZ, __entry->writeback_index, __entry->nr_to_write, __entry->wrote