Current-Users archive

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

Re: COMPAT_40 broken in current amd64 kernel?

On Sun, 7 Mar 2010, Paul Goyette wrote:

On Sun, 7 Mar 2010, Christos Zoulas wrote:

However, on a kernel built today, it gives me a core dump due to a "bad
system call".  The backtrace shows that this is the code leading up to
the bad syscall:

(gdb) x/10i 0x47a598
0x47a598:       jmpq   0x490ba0
0x47a59d:       data16
0x47a59e:       data16
0x47a59f:       nop
0x47a5a0:       mov    $0x74,%eax
0x47a5a5:       mov    %rcx,%r10
0x47a5a8:       syscall
0x47a5aa:       jb     0x47a598
0x47a5ac:       retq
0x47a5ad:       nop

0x74 == 116 is the old gettimeofday. Something is not loading compat_50.

Well, as I indicated, COMPAT_50 (and COMPAT_40) were both built-in to both kernels in question, so it shouldn't be a matter of "loading".

Regardless, I built a new kernel in a clean $OBJDIR and installed it; magically the problem did not reappear.

Hmmm, things get more and more interesting...

The problem reappeared this morning, after the system and the program in question had been running for several days!

Even more interesting is, when I tried to re-run the program I got a kernel crash! (Unfortunately, this is amd64, so I did not get a system core dump.) In the previous instance of this problem, re-running the program simply resulted in another user-mode core dump.

This is sounding to me like something is being initialized incorrectly. I've attached an old PS/2 keyboard to the machine and turned on ddb.onpanic so if this happens again maybe I can debug further. (Of course, with my luck, the next time the problem occurs it will be on a machine that doesn't have the keyboard...)

|   Paul Goyette   | PGP DSS Key fingerprint: |  E-mail addresses:      |
| Customer Service | FA29 0E3B 35AF E8AE 6651 |  paul at   |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at |
| Kernel Developer |                          | pgoyette at  |

Home | Main Index | Thread Index | Old Index