>
> ok will try this too - here is how far i am so far (trying to get it
> going on x86 first because right now i have no ppc close - will try
> that this evening) - please have a short look at it - something is
> wrong with the event thing (int in pb_trace_func but called as char)
> - maybe i completely srewed it up - then please don't shoot me :-)
>
> ok - here's a diff so far to get page_buf tracing without kdb and after
> the diff is a sample output - any hints whats wrong here (the event
> stuff is wrong)? - otherwise i'll look closer to it later ... looks
> like i have mixed up the events between the kdb and the pb_trace_func
> part a bit ...
>
Try changing include/linux/page_buf_trace.h to look like this:
*** /usr/tmp/TmpDir.5088-0/linux/include/linux/page_buf_trace.h_1.9 Wed Aug
2 06:32:45 2000
--- linux/include/linux/page_buf_trace.h Wed Aug 2 05:31:23 2000
***************
*** 32,39 ****
#ident "$Id: $"
- #ifndef _PAGEBUF_TRACE_INC_
- #define _PAGEBUF_TRACE_INC_
#ifdef PB_DEFINE_TRACES
#define PB_TRACE_START typedef enum {
--- 32,37 ----
***************
*** 84,89 ****
--- 82,94 ----
PB_TRACE_REC(file_write),
PB_TRACE_END
+ #ifndef PB_DEFINE_TRACES
+ #undef PB_TRACE_START
+ #undef PB_TRACE_REC(x)
+ #undef PB_TRACE_END
+ #endif
+
+
extern void pb_trace_func(page_buf_t *, int, void *, void *);
#ifdef PAGEBUF_TRACE
#ifdef _PAGE_BUF_INTERNAL_
***************
*** 104,107 ****
#endif
- #endif
--- 109,111 ----
As it stands it can only be included once, you are including it twice,
once to get the event_names array and once to declare the enumerated
type. You actually need both - you are probably getting warnings like
this when building pagebuf:
page_buf.c: In function `pagebuf_rele':
page_buf.c:976: warning: passing arg 2 of `pb_trace_func' makes integer from
pointer without a cast
this is because you are passing the string into pb_trace_fun rather than
the enumerated type.
Steve
p.s. from the trace you are completing the read of the super block
|