lkml.org 
[lkml]   [2010]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] obsolete config in kernel source (BUFFER_DEBUG)
On Mon, 8 Feb 2010 10:50:31 -0500 tytso@mit.edu wrote:

> I don't have an objection with removing this, but does anyone have the
> latest version of akpm's buffer debugging patches?

My version is datestamped four years ago :( It normally forward-ports
fairly easily.

> I *think* what happened is that akpm forward ported the removed buffer
> debugging patches, or maybe rewrote it from scratch, but for whatever
> reason they never made back into mainline. Maybe they were too ugly
> to live in mainline, but they have been really handy on occasion.

I think Eric Sandeen might have a fresher version. Nowadays it should
be done with the tracing infrastructure, I guess. Although that
infrastructure may not be able to do this - the ext3 debug patch
recorded an LRU array of the below structs within every buffer_head.
The various BUFFER_TRACE macros would emit a new record into the tail of the
target bh's b[] ring.

struct buffer_history {
struct buffer_history_item {
char *function;
char *info;
unsigned long b_state;
unsigned b_list:3;
unsigned b_jlist:4;
unsigned pg_dirty:1;
unsigned cpu:3;
unsigned b_count:8;
unsigned long b_blocknr; /* For src != dest */
#if defined(CONFIG_JBD) || defined(CONFIG_JBD_MODULE)
unsigned b_jcount:4;
unsigned b_jbd:1;
unsigned b_transaction:1;
unsigned b_next_transaction:1;
unsigned b_cp_transaction:1;
unsigned b_trans_is_running:1;
unsigned b_trans_is_committing:1;
void *b_frozen_data;
void *b_committed_data;
#endif
} b[BUFFER_HISTORY_SIZE];
unsigned long b_history_head; /* Next place to write */
unsigned long b_history_tail; /* Oldest valid entry */
};


\
 
 \ /
  Last update: 2010-02-08 20:01    [from the cache]
©2003-2011 Jasper Spaans