diff options
Diffstat (limited to 'Documentation/s390')
-rw-r--r-- | Documentation/s390/3270.txt | 4 | ||||
-rw-r--r-- | Documentation/s390/Debugging390.txt | 93 | ||||
-rw-r--r-- | Documentation/s390/cds.txt | 14 | ||||
-rw-r--r-- | Documentation/s390/crypto/crypto-API.txt | 4 | ||||
-rw-r--r-- | Documentation/s390/driver-model.txt | 4 | ||||
-rw-r--r-- | Documentation/s390/monreader.txt | 2 | ||||
-rw-r--r-- | Documentation/s390/s390dbf.txt | 12 |
7 files changed, 65 insertions, 68 deletions
diff --git a/Documentation/s390/3270.txt b/Documentation/s390/3270.txt index 0a044e647d2d..7a5c73a7ed7f 100644 --- a/Documentation/s390/3270.txt +++ b/Documentation/s390/3270.txt | |||
@@ -111,9 +111,7 @@ Here are the installation steps in detail: | |||
111 | config3270.sh. Inspect the output script it produces, | 111 | config3270.sh. Inspect the output script it produces, |
112 | /tmp/mkdev3270, and then run that script. This will create the | 112 | /tmp/mkdev3270, and then run that script. This will create the |
113 | necessary character special device files and make the necessary | 113 | necessary character special device files and make the necessary |
114 | changes to /etc/inittab. If you have selected DEVFS, the driver | 114 | changes to /etc/inittab. |
115 | itself creates the device files, and /tmp/mkdev3270 only changes | ||
116 | /etc/inittab. | ||
117 | 115 | ||
118 | Then notify /sbin/init that /etc/inittab has changed, by issuing | 116 | Then notify /sbin/init that /etc/inittab has changed, by issuing |
119 | the telinit command with the q operand: | 117 | the telinit command with the q operand: |
diff --git a/Documentation/s390/Debugging390.txt b/Documentation/s390/Debugging390.txt index 844c03fe7921..4dd25ee549e9 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 | ||
@@ -88,7 +88,7 @@ s/390 z/Architecture | |||
88 | 0 0 Reserved ( must be 0 ) otherwise specification exception occurs. | 88 | 0 0 Reserved ( must be 0 ) otherwise specification exception occurs. |
89 | 89 | ||
90 | 1 1 Program Event Recording 1 PER enabled, | 90 | 1 1 Program Event Recording 1 PER enabled, |
91 | PER is used to facilititate debugging e.g. single stepping. | 91 | PER is used to facilitate debugging e.g. single stepping. |
92 | 92 | ||
93 | 2-4 2-4 Reserved ( must be 0 ). | 93 | 2-4 2-4 Reserved ( must be 0 ). |
94 | 94 | ||
@@ -163,7 +163,7 @@ s/390 z/Architecture | |||
163 | 1 1 64 bit | 163 | 1 1 64 bit |
164 | 164 | ||
165 | 32 1=31 bit addressing mode 0=24 bit addressing mode (for backward | 165 | 32 1=31 bit addressing mode 0=24 bit addressing mode (for backward |
166 | compatibility ), linux always runs with this bit set to 1 | 166 | compatibility), linux always runs with this bit set to 1 |
167 | 167 | ||
168 | 33-64 Instruction address. | 168 | 33-64 Instruction address. |
169 | 33-63 Reserved must be 0 | 169 | 33-63 Reserved must be 0 |
@@ -188,7 +188,7 @@ Bytes 0-512 ( 200 hex ) on s/390 & 0-512,4096-4544,4604-5119 currently on z/Arch | |||
188 | are used by the processor itself for holding such information as exception indications & | 188 | are used by the processor itself for holding such information as exception indications & |
189 | entry points for exceptions. | 189 | entry points for exceptions. |
190 | Bytes after 0xc00 hex are used by linux for per processor globals on s/390 & z/Architecture | 190 | Bytes after 0xc00 hex are used by linux for per processor globals on s/390 & z/Architecture |
191 | ( there is a gap on z/Architecure too currently between 0xc00 & 1000 which linux uses ). | 191 | ( there is a gap on z/Architecture too currently between 0xc00 & 1000 which linux uses ). |
192 | The closest thing to this on traditional architectures is the interrupt | 192 | The closest thing to this on traditional architectures is the interrupt |
193 | vector table. This is a good thing & does simplify some of the kernel coding | 193 | vector table. This is a good thing & does simplify some of the kernel coding |
194 | however it means that we now cannot catch stray NULL pointers in the | 194 | however it means that we now cannot catch stray NULL pointers in the |
@@ -239,7 +239,7 @@ they go to 64 Bit. | |||
239 | 239 | ||
240 | On 390 our limitations & strengths make us slightly different. | 240 | On 390 our limitations & strengths make us slightly different. |
241 | For backward compatibility we are only allowed use 31 bits (2GB) | 241 | For backward compatibility we are only allowed use 31 bits (2GB) |
242 | of our 32 bit addresses,however, we use entirely separate address | 242 | of our 32 bit addresses, however, we use entirely separate address |
243 | spaces for the user & kernel. | 243 | spaces for the user & kernel. |
244 | 244 | ||
245 | This means we can support 2GB of non Extended RAM on s/390, & more | 245 | This means we can support 2GB of non Extended RAM on s/390, & more |
@@ -317,9 +317,9 @@ Each process/thread under Linux for S390 has its own kernel task_struct | |||
317 | defined in linux/include/linux/sched.h | 317 | defined in linux/include/linux/sched.h |
318 | The S390 on initialisation & resuming of a process on a cpu sets | 318 | The S390 on initialisation & resuming of a process on a cpu sets |
319 | the __LC_KERNEL_STACK variable in the spare prefix area for this cpu | 319 | the __LC_KERNEL_STACK variable in the spare prefix area for this cpu |
320 | ( which we use for per processor globals). | 320 | (which we use for per-processor globals). |
321 | 321 | ||
322 | The kernel stack pointer is intimately tied with the task stucture for | 322 | The kernel stack pointer is intimately tied with the task structure for |
323 | each processor as follows. | 323 | each processor as follows. |
324 | 324 | ||
325 | s/390 | 325 | s/390 |
@@ -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 | ||
@@ -366,8 +366,8 @@ Register Usage & Stackframes on Linux for s/390 & z/Architecture | |||
366 | Overview: | 366 | Overview: |
367 | --------- | 367 | --------- |
368 | This is the code that gcc produces at the top & the bottom of | 368 | This is the code that gcc produces at the top & the bottom of |
369 | each function, it usually is fairly consistent & similar from | 369 | each function. It usually is fairly consistent & similar from |
370 | function to function & if you know its layout you can probalby | 370 | function to function & if you know its layout you can probably |
371 | make some headway in finding the ultimate cause of a problem | 371 | make some headway in finding the ultimate cause of a problem |
372 | after a crash without a source level debugger. | 372 | after a crash without a source level debugger. |
373 | 373 | ||
@@ -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. |
@@ -861,7 +860,7 @@ Linux source tree. | |||
861 | 6) rm /arch/s390/kernel/signal.o | 860 | 6) rm /arch/s390/kernel/signal.o |
862 | 7) make /arch/s390/kernel/signal.o | 861 | 7) make /arch/s390/kernel/signal.o |
863 | 8) watch the gcc command line emitted | 862 | 8) watch the gcc command line emitted |
864 | 9) type it in again or alernatively cut & paste it on the console adding the -g option. | 863 | 9) type it in again or alternatively cut & paste it on the console adding the -g option. |
865 | 10) objdump --source arch/s390/kernel/signal.o > signal.lst | 864 | 10) objdump --source arch/s390/kernel/signal.o > signal.lst |
866 | This will output the source & the assembly intermixed, as the snippet below shows | 865 | This will output the source & the assembly intermixed, as the snippet below shows |
867 | This will unfortunately output addresses which aren't the same | 866 | This will unfortunately output addresses which aren't the same |
@@ -913,8 +912,8 @@ If you wanted to know does ping work but didn't have the source | |||
913 | strace ping -c 1 127.0.0.1 | 912 | strace ping -c 1 127.0.0.1 |
914 | & then look at the man pages for each of the syscalls below, | 913 | & then look at the man pages for each of the syscalls below, |
915 | ( In fact this is sometimes easier than looking at some spagetti | 914 | ( In fact this is sometimes easier than looking at some spagetti |
916 | source which conditionally compiles for several architectures ) | 915 | source which conditionally compiles for several architectures ). |
917 | Not everything that it throws out needs to make sense immeadiately | 916 | Not everything that it throws out needs to make sense immediately. |
918 | 917 | ||
919 | Just looking quickly you can see that it is making up a RAW socket | 918 | Just looking quickly you can see that it is making up a RAW socket |
920 | for the ICMP protocol. | 919 | for the ICMP protocol. |
@@ -974,8 +973,9 @@ through the pipe for each line containing the string open. | |||
974 | 973 | ||
975 | Example 3 | 974 | Example 3 |
976 | --------- | 975 | --------- |
977 | Getting sophistocated | 976 | Getting sophisticated |
978 | telnetd crashes on & I don't know why | 977 | telnetd crashes & I don't know why |
978 | |||
979 | Steps | 979 | Steps |
980 | ----- | 980 | ----- |
981 | 1) Replace the following line in /etc/inetd.conf | 981 | 1) Replace the following line in /etc/inetd.conf |
@@ -1085,8 +1085,7 @@ Notes | |||
1085 | ----- | 1085 | ----- |
1086 | Addresses & values in the VM debugger are always hex never decimal | 1086 | Addresses & values in the VM debugger are always hex never decimal |
1087 | Address ranges are of the format <HexValue1>-<HexValue2> or <HexValue1>.<HexValue2> | 1087 | Address ranges are of the format <HexValue1>-<HexValue2> or <HexValue1>.<HexValue2> |
1088 | e.g. The address range 0x2000 to 0x3000 can be described described as | 1088 | e.g. The address range 0x2000 to 0x3000 can be described as 2000-3000 or 2000.1000 |
1089 | 2000-3000 or 2000.1000 | ||
1090 | 1089 | ||
1091 | The VM Debugger is case insensitive. | 1090 | The VM Debugger is case insensitive. |
1092 | 1091 | ||
@@ -1311,7 +1310,7 @@ for finding out when a particular variable changes. | |||
1311 | 1310 | ||
1312 | An alternative way of finding the STD of a currently running process | 1311 | An alternative way of finding the STD of a currently running process |
1313 | is to do the following, ( this method is more complex but | 1312 | is to do the following, ( this method is more complex but |
1314 | could be quite convient if you aren't updating the kernel much & | 1313 | could be quite convenient if you aren't updating the kernel much & |
1315 | so your kernel structures will stay constant for a reasonable period of | 1314 | so your kernel structures will stay constant for a reasonable period of |
1316 | time ). | 1315 | time ). |
1317 | 1316 | ||
@@ -1413,7 +1412,7 @@ SMP Specific commands | |||
1413 | To find out how many cpus you have | 1412 | To find out how many cpus you have |
1414 | Q CPUS displays all the CPU's available to your virtual machine | 1413 | Q CPUS displays all the CPU's available to your virtual machine |
1415 | To find the cpu that the current cpu VM debugger commands are being directed at do | 1414 | To find the cpu that the current cpu VM debugger commands are being directed at do |
1416 | Q CPU to change the current cpu cpu VM debugger commands are being directed at do | 1415 | Q CPU to change the current cpu VM debugger commands are being directed at do |
1417 | CPU <desired cpu no> | 1416 | CPU <desired cpu no> |
1418 | 1417 | ||
1419 | On a SMP guest issue a command to all CPUs try prefixing the command with cpu all. | 1418 | On a SMP guest issue a command to all CPUs try prefixing the command with cpu all. |
@@ -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. |
@@ -1704,7 +1703,7 @@ concentrate on data processing. | |||
1704 | IOP's can use one or more links ( known as channel paths ) to talk to each | 1703 | IOP's can use one or more links ( known as channel paths ) to talk to each |
1705 | IO device. It first checks for path availability & chooses an available one, | 1704 | IO device. It first checks for path availability & chooses an available one, |
1706 | then starts ( & sometimes terminates IO ). | 1705 | then starts ( & sometimes terminates IO ). |
1707 | There are two types of channel path ESCON & the Paralell IO interface. | 1706 | There are two types of channel path: ESCON & the Parallel IO interface. |
1708 | 1707 | ||
1709 | IO devices are attached to control units, control units provide the | 1708 | IO devices are attached to control units, control units provide the |
1710 | logic to interface the channel paths & channel path IO protocols to | 1709 | logic to interface the channel paths & channel path IO protocols to |
@@ -1743,11 +1742,11 @@ controllers or a control unit which connects to 1000 3270 terminals ). | |||
1743 | 1742 | ||
1744 | The 390 IO systems come in 2 flavours the current 390 machines support both | 1743 | The 390 IO systems come in 2 flavours the current 390 machines support both |
1745 | 1744 | ||
1746 | The Older 360 & 370 Interface,sometimes called the paralell I/O interface, | 1745 | The Older 360 & 370 Interface,sometimes called the Parallel I/O interface, |
1747 | sometimes called Bus-and Tag & sometimes Original Equipment Manufacturers | 1746 | sometimes called Bus-and Tag & sometimes Original Equipment Manufacturers |
1748 | Interface (OEMI). | 1747 | Interface (OEMI). |
1749 | 1748 | ||
1750 | This byte wide paralell channel path/bus has parity & data on the "Bus" cable | 1749 | This byte wide Parallel channel path/bus has parity & data on the "Bus" cable |
1751 | & control lines on the "Tag" cable. These can operate in byte multiplex mode for | 1750 | & control lines on the "Tag" cable. These can operate in byte multiplex mode for |
1752 | sharing between several slow devices or burst mode & monopolize the channel for the | 1751 | sharing between several slow devices or burst mode & monopolize the channel for the |
1753 | whole burst. Upto 256 devices can be addressed on one of these cables. These cables are | 1752 | whole burst. Upto 256 devices can be addressed on one of these cables. These cables are |
@@ -1777,7 +1776,7 @@ Consoles 3270 & 3215 ( a teletype emulated under linux for a line mode console ) | |||
1777 | DASD's direct access storage devices ( otherwise known as hard disks ). | 1776 | DASD's direct access storage devices ( otherwise known as hard disks ). |
1778 | Tape Drives. | 1777 | Tape Drives. |
1779 | CTC ( Channel to Channel Adapters ), | 1778 | CTC ( Channel to Channel Adapters ), |
1780 | ESCON or Paralell Cables used as a very high speed serial link | 1779 | ESCON or Parallel Cables used as a very high speed serial link |
1781 | between 2 machines. We use 2 cables under linux to do a bi-directional serial link. | 1780 | between 2 machines. We use 2 cables under linux to do a bi-directional serial link. |
1782 | 1781 | ||
1783 | 1782 | ||
@@ -1803,8 +1802,8 @@ OSA 7C09 ON OSA 7C09 SUBCHANNEL = 0001 | |||
1803 | OSA 7C14 ON OSA 7C14 SUBCHANNEL = 0002 | 1802 | OSA 7C14 ON OSA 7C14 SUBCHANNEL = 0002 |
1804 | OSA 7C15 ON OSA 7C15 SUBCHANNEL = 0003 | 1803 | OSA 7C15 ON OSA 7C15 SUBCHANNEL = 0003 |
1805 | 1804 | ||
1806 | If you have a guest with certain priviliges you may be able to see devices | 1805 | If you have a guest with certain privileges you may be able to see devices |
1807 | which don't belong to you to avoid this do add the option V. | 1806 | which don't belong to you. To avoid this, add the option V. |
1808 | e.g. | 1807 | e.g. |
1809 | Q V OSA | 1808 | Q V OSA |
1810 | 1809 | ||
@@ -1837,7 +1836,7 @@ RDRLIST | |||
1837 | RECEIVE / LOG TXT A1 ( replace | 1836 | RECEIVE / LOG TXT A1 ( replace |
1838 | 8) | 1837 | 8) |
1839 | filel & press F11 to look at it | 1838 | filel & press F11 to look at it |
1840 | You should see someting like. | 1839 | You should see something like: |
1841 | 1840 | ||
1842 | 00020942' SSCH B2334000 0048813C CC 0 SCH 0000 DEV 7C08 | 1841 | 00020942' SSCH B2334000 0048813C CC 0 SCH 0000 DEV 7C08 |
1843 | CPA 000FFDF0 PARM 00E2C9C4 KEY 0 FPI C0 LPM 80 | 1842 | CPA 000FFDF0 PARM 00E2C9C4 KEY 0 FPI C0 LPM 80 |
@@ -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. |
@@ -2045,13 +2044,13 @@ what gdb does when the victim receives certain signals. | |||
2045 | list: | 2044 | list: |
2046 | e.g. | 2045 | e.g. |
2047 | list lists current function source | 2046 | list lists current function source |
2048 | list 1,10 list first 10 lines of curret file. | 2047 | list 1,10 list first 10 lines of current file. |
2049 | list test.c:1,10 | 2048 | list test.c:1,10 |
2050 | 2049 | ||
2051 | 2050 | ||
2052 | directory: | 2051 | directory: |
2053 | Adds directories to be searched for source if gdb cannot find the source. | 2052 | Adds directories to be searched for source if gdb cannot find the source. |
2054 | (note it is a bit sensititive about slashes ) | 2053 | (note it is a bit sensititive about slashes) |
2055 | e.g. To add the root of the filesystem to the searchpath do | 2054 | e.g. To add the root of the filesystem to the searchpath do |
2056 | directory // | 2055 | directory // |
2057 | 2056 | ||
@@ -2123,9 +2122,9 @@ p/x (*(**$sp+56))&0x7fffffff | |||
2123 | 2122 | ||
2124 | Disassembling instructions without debug info | 2123 | Disassembling instructions without debug info |
2125 | --------------------------------------------- | 2124 | --------------------------------------------- |
2126 | gdb typically compains if there is a lack of debugging | 2125 | gdb typically complains if there is a lack of debugging |
2127 | symbols in the disassemble command with | 2126 | symbols in the disassemble command with |
2128 | "No function contains specified address." to get around | 2127 | "No function contains specified address." To get around |
2129 | this do | 2128 | this do |
2130 | x/<number lines to disassemble>xi <address> | 2129 | x/<number lines to disassemble>xi <address> |
2131 | e.g. | 2130 | e.g. |
@@ -2184,7 +2183,7 @@ ps -aux | grep gdb | |||
2184 | kill -SIGSEGV <gdb's pid> | 2183 | kill -SIGSEGV <gdb's pid> |
2185 | or alternatively use killall -SIGSEGV gdb if you have the killall command. | 2184 | or alternatively use killall -SIGSEGV gdb if you have the killall command. |
2186 | Now look at the core dump. | 2185 | Now look at the core dump. |
2187 | ./gdb ./gdb core | 2186 | ./gdb core |
2188 | Displays the following | 2187 | Displays the following |
2189 | GNU gdb 4.18 | 2188 | GNU gdb 4.18 |
2190 | Copyright 1998 Free Software Foundation, Inc. | 2189 | Copyright 1998 Free Software Foundation, Inc. |
@@ -2316,7 +2315,7 @@ Showing us the shared libraries init uses where they are in memory | |||
2316 | /proc/1/mem is the current running processes memory which you | 2315 | /proc/1/mem is the current running processes memory which you |
2317 | can read & write to like a file. | 2316 | can read & write to like a file. |
2318 | strace uses this sometimes as it is a bit faster than the | 2317 | strace uses this sometimes as it is a bit faster than the |
2319 | rather inefficent ptrace interface for peeking at DATA. | 2318 | rather inefficient ptrace interface for peeking at DATA. |
2320 | 2319 | ||
2321 | 2320 | ||
2322 | cat status | 2321 | cat status |
@@ -2446,7 +2445,7 @@ displays the following lines as it executes them. | |||
2446 | + RELSTATUS=release | 2445 | + RELSTATUS=release |
2447 | + MACHTYPE=i586-pc-linux-gnu | 2446 | + MACHTYPE=i586-pc-linux-gnu |
2448 | 2447 | ||
2449 | perl -d <scriptname> runs the perlscript in a fully intercative debugger | 2448 | perl -d <scriptname> runs the perlscript in a fully interactive debugger |
2450 | <like gdb>. | 2449 | <like gdb>. |
2451 | Type 'h' in the debugger for help. | 2450 | Type 'h' in the debugger for help. |
2452 | 2451 | ||
@@ -2477,7 +2476,7 @@ Lcrash is a perfectly normal program,however, it requires 2 | |||
2477 | additional files, Kerntypes which is built using a patch to the | 2476 | additional files, Kerntypes which is built using a patch to the |
2478 | linux kernel sources in the linux root directory & the System.map. | 2477 | linux kernel sources in the linux root directory & the System.map. |
2479 | 2478 | ||
2480 | Kerntypes is an an objectfile whose sole purpose in life | 2479 | Kerntypes is an objectfile whose sole purpose in life |
2481 | is to provide stabs debug info to lcrash, to do this | 2480 | is to provide stabs debug info to lcrash, to do this |
2482 | Kerntypes is built from kerntypes.c which just includes the most commonly | 2481 | Kerntypes is built from kerntypes.c which just includes the most commonly |
2483 | referenced header files used when debugging, lcrash can then read the | 2482 | referenced header files used when debugging, lcrash can then read the |
diff --git a/Documentation/s390/cds.txt b/Documentation/s390/cds.txt index f0be389c7116..d80e5733827d 100644 --- a/Documentation/s390/cds.txt +++ b/Documentation/s390/cds.txt | |||
@@ -133,7 +133,7 @@ determine the device driver owning the device that raised the interrupt. | |||
133 | In order not to introduce a new I/O concept to the common Linux code, | 133 | In order not to introduce a new I/O concept to the common Linux code, |
134 | Linux/390 preserves the IRQ concept and semantically maps the ESA/390 | 134 | Linux/390 preserves the IRQ concept and semantically maps the ESA/390 |
135 | subchannels to Linux as IRQs. This allows Linux/390 to support up to 64k | 135 | subchannels to Linux as IRQs. This allows Linux/390 to support up to 64k |
136 | different IRQs, uniquely representig a single device each. | 136 | different IRQs, uniquely representing a single device each. |
137 | 137 | ||
138 | Up to kernel 2.4, Linux/390 used to provide interfaces via the IRQ (subchannel). | 138 | Up to kernel 2.4, Linux/390 used to provide interfaces via the IRQ (subchannel). |
139 | For internal use of the common I/O layer, these are still there. However, | 139 | For internal use of the common I/O layer, these are still there. However, |
@@ -143,7 +143,7 @@ During its startup the Linux/390 system checks for peripheral devices. Each | |||
143 | of those devices is uniquely defined by a so called subchannel by the ESA/390 | 143 | of those devices is uniquely defined by a so called subchannel by the ESA/390 |
144 | channel subsystem. While the subchannel numbers are system generated, each | 144 | channel subsystem. While the subchannel numbers are system generated, each |
145 | subchannel also takes a user defined attribute, the so called device number. | 145 | subchannel also takes a user defined attribute, the so called device number. |
146 | Both subchannel number and device number can not exceed 65535. During driverfs | 146 | Both subchannel number and device number cannot exceed 65535. During driverfs |
147 | initialisation, the information about control unit type and device types that | 147 | initialisation, the information about control unit type and device types that |
148 | imply specific I/O commands (channel command words - CCWs) in order to operate | 148 | imply specific I/O commands (channel command words - CCWs) in order to operate |
149 | the device are gathered. Device drivers can retrieve this set of hardware | 149 | the device are gathered. Device drivers can retrieve this set of hardware |
@@ -177,11 +177,11 @@ This routine returns the characteristics for the device specified. | |||
177 | The function is meant to be called with an irq handler in place; that is, | 177 | The function is meant to be called with an irq handler in place; that is, |
178 | at earliest during set_online() processing. | 178 | at earliest during set_online() processing. |
179 | 179 | ||
180 | While the request is procesed synchronously, the device interrupt | 180 | While the request is processed synchronously, the device interrupt |
181 | handler is called for final ending status. In case of error situations the | 181 | handler is called for final ending status. In case of error situations the |
182 | interrupt handler may recover appropriately. The device irq handler can | 182 | interrupt handler may recover appropriately. The device irq handler can |
183 | recognize the corresponding interrupts by the interruption parameter be | 183 | recognize the corresponding interrupts by the interruption parameter be |
184 | 0x00524443.The ccw_device must not be locked prior to calling read_dev_chars(). | 184 | 0x00524443. The ccw_device must not be locked prior to calling read_dev_chars(). |
185 | 185 | ||
186 | The function may be called enabled or disabled. | 186 | The function may be called enabled or disabled. |
187 | 187 | ||
@@ -325,7 +325,7 @@ with the following CCW flags values defined : | |||
325 | 325 | ||
326 | CCW_FLAG_DC - data chaining | 326 | CCW_FLAG_DC - data chaining |
327 | CCW_FLAG_CC - command chaining | 327 | CCW_FLAG_CC - command chaining |
328 | CCW_FLAG_SLI - suppress incorrct length | 328 | CCW_FLAG_SLI - suppress incorrect length |
329 | CCW_FLAG_SKIP - skip | 329 | CCW_FLAG_SKIP - skip |
330 | CCW_FLAG_PCI - PCI | 330 | CCW_FLAG_PCI - PCI |
331 | CCW_FLAG_IDA - indirect addressing | 331 | CCW_FLAG_IDA - indirect addressing |
@@ -348,7 +348,7 @@ The ccw_device_start() function returns : | |||
348 | not online. | 348 | not online. |
349 | 349 | ||
350 | When the I/O request completes, the CDS first level interrupt handler will | 350 | When the I/O request completes, the CDS first level interrupt handler will |
351 | accumalate the status in a struct irb and then call the device interrupt handler. | 351 | accumulate the status in a struct irb and then call the device interrupt handler. |
352 | The intparm field will contain the value the device driver has associated with a | 352 | The intparm field will contain the value the device driver has associated with a |
353 | particular I/O request. If a pending device status was recognized, | 353 | particular I/O request. If a pending device status was recognized, |
354 | intparm will be set to 0 (zero). This may happen during I/O initiation or delayed | 354 | intparm will be set to 0 (zero). This may happen during I/O initiation or delayed |
@@ -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/crypto/crypto-API.txt b/Documentation/s390/crypto/crypto-API.txt index 78a77624a716..29dee792c887 100644 --- a/Documentation/s390/crypto/crypto-API.txt +++ b/Documentation/s390/crypto/crypto-API.txt | |||
@@ -61,9 +61,9 @@ Example: z990 crypto instruction for SHA1 algorithm is available | |||
61 | -> when the sha1 algorithm is requested through the crypto API | 61 | -> when the sha1 algorithm is requested through the crypto API |
62 | (which has a module autoloader) the z990 module will be loaded. | 62 | (which has a module autoloader) the z990 module will be loaded. |
63 | 63 | ||
64 | TBD: a userspace module probin mechanism | 64 | TBD: a userspace module probing mechanism |
65 | something like 'probe sha1 sha1_z990 sha1' in modprobe.conf | 65 | something like 'probe sha1 sha1_z990 sha1' in modprobe.conf |
66 | -> try module sha1_z990, if it fails to load load standard module sha1 | 66 | -> try module sha1_z990, if it fails to load standard module sha1 |
67 | the 'probe' statement is currently not supported in modprobe.conf | 67 | the 'probe' statement is currently not supported in modprobe.conf |
68 | 68 | ||
69 | 69 | ||
diff --git a/Documentation/s390/driver-model.txt b/Documentation/s390/driver-model.txt index efb674eda4d4..62c082387aea 100644 --- a/Documentation/s390/driver-model.txt +++ b/Documentation/s390/driver-model.txt | |||
@@ -157,7 +157,7 @@ notify: This function is called by the common I/O layer for some state changes | |||
157 | * In online state, device detached (CIO_GONE) or last path gone | 157 | * In online state, device detached (CIO_GONE) or last path gone |
158 | (CIO_NO_PATH). The driver must return !0 to keep the device; for | 158 | (CIO_NO_PATH). The driver must return !0 to keep the device; for |
159 | return code 0, the device will be deleted as usual (also when no | 159 | return code 0, the device will be deleted as usual (also when no |
160 | notify function is registerd). If the driver wants to keep the | 160 | notify function is registered). If the driver wants to keep the |
161 | device, it is moved into disconnected state. | 161 | device, it is moved into disconnected state. |
162 | * In disconnected state, device operational again (CIO_OPER). The | 162 | * In disconnected state, device operational again (CIO_OPER). The |
163 | common I/O layer performs some sanity checks on device number and | 163 | common I/O layer performs some sanity checks on device number and |
@@ -262,7 +262,7 @@ attribute 'online' which can be 0 or 1. | |||
262 | ----------- | 262 | ----------- |
263 | 263 | ||
264 | The netiucv driver creates an attribute 'connection' under | 264 | The netiucv driver creates an attribute 'connection' under |
265 | bus/iucv/drivers/netiucv. Piping to this attibute creates a new netiucv | 265 | bus/iucv/drivers/netiucv. Piping to this attribute creates a new netiucv |
266 | connection to the specified host. | 266 | connection to the specified host. |
267 | 267 | ||
268 | Netiucv connections show up under devices/iucv/ as "netiucv<ifnum>". The interface | 268 | Netiucv connections show up under devices/iucv/ as "netiucv<ifnum>". The interface |
diff --git a/Documentation/s390/monreader.txt b/Documentation/s390/monreader.txt index d843bb04906e..beeaa4b24427 100644 --- a/Documentation/s390/monreader.txt +++ b/Documentation/s390/monreader.txt | |||
@@ -83,7 +83,7 @@ This loads the module and sets the DCSS name to "MYDCSS". | |||
83 | 83 | ||
84 | NOTE: | 84 | NOTE: |
85 | ----- | 85 | ----- |
86 | This API provides no interface to control the *MONITOR service, e.g. specifiy | 86 | This API provides no interface to control the *MONITOR service, e.g. specify |
87 | which data should be collected. This can be done by the CP command MONITOR | 87 | which data should be collected. This can be done by the CP command MONITOR |
88 | (Class E privileged), see "CP Command and Utility Reference". | 88 | (Class E privileged), see "CP Command and Utility Reference". |
89 | 89 | ||
diff --git a/Documentation/s390/s390dbf.txt b/Documentation/s390/s390dbf.txt index e321a8ed2a2d..000230cd26db 100644 --- a/Documentation/s390/s390dbf.txt +++ b/Documentation/s390/s390dbf.txt | |||
@@ -11,7 +11,7 @@ where log records can be stored efficiently in memory, where each component | |||
11 | (e.g. device drivers) can have one separate debug log. | 11 | (e.g. device drivers) can have one separate debug log. |
12 | One purpose of this is to inspect the debug logs after a production system crash | 12 | One purpose of this is to inspect the debug logs after a production system crash |
13 | in order to analyze the reason for the crash. | 13 | in order to analyze the reason for the crash. |
14 | If the system still runs but only a subcomponent which uses dbf failes, | 14 | If the system still runs but only a subcomponent which uses dbf fails, |
15 | it is possible to look at the debug logs on a live system via the Linux | 15 | it is possible to look at the debug logs on a live system via the Linux |
16 | debugfs filesystem. | 16 | debugfs filesystem. |
17 | The debug feature may also very useful for kernel and driver development. | 17 | The debug feature may also very useful for kernel and driver development. |
@@ -65,7 +65,7 @@ Predefined views for hex/ascii, sprintf and raw binary data are provided. | |||
65 | It is also possible to define other views. The content of | 65 | It is also possible to define other views. The content of |
66 | a view can be inspected simply by reading the corresponding debugfs file. | 66 | a view can be inspected simply by reading the corresponding debugfs file. |
67 | 67 | ||
68 | All debug logs have an an actual debug level (range from 0 to 6). | 68 | All debug logs have an actual debug level (range from 0 to 6). |
69 | The default level is 3. Event and Exception functions have a 'level' | 69 | The default level is 3. Event and Exception functions have a 'level' |
70 | parameter. Only debug entries with a level that is lower or equal | 70 | parameter. Only debug entries with a level that is lower or equal |
71 | than the actual level are written to the log. This means, when | 71 | than the actual level are written to the log. This means, when |
@@ -83,8 +83,8 @@ Example: | |||
83 | It is also possible to deactivate the debug feature globally for every | 83 | It is also possible to deactivate the debug feature globally for every |
84 | debug log. You can change the behavior using 2 sysctl parameters in | 84 | debug log. You can change the behavior using 2 sysctl parameters in |
85 | /proc/sys/s390dbf: | 85 | /proc/sys/s390dbf: |
86 | There are currently 2 possible triggers, which stop the debug feature | 86 | There are currently 2 possible triggers, which stop the debug feature |
87 | globally. The first possbility is to use the "debug_active" sysctl. If | 87 | globally. The first possibility is to use the "debug_active" sysctl. If |
88 | set to 1 the debug feature is running. If "debug_active" is set to 0 the | 88 | set to 1 the debug feature is running. If "debug_active" is set to 0 the |
89 | debug feature is turned off. | 89 | debug feature is turned off. |
90 | The second trigger which stops the debug feature is an kernel oops. | 90 | The second trigger which stops the debug feature is an kernel oops. |
@@ -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)) |
@@ -556,7 +556,7 @@ The input_proc can be used to implement functionality when it is written to | |||
556 | the view (e.g. like with 'echo "0" > /sys/kernel/debug/s390dbf/dasd/level). | 556 | the view (e.g. like with 'echo "0" > /sys/kernel/debug/s390dbf/dasd/level). |
557 | 557 | ||
558 | For header_proc there can be used the default function | 558 | For header_proc there can be used the default function |
559 | debug_dflt_header_fn() which is defined in in debug.h. | 559 | debug_dflt_header_fn() which is defined in debug.h. |
560 | and which produces the same header output as the predefined views. | 560 | and which produces the same header output as the predefined views. |
561 | E.g: | 561 | E.g: |
562 | 00 00964419409:440761 2 - 00 88023ec | 562 | 00 00964419409:440761 2 - 00 88023ec |