diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2009-09-11 04:28:18 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-09-11 04:29:37 -0400 |
commit | efd986db2d720e8f6660ec2c292509ee7d28cc6a (patch) | |
tree | ed9af23ead6a8e718fb91d8fd60139ddb3a96270 /drivers/s390/cio | |
parent | 626e476ae011cafddc0ccb39ab838b90cc5d2272 (diff) |
[S390] cio: increase trace level
Move debug traces for start I/O and interrupt events to exclusive
trace levels. Also change tracing in hot-path from sprintf (costly)
to hex.
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r-- | drivers/s390/cio/cio.c | 44 | ||||
-rw-r--r-- | drivers/s390/cio/device.c | 4 |
2 files changed, 17 insertions, 31 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index 5ec7789bd9d8..390b4e96fd0d 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c | |||
@@ -139,12 +139,11 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */ | |||
139 | __u8 lpm, /* logical path mask */ | 139 | __u8 lpm, /* logical path mask */ |
140 | __u8 key) /* storage key */ | 140 | __u8 key) /* storage key */ |
141 | { | 141 | { |
142 | char dbf_txt[15]; | ||
143 | int ccode; | 142 | int ccode; |
144 | union orb *orb; | 143 | union orb *orb; |
145 | 144 | ||
146 | CIO_TRACE_EVENT(4, "stIO"); | 145 | CIO_TRACE_EVENT(5, "stIO"); |
147 | CIO_TRACE_EVENT(4, dev_name(&sch->dev)); | 146 | CIO_TRACE_EVENT(5, dev_name(&sch->dev)); |
148 | 147 | ||
149 | orb = &to_io_private(sch)->orb; | 148 | orb = &to_io_private(sch)->orb; |
150 | memset(orb, 0, sizeof(union orb)); | 149 | memset(orb, 0, sizeof(union orb)); |
@@ -169,8 +168,7 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */ | |||
169 | ccode = ssch(sch->schid, orb); | 168 | ccode = ssch(sch->schid, orb); |
170 | 169 | ||
171 | /* process condition code */ | 170 | /* process condition code */ |
172 | sprintf(dbf_txt, "ccode:%d", ccode); | 171 | CIO_HEX_EVENT(5, &ccode, sizeof(ccode)); |
173 | CIO_TRACE_EVENT(4, dbf_txt); | ||
174 | 172 | ||
175 | switch (ccode) { | 173 | switch (ccode) { |
176 | case 0: | 174 | case 0: |
@@ -201,16 +199,14 @@ cio_start (struct subchannel *sch, struct ccw1 *cpa, __u8 lpm) | |||
201 | int | 199 | int |
202 | cio_resume (struct subchannel *sch) | 200 | cio_resume (struct subchannel *sch) |
203 | { | 201 | { |
204 | char dbf_txt[15]; | ||
205 | int ccode; | 202 | int ccode; |
206 | 203 | ||
207 | CIO_TRACE_EVENT (4, "resIO"); | 204 | CIO_TRACE_EVENT(4, "resIO"); |
208 | CIO_TRACE_EVENT(4, dev_name(&sch->dev)); | 205 | CIO_TRACE_EVENT(4, dev_name(&sch->dev)); |
209 | 206 | ||
210 | ccode = rsch (sch->schid); | 207 | ccode = rsch (sch->schid); |
211 | 208 | ||
212 | sprintf (dbf_txt, "ccode:%d", ccode); | 209 | CIO_HEX_EVENT(4, &ccode, sizeof(ccode)); |
213 | CIO_TRACE_EVENT (4, dbf_txt); | ||
214 | 210 | ||
215 | switch (ccode) { | 211 | switch (ccode) { |
216 | case 0: | 212 | case 0: |
@@ -235,13 +231,12 @@ cio_resume (struct subchannel *sch) | |||
235 | int | 231 | int |
236 | cio_halt(struct subchannel *sch) | 232 | cio_halt(struct subchannel *sch) |
237 | { | 233 | { |
238 | char dbf_txt[15]; | ||
239 | int ccode; | 234 | int ccode; |
240 | 235 | ||
241 | if (!sch) | 236 | if (!sch) |
242 | return -ENODEV; | 237 | return -ENODEV; |
243 | 238 | ||
244 | CIO_TRACE_EVENT (2, "haltIO"); | 239 | CIO_TRACE_EVENT(2, "haltIO"); |
245 | CIO_TRACE_EVENT(2, dev_name(&sch->dev)); | 240 | CIO_TRACE_EVENT(2, dev_name(&sch->dev)); |
246 | 241 | ||
247 | /* | 242 | /* |
@@ -249,8 +244,7 @@ cio_halt(struct subchannel *sch) | |||
249 | */ | 244 | */ |
250 | ccode = hsch (sch->schid); | 245 | ccode = hsch (sch->schid); |
251 | 246 | ||
252 | sprintf (dbf_txt, "ccode:%d", ccode); | 247 | CIO_HEX_EVENT(2, &ccode, sizeof(ccode)); |
253 | CIO_TRACE_EVENT (2, dbf_txt); | ||
254 | 248 | ||
255 | switch (ccode) { | 249 | switch (ccode) { |
256 | case 0: | 250 | case 0: |
@@ -270,13 +264,12 @@ cio_halt(struct subchannel *sch) | |||
270 | int | 264 | int |
271 | cio_clear(struct subchannel *sch) | 265 | cio_clear(struct subchannel *sch) |
272 | { | 266 | { |
273 | char dbf_txt[15]; | ||
274 | int ccode; | 267 | int ccode; |
275 | 268 | ||
276 | if (!sch) | 269 | if (!sch) |
277 | return -ENODEV; | 270 | return -ENODEV; |
278 | 271 | ||
279 | CIO_TRACE_EVENT (2, "clearIO"); | 272 | CIO_TRACE_EVENT(2, "clearIO"); |
280 | CIO_TRACE_EVENT(2, dev_name(&sch->dev)); | 273 | CIO_TRACE_EVENT(2, dev_name(&sch->dev)); |
281 | 274 | ||
282 | /* | 275 | /* |
@@ -284,8 +277,7 @@ cio_clear(struct subchannel *sch) | |||
284 | */ | 277 | */ |
285 | ccode = csch (sch->schid); | 278 | ccode = csch (sch->schid); |
286 | 279 | ||
287 | sprintf (dbf_txt, "ccode:%d", ccode); | 280 | CIO_HEX_EVENT(2, &ccode, sizeof(ccode)); |
288 | CIO_TRACE_EVENT (2, dbf_txt); | ||
289 | 281 | ||
290 | switch (ccode) { | 282 | switch (ccode) { |
291 | case 0: | 283 | case 0: |
@@ -306,19 +298,17 @@ cio_clear(struct subchannel *sch) | |||
306 | int | 298 | int |
307 | cio_cancel (struct subchannel *sch) | 299 | cio_cancel (struct subchannel *sch) |
308 | { | 300 | { |
309 | char dbf_txt[15]; | ||
310 | int ccode; | 301 | int ccode; |
311 | 302 | ||
312 | if (!sch) | 303 | if (!sch) |
313 | return -ENODEV; | 304 | return -ENODEV; |
314 | 305 | ||
315 | CIO_TRACE_EVENT (2, "cancelIO"); | 306 | CIO_TRACE_EVENT(2, "cancelIO"); |
316 | CIO_TRACE_EVENT(2, dev_name(&sch->dev)); | 307 | CIO_TRACE_EVENT(2, dev_name(&sch->dev)); |
317 | 308 | ||
318 | ccode = xsch (sch->schid); | 309 | ccode = xsch (sch->schid); |
319 | 310 | ||
320 | sprintf (dbf_txt, "ccode:%d", ccode); | 311 | CIO_HEX_EVENT(2, &ccode, sizeof(ccode)); |
321 | CIO_TRACE_EVENT (2, dbf_txt); | ||
322 | 312 | ||
323 | switch (ccode) { | 313 | switch (ccode) { |
324 | case 0: /* success */ | 314 | case 0: /* success */ |
@@ -429,11 +419,10 @@ EXPORT_SYMBOL_GPL(cio_update_schib); | |||
429 | */ | 419 | */ |
430 | int cio_enable_subchannel(struct subchannel *sch, u32 intparm) | 420 | int cio_enable_subchannel(struct subchannel *sch, u32 intparm) |
431 | { | 421 | { |
432 | char dbf_txt[15]; | ||
433 | int retry; | 422 | int retry; |
434 | int ret; | 423 | int ret; |
435 | 424 | ||
436 | CIO_TRACE_EVENT (2, "ensch"); | 425 | CIO_TRACE_EVENT(2, "ensch"); |
437 | CIO_TRACE_EVENT(2, dev_name(&sch->dev)); | 426 | CIO_TRACE_EVENT(2, dev_name(&sch->dev)); |
438 | 427 | ||
439 | if (sch_is_pseudo_sch(sch)) | 428 | if (sch_is_pseudo_sch(sch)) |
@@ -460,8 +449,7 @@ int cio_enable_subchannel(struct subchannel *sch, u32 intparm) | |||
460 | } else | 449 | } else |
461 | break; | 450 | break; |
462 | } | 451 | } |
463 | sprintf (dbf_txt, "ret:%d", ret); | 452 | CIO_HEX_EVENT(2, &ret, sizeof(ret)); |
464 | CIO_TRACE_EVENT (2, dbf_txt); | ||
465 | return ret; | 453 | return ret; |
466 | } | 454 | } |
467 | EXPORT_SYMBOL_GPL(cio_enable_subchannel); | 455 | EXPORT_SYMBOL_GPL(cio_enable_subchannel); |
@@ -472,11 +460,10 @@ EXPORT_SYMBOL_GPL(cio_enable_subchannel); | |||
472 | */ | 460 | */ |
473 | int cio_disable_subchannel(struct subchannel *sch) | 461 | int cio_disable_subchannel(struct subchannel *sch) |
474 | { | 462 | { |
475 | char dbf_txt[15]; | ||
476 | int retry; | 463 | int retry; |
477 | int ret; | 464 | int ret; |
478 | 465 | ||
479 | CIO_TRACE_EVENT (2, "dissch"); | 466 | CIO_TRACE_EVENT(2, "dissch"); |
480 | CIO_TRACE_EVENT(2, dev_name(&sch->dev)); | 467 | CIO_TRACE_EVENT(2, dev_name(&sch->dev)); |
481 | 468 | ||
482 | if (sch_is_pseudo_sch(sch)) | 469 | if (sch_is_pseudo_sch(sch)) |
@@ -495,8 +482,7 @@ int cio_disable_subchannel(struct subchannel *sch) | |||
495 | } else | 482 | } else |
496 | break; | 483 | break; |
497 | } | 484 | } |
498 | sprintf (dbf_txt, "ret:%d", ret); | 485 | CIO_HEX_EVENT(2, &ret, sizeof(ret)); |
499 | CIO_TRACE_EVENT (2, dbf_txt); | ||
500 | return ret; | 486 | return ret; |
501 | } | 487 | } |
502 | EXPORT_SYMBOL_GPL(cio_disable_subchannel); | 488 | EXPORT_SYMBOL_GPL(cio_disable_subchannel); |
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index b6240227ecba..19b4469a3ca4 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c | |||
@@ -1168,8 +1168,8 @@ static void io_subchannel_irq(struct subchannel *sch) | |||
1168 | 1168 | ||
1169 | cdev = sch_get_cdev(sch); | 1169 | cdev = sch_get_cdev(sch); |
1170 | 1170 | ||
1171 | CIO_TRACE_EVENT(3, "IRQ"); | 1171 | CIO_TRACE_EVENT(6, "IRQ"); |
1172 | CIO_TRACE_EVENT(3, dev_name(&sch->dev)); | 1172 | CIO_TRACE_EVENT(6, dev_name(&sch->dev)); |
1173 | if (cdev) | 1173 | if (cdev) |
1174 | dev_fsm_event(cdev, DEV_EVENT_INTERRUPT); | 1174 | dev_fsm_event(cdev, DEV_EVENT_INTERRUPT); |
1175 | } | 1175 | } |