[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Question about use of PMAD-AA ethernet adapter on Decstation



Maciej W. Rozycki wrote:
> On Wed, 8 Oct 2003, Thiemo Seufer wrote:
> 
> > > > [snip]
> > > > > Trace; 8005da74 <update_process_times+34/11c>
> > > > > Trace; 8005dd18 <timer_bh+160/168>
> > > > > Trace; 8005de64 <do_timer+144/14c>
> > > > > Trace; 800598e4 <bh_action+60/d8>
> > > > > Trace; 801263bc <timer_interrupt+f8/1cc>
> > > > > Trace; 800596a0 <tasklet_hi_action+110/1a4>
> > > > > Trace; 80158898 <lance_interrupt+2b0/2d8>
> > > > > Trace; 80158888 <lance_interrupt+2a0/2d8>
> > > > > Trace; 80059170 <do_softirq+1a0/1a8>
> > > > > Trace; 8004a6e8 <do_IRQ+e4/12c>
> > > > > Trace; 8004a728 <do_IRQ+124/12c>
> > > > > Trace; 80125574 <handle_it+8/10>
> > > > > Trace; 80125574 <handle_it+8/10>
> > > > > Trace; 800432dc <cpu_idle+6c/74>
> > > > > Trace; 800432c0 <cpu_idle+50/74>
> > > > > Trace; 8020a37c <p.1+324/d38>
> > > > > Trace; 8004042c <init+0/194>
> > > > > Trace; 8020959c <genexcept_early+dc/9f0>
> > > > 
> > > > Those twice mentioned functions look funny.
> 
>  The trace dump looks through the kernel stack and uses simple heuristics
> to judge whether a word should be included or not: if it is in the range
> covered by the kernel's text segment, it's printed.  It might be pure
> coincidence a specific value corresponding to a kernel address is present
> at the stack as it may actually be a leftover from past execution, e.g. 
> within a stack frame reserved for local variables that hasn't been
> initialized yet, or are simply unused for a particular execution path. 
> You need to analyze the backtrace, comparing it to actual code involved to
> see which of the addresses are results of real function calls. 

Ouch. I assumed ksymoops would do stack frame analysis.

[snip]
> There is a patch that converts the stock driver
> into one working for the PMAD-A (but it doesn't work for the others than)
> and I'm told Debian uses thus modified code as a separate driver.  The
> patch is based on work by Dave Airlie and is available here:
> 'ftp://ftp.ds2.pg.gda.pl/pub/macro/drivers/pmad-a/patch-mips-2.4.20-pre6-20021222-declance-pmad-12.gz' 
> -- it applies cleanly to the current version of declance.c.

Debian calls this specific driver pmadaa.c. I looked only at declance.c,
which seems to be the same as te linux-mips CVS version.

> > > > Further, dev->mem_end is only initialized for the onboard lance, not
> > > > for the others, but that's probably a minor glitch.
> 
>  Both dev->mem_start and dev->mem_end are initialized incorrectly as they
> should use bus addresses and now they use CPU virtual ones.  For
> MIPS-based TURBOchannel systems, the mapping between the addresses is
> quite straightforward, but it's not necessarily the case for the others.
> The addresses should also be used for I/O resource allocation mamagement
> which is not implemented in the driver.
> 
>  Your point about dev->mem_end is of course valid -- the bug wasn't
> noticed, because the variable isn't used for anything in these cases.
> 
> > Unfortunately I don't have a PMAD-AA, but probably some of the
> > linux-mips folks can help. I'm Cc'ing that list.
> 
>  Please send me the full oops report and I'll see what I can decipher from
> it.

Forwarded separately. It can also be found in the debian-mips archive.


Thiemo



Reply to: