Brad Hinson wrote:
>Looking at arch/s390/kernel/traps.c, do_trap(), I bet interruption code
>0x4 corresponds to EINTR 'interrupted system call'.

Actually, it doesn't ;-)

This code is what is called "program-interruption condition" in the the
ESA/390 Principles of Operation, and code 4 corresponds to a "Protection
Exception".  This can be caused by a variety of conditions, but in Linux
user space it always means your program tried to write to an read-only
memory mapping.

In this particular case we have a User PSW of 070dc000 c0006318, that is
we wereexecuting the instruction at 0x40006318 (which tends to be within
the main executable .text section); this instructions happened to be User
Code: 50 00 70 00, i.e. st %r0, 0(%r7).  Register %r7 contained
0x40016f3c,
and this is confirmed by "failing address: 40016000" (note that the
hardware
reports the failing address only by page).

Now it's hard to say where exactly the address 0x40016f3c points to,
but it is low enough to have some likelyhood of also residing with
the main executable's .text (or .rodata) section, which is generally
mapped read-only.

So the question is why the program tries to write to a read-only
location.  I'd recommend to use GDB to track this down further,
either on the live process or else on a core dump.


Mit freundlichen Gruessen / Best Regards

Ulrich Weigand

--
  Dr. Ulrich Weigand
  GNU compiler/toolchain for Linux on System z and Cell BE
  IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032
Boeblingen
  Phone: +49-7031/16-3727   ---   Email: [EMAIL PROTECTED]

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: INFO LINUX-390 or visit
http://www.marist.edu/htbin/wlvindex?LINUX-390

Reply via email to