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