Adam Mallory wrote:
Forgive me for being obtuse, but the Net.selectors file you gave doesn’t
show 25:2A30 as being in the second instance of the 82557 driver.
My original wording was poor.
refering to the following editted copy of Net.selectors (editted to
remove data extraneous to this conversation).
0160C000 is the Net.ether82557 code segment.
Net has four instances of the same code “mapped” into four different
selectors (15,25,35, and 45). The second instance (i.e. the second
Net.ether82557 driver to register with Net), is at Nets’ selector 25.
Assuming that the kernel is correct when it reports a SIGSEGV at
25:XXXX inside Net, isn’t it reasonable to assume that Nets’ selector
25 was active at the time Net SEGV’d ? This means that the instruction
pointer was at address 0160C000 + 2A30 (160EA30) does it not ?
Of course, since all the drivers are the same, the physical address of
the code would be the same no matter what driver was being used (but
presumably the data selector would be 2D in this case - although there
is no way to confirm that).
//2/bin/Net 61
0005 015F5000
0015 0160C000
0025 0160C000 002D 01714000
0035 0160C000
0045 0160C000
//2/bin/Net.ether82557 63
0005 0160C000
0015 016B9000
0025 01624000
//2/bin/Net.ether82557 64
0005 0160C000
0015 016F6000
0025 01708000
//2/bin/Net.ether82557 65
0005 0160C000
0015 0173F000
0025 01689000
//2/bin/Net.ether82557 66
0005 0160C000
0015 0177C000
0025 01695000
You
shouldn’t get much in the way of variation of selector numbers, other
than
another code segment perhaps.
Isn’t that what we’re talking about here (Net making calls into the
network driver code) ?
snip
I have attached the result of “sin -PNet mem” before the crash occurs,
as well as the Net.dmp.
The Net.dmp file has cs:ip of 55434673:736f7243, which is obviously wrong -
as well as an indication that dumper failed at the time.
True. In fact there is data from one of our configuration files in
there (which is truly bizarre since there is no file system corruption
after the system is rebooted).
Admittedly, I didn’t look at Net.dmp before I sent it. Like I said the
kernel is hosed at the time, so I was quite surprised to get a Net.dmp
at all (most times there is not a Net.dmp file after the SIGSEGV (and
rebooting the machine), since (I assume) dumper doesn’t get a chance
to run after the kernel is hosed.
Is there anything else I can get you to help track the problem down ?
(obviously I probably cannot get a valid .dmp file at this point).
Rennie