aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/s390
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/s390')
-rw-r--r--Documentation/s390/Debugging390.txt27
-rw-r--r--Documentation/s390/cds.txt2
-rw-r--r--Documentation/s390/s390dbf.txt2
3 files changed, 15 insertions, 16 deletions
diff --git a/Documentation/s390/Debugging390.txt b/Documentation/s390/Debugging390.txt
index a6555dbfa081..ffb74a1656e6 100644
--- a/Documentation/s390/Debugging390.txt
+++ b/Documentation/s390/Debugging390.txt
@@ -8,8 +8,8 @@
8Overview of Document: 8Overview of Document:
9===================== 9=====================
10This document is intended to give an good overview of how to debug 10This document is intended to give an good overview of how to debug
11Linux for s/390 & z/Architecture it isn't intended as a complete reference & not a 11Linux for s/390 & z/Architecture. It isn't intended as a complete reference & not a
12tutorial on the fundamentals of C & assembly, it dosen't go into 12tutorial on the fundamentals of C & assembly. It doesn't go into
13390 IO in any detail. It is intended to complement the documents in the 13390 IO in any detail. It is intended to complement the documents in the
14reference section below & any other worthwhile references you get. 14reference section below & any other worthwhile references you get.
15 15
@@ -354,7 +354,7 @@ static inline struct task_struct * get_current(void)
354} 354}
355 355
356i.e. just anding the current kernel stack pointer with the mask -8192. 356i.e. just anding the current kernel stack pointer with the mask -8192.
357Thankfully because Linux dosen't have support for nested IO interrupts 357Thankfully because Linux doesn't have support for nested IO interrupts
358& our devices have large buffers can survive interrupts being shut for 358& our devices have large buffers can survive interrupts being shut for
359short amounts of time we don't need a separate stack for interrupts. 359short amounts of time we don't need a separate stack for interrupts.
360 360
@@ -394,7 +394,7 @@ i.e they aren't in registers & they aren't static.
394back-chain: 394back-chain:
395This is a pointer to the stack pointer before entering a 395This is a pointer to the stack pointer before entering a
396framed functions ( see frameless function ) prologue got by 396framed functions ( see frameless function ) prologue got by
397deferencing the address of the current stack pointer, 397dereferencing the address of the current stack pointer,
398 i.e. got by accessing the 32 bit value at the stack pointers 398 i.e. got by accessing the 32 bit value at the stack pointers
399current location. 399current location.
400 400
@@ -724,7 +724,7 @@ This is useful for debugging because
7241) You can double check whether the files you expect to be included are the ones 7241) You can double check whether the files you expect to be included are the ones
725that are being included ( e.g. double check that you aren't going to the i386 asm directory ). 725that are being included ( e.g. double check that you aren't going to the i386 asm directory ).
7262) Check that macro definitions aren't clashing with typedefs, 7262) Check that macro definitions aren't clashing with typedefs,
7273) Check that definitons aren't being used before they are being included. 7273) Check that definitions aren't being used before they are being included.
7284) Helps put the line emitting the error under the microscope if it contains macros. 7284) Helps put the line emitting the error under the microscope if it contains macros.
729 729
730For convenience the Linux kernel's makefile will do preprocessing automatically for you 730For convenience the Linux kernel's makefile will do preprocessing automatically for you
@@ -840,12 +840,11 @@ using the strip command to make it a more reasonable size to boot it.
840 840
841A source/assembly mixed dump of the kernel can be done with the line 841A source/assembly mixed dump of the kernel can be done with the line
842objdump --source vmlinux > vmlinux.lst 842objdump --source vmlinux > vmlinux.lst
843Also if the file isn't compiled -g this will output as much debugging information 843Also, if the file isn't compiled -g, this will output as much debugging information
844as it can ( e.g. function names ), however, this is very slow as it spends lots 844as it can (e.g. function names). This is very slow as it spends lots
845of time searching for debugging info, the following self explanitory line should be used 845of time searching for debugging info. The following self explanatory line should be used
846instead if the code isn't compiled -g. 846instead if the code isn't compiled -g, as it is much faster:
847objdump --disassemble-all --syms vmlinux > vmlinux.lst 847objdump --disassemble-all --syms vmlinux > vmlinux.lst
848as it is much faster
849 848
850As hard drive space is valuble most of us use the following approach. 849As hard drive space is valuble most of us use the following approach.
8511) Look at the emitted psw on the console to find the crash address in the kernel. 8501) Look at the emitted psw on the console to find the crash address in the kernel.
@@ -1674,8 +1673,8 @@ channel is idle & the second for device end ( secondary status ) sometimes you g
1674concurrently, you check how the IO went on by issuing a TEST SUBCHANNEL at each interrupt, 1673concurrently, you check how the IO went on by issuing a TEST SUBCHANNEL at each interrupt,
1675from which you receive an Interruption response block (IRB). If you get channel & device end 1674from which you receive an Interruption response block (IRB). If you get channel & device end
1676status in the IRB without channel checks etc. your IO probably went okay. If you didn't you 1675status in the IRB without channel checks etc. your IO probably went okay. If you didn't you
1677probably need a doctorto examine the IRB & extended status word etc. 1676probably need a doctor to examine the IRB & extended status word etc.
1678If an error occurs more sophistocated control units have a facitity known as 1677If an error occurs, more sophistocated control units have a facitity known as
1679concurrent sense this means that if an error occurs Extended sense information will 1678concurrent sense this means that if an error occurs Extended sense information will
1680be presented in the Extended status word in the IRB if not you have to issue a 1679be presented in the Extended status word in the IRB if not you have to issue a
1681subsequent SENSE CCW command after the test subchannel. 1680subsequent SENSE CCW command after the test subchannel.
@@ -1916,7 +1915,7 @@ Assembly
1916-------- 1915--------
1917info registers: displays registers other than floating point. 1916info registers: displays registers other than floating point.
1918info all-registers: displays floating points as well. 1917info all-registers: displays floating points as well.
1919disassemble: dissassembles 1918disassemble: disassembles
1920e.g. 1919e.g.
1921disassemble without parameters will disassemble the current function 1920disassemble without parameters will disassemble the current function
1922disassemble $pc $pc+10 1921disassemble $pc $pc+10
@@ -1935,7 +1934,7 @@ undisplay : undo's display's
1935 1934
1936info breakpoints: shows all current breakpoints 1935info breakpoints: shows all current breakpoints
1937 1936
1938info stack: shows stack back trace ( if this dosent work too well, I'll show you the 1937info stack: shows stack back trace ( if this doesn't work too well, I'll show you the
1939stacktrace by hand below ). 1938stacktrace by hand below ).
1940 1939
1941info locals: displays local variables. 1940info locals: displays local variables.
diff --git a/Documentation/s390/cds.txt b/Documentation/s390/cds.txt
index 079d8868ae83..3746b6d7b4ba 100644
--- a/Documentation/s390/cds.txt
+++ b/Documentation/s390/cds.txt
@@ -433,7 +433,7 @@ puts the CPU into I/O disabled state by preserving the current PSW flags.
433 433
434The device driver is allowed to issue the next ccw_device_start() call from 434The device driver is allowed to issue the next ccw_device_start() call from
435within its interrupt handler already. It is not required to schedule a 435within its interrupt handler already. It is not required to schedule a
436bottom-half, unless an non deterministicly long running error recovery procedure 436bottom-half, unless an non deterministically long running error recovery procedure
437or similar needs to be scheduled. During I/O processing the Linux/390 generic 437or similar needs to be scheduled. During I/O processing the Linux/390 generic
438I/O device driver support has already obtained the IRQ lock, i.e. the handler 438I/O device driver support has already obtained the IRQ lock, i.e. the handler
439must not try to obtain it again when calling ccw_device_start() or we end in a 439must not try to obtain it again when calling ccw_device_start() or we end in a
diff --git a/Documentation/s390/s390dbf.txt b/Documentation/s390/s390dbf.txt
index e321a8ed2a2d..5ff6fe551b93 100644
--- a/Documentation/s390/s390dbf.txt
+++ b/Documentation/s390/s390dbf.txt
@@ -468,7 +468,7 @@ The hex_ascii view shows the data field in hex and ascii representation
468The raw view returns a bytestream as the debug areas are stored in memory. 468The raw view returns a bytestream as the debug areas are stored in memory.
469 469
470The sprintf view formats the debug entries in the same way as the sprintf 470The sprintf view formats the debug entries in the same way as the sprintf
471function would do. The sprintf event/expection functions write to the 471function would do. The sprintf event/exception functions write to the
472debug entry a pointer to the format string (size = sizeof(long)) 472debug entry a pointer to the format string (size = sizeof(long))
473and for each vararg a long value. So e.g. for a debug entry with a format 473and for each vararg a long value. So e.g. for a debug entry with a format
474string plus two varargs one would need to allocate a (3 * sizeof(long)) 474string plus two varargs one would need to allocate a (3 * sizeof(long))