On Tuesday, April 04, 2006 10:15:58 AM +0200 Stefaan <[EMAIL PROTECTED]> wrote:

Does the kernel in question have CONFIG_DEBUG_RODATA turned on? 2.6.16
constified (and or .rodata'd) many syscall tables, which means they
actually become readonly if CONFIG_DEBUG_RODATA is turned on. This is why
the 64bit table cannot be found. the 32bit table is found because it is
EXPORT_SYMBOL'd, but the attempt to update it causes a pagefault.

Does this mean this kernel option should be turned off for linux on
any architecture (not just AMD64)?

Chaskiel's description is slightly unclear.
We can't find the 64-bit system call table (or any table on some other architectures) because it was moved into a different section, either by use of 'const' or of an explicit directive putting it in .rodata. That means it's not where we're looking for it. This is true regardless of whether CONFIG_DEBUG_RODATA is turned on.

We do find the 32-bit system call table on amd64 because it was already in the .text section and so wasn't moved. Unfortunately, CONFIG_DEBUG_RODATA makes that segment read-only, so when we try to update it, the system panics. Turning CONFIG_DEBUG_RODATA off will make this problem go away.

-- Jeffrey T. Hutzelman (N3NHS) <[EMAIL PROTECTED]>
  Sr. Research Systems Programmer
  School of Computer Science - Research Computing Facility
  Carnegie Mellon University - Pittsburgh, PA

_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel

Reply via email to