Steve Lord <lord@xxxxxxx> wrote:
> The place you probably need to scatter printk all over is
> fs/pagebuf/page_buf.c
> the easiest way to do this is to edit include/linux/page_buf.h and ensure
> that PAGEBUF_TRACE is defined (it is dependent on CONFIG_KDB at the moment).
> Make sure that debug_pagebuf is set to 1.
> Then edit pb_trace_func in page_buf.c and instead of putting data into a
> trace buffer, take something based on the code in kdb/modules/kdbm_pg.c
> which does this:
> if ((trace->event < EV_SIZE) && event_names[trace->event]) {
> event = event_names[trace->event];
> } else if (trace->event == 1000) {
> event = (char *)trace->misc;
> } else {
> event = value;
> sprintf(value, "%8d", trace->event);
> kdb_printf("pb 0x%lx [%s] (hold %u lock %d) misc 0x%p",
> trace->pb, event,
> trace->hold, trace->lock_value,
> trace->misc);
> kdb_symbol_print((unsigned int)trace->ra, NULL,
> KDB_SP_SPACEB|KDB_SP_PAREN|KDB_SP_NEWLINE);
> kdb_printf(" offset 0x%Lx size 0x%x task 0x%p\n",
> trace->offset, trace->size, trace->task);
> kdb_printf(" flags: %s\n",
> pb_flags(trace->flags));
> (clearly those need to become printk messages).
ok - basicaly got the idea - what of the above info is mostly needed
to debug this ? (i at a first view see no way to get the
kdb_symbol_print thing because it looks like it uses kdb structures
for finding and printing the symbol) - everything else should be
no problem ... ok - will try to get this going
t
--
thomas.graichen@xxxxxxxxxxxxx
technical director innominate AG
clustering & security networking people
tel: +49.30.308806-13 fax: -77 web: http://innominate.de pgp: /pgp/tgr
|