diff options
author | Michael Holzheu <holzheu@de.ibm.com> | 2005-06-25 17:55:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-25 19:24:37 -0400 |
commit | 66a464dbc8e0345b6f972b92bf1118e043d7c987 (patch) | |
tree | 4c8f83ce6b1879556025fe77b97629a8380aa4dd /drivers/s390/cio | |
parent | 6b979de395c7e1b7e59f74a870e1d1911853eccb (diff) |
[PATCH] s390: debug feature changes
This patch changes the memory allocation method for the s390 debug feature.
Trace buffers had been allocated using the get_free_pages() function before.
Therefore it was not possible to get big memory areas in a running system due
to memory fragmentation. Now the trace buffers are subdivided into several
subbuffers with pagesize. Therefore it is now possible to allocate more
memory for the trace buffers and more trace records can be written.
In addition to that, dynamic specification of the size of the trace buffers is
implemented. It is now possible to change the size of a trace buffer using a
new debugfs file instance. When writing a number into this file, the trace
buffer size is changed to 'number * pagesize'.
In the past all the traces could be obtained from userspace by accessing files
in the "proc" filesystem. Now with debugfs we have a new filesystem which
should be used for debugging purposes. This patch moves the debug feature
from procfs to debugfs.
Since the interface of debug_register() changed, all device drivers, which use
the debug feature had to be adjusted.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r-- | drivers/s390/cio/cio.c | 8 | ||||
-rw-r--r-- | drivers/s390/cio/qdio.c | 14 | ||||
-rw-r--r-- | drivers/s390/cio/qdio.h | 16 |
3 files changed, 19 insertions, 19 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index 1d9b3f18d8de..ea813bdce1d6 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/cio.c | 2 | * drivers/s390/cio/cio.c |
3 | * S/390 common I/O routines -- low level i/o calls | 3 | * S/390 common I/O routines -- low level i/o calls |
4 | * $Revision: 1.133 $ | 4 | * $Revision: 1.134 $ |
5 | * | 5 | * |
6 | * Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH, | 6 | * Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH, |
7 | * IBM Corporation | 7 | * IBM Corporation |
@@ -63,17 +63,17 @@ __setup ("cio_msg=", cio_setup); | |||
63 | static int __init | 63 | static int __init |
64 | cio_debug_init (void) | 64 | cio_debug_init (void) |
65 | { | 65 | { |
66 | cio_debug_msg_id = debug_register ("cio_msg", 4, 4, 16*sizeof (long)); | 66 | cio_debug_msg_id = debug_register ("cio_msg", 16, 4, 16*sizeof (long)); |
67 | if (!cio_debug_msg_id) | 67 | if (!cio_debug_msg_id) |
68 | goto out_unregister; | 68 | goto out_unregister; |
69 | debug_register_view (cio_debug_msg_id, &debug_sprintf_view); | 69 | debug_register_view (cio_debug_msg_id, &debug_sprintf_view); |
70 | debug_set_level (cio_debug_msg_id, 2); | 70 | debug_set_level (cio_debug_msg_id, 2); |
71 | cio_debug_trace_id = debug_register ("cio_trace", 4, 4, 8); | 71 | cio_debug_trace_id = debug_register ("cio_trace", 16, 4, 8); |
72 | if (!cio_debug_trace_id) | 72 | if (!cio_debug_trace_id) |
73 | goto out_unregister; | 73 | goto out_unregister; |
74 | debug_register_view (cio_debug_trace_id, &debug_hex_ascii_view); | 74 | debug_register_view (cio_debug_trace_id, &debug_hex_ascii_view); |
75 | debug_set_level (cio_debug_trace_id, 2); | 75 | debug_set_level (cio_debug_trace_id, 2); |
76 | cio_debug_crw_id = debug_register ("cio_crw", 2, 4, 16*sizeof (long)); | 76 | cio_debug_crw_id = debug_register ("cio_crw", 4, 4, 16*sizeof (long)); |
77 | if (!cio_debug_crw_id) | 77 | if (!cio_debug_crw_id) |
78 | goto out_unregister; | 78 | goto out_unregister; |
79 | debug_register_view (cio_debug_crw_id, &debug_sprintf_view); | 79 | debug_register_view (cio_debug_crw_id, &debug_sprintf_view); |
diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c index bbe9f45d1438..82194c4eadfb 100644 --- a/drivers/s390/cio/qdio.c +++ b/drivers/s390/cio/qdio.c | |||
@@ -56,7 +56,7 @@ | |||
56 | #include "ioasm.h" | 56 | #include "ioasm.h" |
57 | #include "chsc.h" | 57 | #include "chsc.h" |
58 | 58 | ||
59 | #define VERSION_QDIO_C "$Revision: 1.98 $" | 59 | #define VERSION_QDIO_C "$Revision: 1.101 $" |
60 | 60 | ||
61 | /****************** MODULE PARAMETER VARIABLES ********************/ | 61 | /****************** MODULE PARAMETER VARIABLES ********************/ |
62 | MODULE_AUTHOR("Utz Bacher <utz.bacher@de.ibm.com>"); | 62 | MODULE_AUTHOR("Utz Bacher <utz.bacher@de.ibm.com>"); |
@@ -3342,7 +3342,7 @@ static int | |||
3342 | qdio_register_dbf_views(void) | 3342 | qdio_register_dbf_views(void) |
3343 | { | 3343 | { |
3344 | qdio_dbf_setup=debug_register(QDIO_DBF_SETUP_NAME, | 3344 | qdio_dbf_setup=debug_register(QDIO_DBF_SETUP_NAME, |
3345 | QDIO_DBF_SETUP_INDEX, | 3345 | QDIO_DBF_SETUP_PAGES, |
3346 | QDIO_DBF_SETUP_NR_AREAS, | 3346 | QDIO_DBF_SETUP_NR_AREAS, |
3347 | QDIO_DBF_SETUP_LEN); | 3347 | QDIO_DBF_SETUP_LEN); |
3348 | if (!qdio_dbf_setup) | 3348 | if (!qdio_dbf_setup) |
@@ -3351,7 +3351,7 @@ qdio_register_dbf_views(void) | |||
3351 | debug_set_level(qdio_dbf_setup,QDIO_DBF_SETUP_LEVEL); | 3351 | debug_set_level(qdio_dbf_setup,QDIO_DBF_SETUP_LEVEL); |
3352 | 3352 | ||
3353 | qdio_dbf_sbal=debug_register(QDIO_DBF_SBAL_NAME, | 3353 | qdio_dbf_sbal=debug_register(QDIO_DBF_SBAL_NAME, |
3354 | QDIO_DBF_SBAL_INDEX, | 3354 | QDIO_DBF_SBAL_PAGES, |
3355 | QDIO_DBF_SBAL_NR_AREAS, | 3355 | QDIO_DBF_SBAL_NR_AREAS, |
3356 | QDIO_DBF_SBAL_LEN); | 3356 | QDIO_DBF_SBAL_LEN); |
3357 | if (!qdio_dbf_sbal) | 3357 | if (!qdio_dbf_sbal) |
@@ -3361,7 +3361,7 @@ qdio_register_dbf_views(void) | |||
3361 | debug_set_level(qdio_dbf_sbal,QDIO_DBF_SBAL_LEVEL); | 3361 | debug_set_level(qdio_dbf_sbal,QDIO_DBF_SBAL_LEVEL); |
3362 | 3362 | ||
3363 | qdio_dbf_sense=debug_register(QDIO_DBF_SENSE_NAME, | 3363 | qdio_dbf_sense=debug_register(QDIO_DBF_SENSE_NAME, |
3364 | QDIO_DBF_SENSE_INDEX, | 3364 | QDIO_DBF_SENSE_PAGES, |
3365 | QDIO_DBF_SENSE_NR_AREAS, | 3365 | QDIO_DBF_SENSE_NR_AREAS, |
3366 | QDIO_DBF_SENSE_LEN); | 3366 | QDIO_DBF_SENSE_LEN); |
3367 | if (!qdio_dbf_sense) | 3367 | if (!qdio_dbf_sense) |
@@ -3371,7 +3371,7 @@ qdio_register_dbf_views(void) | |||
3371 | debug_set_level(qdio_dbf_sense,QDIO_DBF_SENSE_LEVEL); | 3371 | debug_set_level(qdio_dbf_sense,QDIO_DBF_SENSE_LEVEL); |
3372 | 3372 | ||
3373 | qdio_dbf_trace=debug_register(QDIO_DBF_TRACE_NAME, | 3373 | qdio_dbf_trace=debug_register(QDIO_DBF_TRACE_NAME, |
3374 | QDIO_DBF_TRACE_INDEX, | 3374 | QDIO_DBF_TRACE_PAGES, |
3375 | QDIO_DBF_TRACE_NR_AREAS, | 3375 | QDIO_DBF_TRACE_NR_AREAS, |
3376 | QDIO_DBF_TRACE_LEN); | 3376 | QDIO_DBF_TRACE_LEN); |
3377 | if (!qdio_dbf_trace) | 3377 | if (!qdio_dbf_trace) |
@@ -3382,7 +3382,7 @@ qdio_register_dbf_views(void) | |||
3382 | 3382 | ||
3383 | #ifdef CONFIG_QDIO_DEBUG | 3383 | #ifdef CONFIG_QDIO_DEBUG |
3384 | qdio_dbf_slsb_out=debug_register(QDIO_DBF_SLSB_OUT_NAME, | 3384 | qdio_dbf_slsb_out=debug_register(QDIO_DBF_SLSB_OUT_NAME, |
3385 | QDIO_DBF_SLSB_OUT_INDEX, | 3385 | QDIO_DBF_SLSB_OUT_PAGES, |
3386 | QDIO_DBF_SLSB_OUT_NR_AREAS, | 3386 | QDIO_DBF_SLSB_OUT_NR_AREAS, |
3387 | QDIO_DBF_SLSB_OUT_LEN); | 3387 | QDIO_DBF_SLSB_OUT_LEN); |
3388 | if (!qdio_dbf_slsb_out) | 3388 | if (!qdio_dbf_slsb_out) |
@@ -3391,7 +3391,7 @@ qdio_register_dbf_views(void) | |||
3391 | debug_set_level(qdio_dbf_slsb_out,QDIO_DBF_SLSB_OUT_LEVEL); | 3391 | debug_set_level(qdio_dbf_slsb_out,QDIO_DBF_SLSB_OUT_LEVEL); |
3392 | 3392 | ||
3393 | qdio_dbf_slsb_in=debug_register(QDIO_DBF_SLSB_IN_NAME, | 3393 | qdio_dbf_slsb_in=debug_register(QDIO_DBF_SLSB_IN_NAME, |
3394 | QDIO_DBF_SLSB_IN_INDEX, | 3394 | QDIO_DBF_SLSB_IN_PAGES, |
3395 | QDIO_DBF_SLSB_IN_NR_AREAS, | 3395 | QDIO_DBF_SLSB_IN_NR_AREAS, |
3396 | QDIO_DBF_SLSB_IN_LEN); | 3396 | QDIO_DBF_SLSB_IN_LEN); |
3397 | if (!qdio_dbf_slsb_in) | 3397 | if (!qdio_dbf_slsb_in) |
diff --git a/drivers/s390/cio/qdio.h b/drivers/s390/cio/qdio.h index b6daadac4e8b..6b8aa6a852be 100644 --- a/drivers/s390/cio/qdio.h +++ b/drivers/s390/cio/qdio.h | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | #include <asm/page.h> | 4 | #include <asm/page.h> |
5 | 5 | ||
6 | #define VERSION_CIO_QDIO_H "$Revision: 1.32 $" | 6 | #define VERSION_CIO_QDIO_H "$Revision: 1.33 $" |
7 | 7 | ||
8 | #ifdef CONFIG_QDIO_DEBUG | 8 | #ifdef CONFIG_QDIO_DEBUG |
9 | #define QDIO_VERBOSE_LEVEL 9 | 9 | #define QDIO_VERBOSE_LEVEL 9 |
@@ -132,7 +132,7 @@ enum qdio_irq_states { | |||
132 | 132 | ||
133 | #define QDIO_DBF_SETUP_NAME "qdio_setup" | 133 | #define QDIO_DBF_SETUP_NAME "qdio_setup" |
134 | #define QDIO_DBF_SETUP_LEN 8 | 134 | #define QDIO_DBF_SETUP_LEN 8 |
135 | #define QDIO_DBF_SETUP_INDEX 2 | 135 | #define QDIO_DBF_SETUP_PAGES 4 |
136 | #define QDIO_DBF_SETUP_NR_AREAS 1 | 136 | #define QDIO_DBF_SETUP_NR_AREAS 1 |
137 | #ifdef CONFIG_QDIO_DEBUG | 137 | #ifdef CONFIG_QDIO_DEBUG |
138 | #define QDIO_DBF_SETUP_LEVEL 6 | 138 | #define QDIO_DBF_SETUP_LEVEL 6 |
@@ -142,7 +142,7 @@ enum qdio_irq_states { | |||
142 | 142 | ||
143 | #define QDIO_DBF_SBAL_NAME "qdio_labs" /* sbal */ | 143 | #define QDIO_DBF_SBAL_NAME "qdio_labs" /* sbal */ |
144 | #define QDIO_DBF_SBAL_LEN 256 | 144 | #define QDIO_DBF_SBAL_LEN 256 |
145 | #define QDIO_DBF_SBAL_INDEX 2 | 145 | #define QDIO_DBF_SBAL_PAGES 4 |
146 | #define QDIO_DBF_SBAL_NR_AREAS 2 | 146 | #define QDIO_DBF_SBAL_NR_AREAS 2 |
147 | #ifdef CONFIG_QDIO_DEBUG | 147 | #ifdef CONFIG_QDIO_DEBUG |
148 | #define QDIO_DBF_SBAL_LEVEL 6 | 148 | #define QDIO_DBF_SBAL_LEVEL 6 |
@@ -154,16 +154,16 @@ enum qdio_irq_states { | |||
154 | #define QDIO_DBF_TRACE_LEN 8 | 154 | #define QDIO_DBF_TRACE_LEN 8 |
155 | #define QDIO_DBF_TRACE_NR_AREAS 2 | 155 | #define QDIO_DBF_TRACE_NR_AREAS 2 |
156 | #ifdef CONFIG_QDIO_DEBUG | 156 | #ifdef CONFIG_QDIO_DEBUG |
157 | #define QDIO_DBF_TRACE_INDEX 4 | 157 | #define QDIO_DBF_TRACE_PAGES 16 |
158 | #define QDIO_DBF_TRACE_LEVEL 4 /* -------- could be even more verbose here */ | 158 | #define QDIO_DBF_TRACE_LEVEL 4 /* -------- could be even more verbose here */ |
159 | #else /* CONFIG_QDIO_DEBUG */ | 159 | #else /* CONFIG_QDIO_DEBUG */ |
160 | #define QDIO_DBF_TRACE_INDEX 2 | 160 | #define QDIO_DBF_TRACE_PAGES 4 |
161 | #define QDIO_DBF_TRACE_LEVEL 2 | 161 | #define QDIO_DBF_TRACE_LEVEL 2 |
162 | #endif /* CONFIG_QDIO_DEBUG */ | 162 | #endif /* CONFIG_QDIO_DEBUG */ |
163 | 163 | ||
164 | #define QDIO_DBF_SENSE_NAME "qdio_sense" | 164 | #define QDIO_DBF_SENSE_NAME "qdio_sense" |
165 | #define QDIO_DBF_SENSE_LEN 64 | 165 | #define QDIO_DBF_SENSE_LEN 64 |
166 | #define QDIO_DBF_SENSE_INDEX 1 | 166 | #define QDIO_DBF_SENSE_PAGES 2 |
167 | #define QDIO_DBF_SENSE_NR_AREAS 1 | 167 | #define QDIO_DBF_SENSE_NR_AREAS 1 |
168 | #ifdef CONFIG_QDIO_DEBUG | 168 | #ifdef CONFIG_QDIO_DEBUG |
169 | #define QDIO_DBF_SENSE_LEVEL 6 | 169 | #define QDIO_DBF_SENSE_LEVEL 6 |
@@ -176,13 +176,13 @@ enum qdio_irq_states { | |||
176 | 176 | ||
177 | #define QDIO_DBF_SLSB_OUT_NAME "qdio_slsb_out" | 177 | #define QDIO_DBF_SLSB_OUT_NAME "qdio_slsb_out" |
178 | #define QDIO_DBF_SLSB_OUT_LEN QDIO_MAX_BUFFERS_PER_Q | 178 | #define QDIO_DBF_SLSB_OUT_LEN QDIO_MAX_BUFFERS_PER_Q |
179 | #define QDIO_DBF_SLSB_OUT_INDEX 8 | 179 | #define QDIO_DBF_SLSB_OUT_PAGES 256 |
180 | #define QDIO_DBF_SLSB_OUT_NR_AREAS 1 | 180 | #define QDIO_DBF_SLSB_OUT_NR_AREAS 1 |
181 | #define QDIO_DBF_SLSB_OUT_LEVEL 6 | 181 | #define QDIO_DBF_SLSB_OUT_LEVEL 6 |
182 | 182 | ||
183 | #define QDIO_DBF_SLSB_IN_NAME "qdio_slsb_in" | 183 | #define QDIO_DBF_SLSB_IN_NAME "qdio_slsb_in" |
184 | #define QDIO_DBF_SLSB_IN_LEN QDIO_MAX_BUFFERS_PER_Q | 184 | #define QDIO_DBF_SLSB_IN_LEN QDIO_MAX_BUFFERS_PER_Q |
185 | #define QDIO_DBF_SLSB_IN_INDEX 8 | 185 | #define QDIO_DBF_SLSB_IN_PAGES 256 |
186 | #define QDIO_DBF_SLSB_IN_NR_AREAS 1 | 186 | #define QDIO_DBF_SLSB_IN_NR_AREAS 1 |
187 | #define QDIO_DBF_SLSB_IN_LEVEL 6 | 187 | #define QDIO_DBF_SLSB_IN_LEVEL 6 |
188 | #endif /* CONFIG_QDIO_DEBUG */ | 188 | #endif /* CONFIG_QDIO_DEBUG */ |