Commit efd986db authored by Sebastian Ott's avatar Sebastian Ott Committed by Martin Schwidefsky

[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: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 626e476a
...@@ -139,12 +139,11 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */ ...@@ -139,12 +139,11 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */
__u8 lpm, /* logical path mask */ __u8 lpm, /* logical path mask */
__u8 key) /* storage key */ __u8 key) /* storage key */
{ {
char dbf_txt[15];
int ccode; int ccode;
union orb *orb; union orb *orb;
CIO_TRACE_EVENT(4, "stIO"); CIO_TRACE_EVENT(5, "stIO");
CIO_TRACE_EVENT(4, dev_name(&sch->dev)); CIO_TRACE_EVENT(5, dev_name(&sch->dev));
orb = &to_io_private(sch)->orb; orb = &to_io_private(sch)->orb;
memset(orb, 0, sizeof(union orb)); memset(orb, 0, sizeof(union orb));
...@@ -169,8 +168,7 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */ ...@@ -169,8 +168,7 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */
ccode = ssch(sch->schid, orb); ccode = ssch(sch->schid, orb);
/* process condition code */ /* process condition code */
sprintf(dbf_txt, "ccode:%d", ccode); CIO_HEX_EVENT(5, &ccode, sizeof(ccode));
CIO_TRACE_EVENT(4, dbf_txt);
switch (ccode) { switch (ccode) {
case 0: case 0:
...@@ -201,16 +199,14 @@ cio_start (struct subchannel *sch, struct ccw1 *cpa, __u8 lpm) ...@@ -201,16 +199,14 @@ cio_start (struct subchannel *sch, struct ccw1 *cpa, __u8 lpm)
int int
cio_resume (struct subchannel *sch) cio_resume (struct subchannel *sch)
{ {
char dbf_txt[15];
int ccode; int ccode;
CIO_TRACE_EVENT (4, "resIO"); CIO_TRACE_EVENT(4, "resIO");
CIO_TRACE_EVENT(4, dev_name(&sch->dev)); CIO_TRACE_EVENT(4, dev_name(&sch->dev));
ccode = rsch (sch->schid); ccode = rsch (sch->schid);
sprintf (dbf_txt, "ccode:%d", ccode); CIO_HEX_EVENT(4, &ccode, sizeof(ccode));
CIO_TRACE_EVENT (4, dbf_txt);
switch (ccode) { switch (ccode) {
case 0: case 0:
...@@ -235,13 +231,12 @@ cio_resume (struct subchannel *sch) ...@@ -235,13 +231,12 @@ cio_resume (struct subchannel *sch)
int int
cio_halt(struct subchannel *sch) cio_halt(struct subchannel *sch)
{ {
char dbf_txt[15];
int ccode; int ccode;
if (!sch) if (!sch)
return -ENODEV; return -ENODEV;
CIO_TRACE_EVENT (2, "haltIO"); CIO_TRACE_EVENT(2, "haltIO");
CIO_TRACE_EVENT(2, dev_name(&sch->dev)); CIO_TRACE_EVENT(2, dev_name(&sch->dev));
/* /*
...@@ -249,8 +244,7 @@ cio_halt(struct subchannel *sch) ...@@ -249,8 +244,7 @@ cio_halt(struct subchannel *sch)
*/ */
ccode = hsch (sch->schid); ccode = hsch (sch->schid);
sprintf (dbf_txt, "ccode:%d", ccode); CIO_HEX_EVENT(2, &ccode, sizeof(ccode));
CIO_TRACE_EVENT (2, dbf_txt);
switch (ccode) { switch (ccode) {
case 0: case 0:
...@@ -270,13 +264,12 @@ cio_halt(struct subchannel *sch) ...@@ -270,13 +264,12 @@ cio_halt(struct subchannel *sch)
int int
cio_clear(struct subchannel *sch) cio_clear(struct subchannel *sch)
{ {
char dbf_txt[15];
int ccode; int ccode;
if (!sch) if (!sch)
return -ENODEV; return -ENODEV;
CIO_TRACE_EVENT (2, "clearIO"); CIO_TRACE_EVENT(2, "clearIO");
CIO_TRACE_EVENT(2, dev_name(&sch->dev)); CIO_TRACE_EVENT(2, dev_name(&sch->dev));
/* /*
...@@ -284,8 +277,7 @@ cio_clear(struct subchannel *sch) ...@@ -284,8 +277,7 @@ cio_clear(struct subchannel *sch)
*/ */
ccode = csch (sch->schid); ccode = csch (sch->schid);
sprintf (dbf_txt, "ccode:%d", ccode); CIO_HEX_EVENT(2, &ccode, sizeof(ccode));
CIO_TRACE_EVENT (2, dbf_txt);
switch (ccode) { switch (ccode) {
case 0: case 0:
...@@ -306,19 +298,17 @@ cio_clear(struct subchannel *sch) ...@@ -306,19 +298,17 @@ cio_clear(struct subchannel *sch)
int int
cio_cancel (struct subchannel *sch) cio_cancel (struct subchannel *sch)
{ {
char dbf_txt[15];
int ccode; int ccode;
if (!sch) if (!sch)
return -ENODEV; return -ENODEV;
CIO_TRACE_EVENT (2, "cancelIO"); CIO_TRACE_EVENT(2, "cancelIO");
CIO_TRACE_EVENT(2, dev_name(&sch->dev)); CIO_TRACE_EVENT(2, dev_name(&sch->dev));
ccode = xsch (sch->schid); ccode = xsch (sch->schid);
sprintf (dbf_txt, "ccode:%d", ccode); CIO_HEX_EVENT(2, &ccode, sizeof(ccode));
CIO_TRACE_EVENT (2, dbf_txt);
switch (ccode) { switch (ccode) {
case 0: /* success */ case 0: /* success */
...@@ -429,11 +419,10 @@ EXPORT_SYMBOL_GPL(cio_update_schib); ...@@ -429,11 +419,10 @@ EXPORT_SYMBOL_GPL(cio_update_schib);
*/ */
int cio_enable_subchannel(struct subchannel *sch, u32 intparm) int cio_enable_subchannel(struct subchannel *sch, u32 intparm)
{ {
char dbf_txt[15];
int retry; int retry;
int ret; int ret;
CIO_TRACE_EVENT (2, "ensch"); CIO_TRACE_EVENT(2, "ensch");
CIO_TRACE_EVENT(2, dev_name(&sch->dev)); CIO_TRACE_EVENT(2, dev_name(&sch->dev));
if (sch_is_pseudo_sch(sch)) if (sch_is_pseudo_sch(sch))
...@@ -460,8 +449,7 @@ int cio_enable_subchannel(struct subchannel *sch, u32 intparm) ...@@ -460,8 +449,7 @@ int cio_enable_subchannel(struct subchannel *sch, u32 intparm)
} else } else
break; break;
} }
sprintf (dbf_txt, "ret:%d", ret); CIO_HEX_EVENT(2, &ret, sizeof(ret));
CIO_TRACE_EVENT (2, dbf_txt);
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(cio_enable_subchannel); EXPORT_SYMBOL_GPL(cio_enable_subchannel);
...@@ -472,11 +460,10 @@ EXPORT_SYMBOL_GPL(cio_enable_subchannel); ...@@ -472,11 +460,10 @@ EXPORT_SYMBOL_GPL(cio_enable_subchannel);
*/ */
int cio_disable_subchannel(struct subchannel *sch) int cio_disable_subchannel(struct subchannel *sch)
{ {
char dbf_txt[15];
int retry; int retry;
int ret; int ret;
CIO_TRACE_EVENT (2, "dissch"); CIO_TRACE_EVENT(2, "dissch");
CIO_TRACE_EVENT(2, dev_name(&sch->dev)); CIO_TRACE_EVENT(2, dev_name(&sch->dev));
if (sch_is_pseudo_sch(sch)) if (sch_is_pseudo_sch(sch))
...@@ -495,8 +482,7 @@ int cio_disable_subchannel(struct subchannel *sch) ...@@ -495,8 +482,7 @@ int cio_disable_subchannel(struct subchannel *sch)
} else } else
break; break;
} }
sprintf (dbf_txt, "ret:%d", ret); CIO_HEX_EVENT(2, &ret, sizeof(ret));
CIO_TRACE_EVENT (2, dbf_txt);
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(cio_disable_subchannel); EXPORT_SYMBOL_GPL(cio_disable_subchannel);
......
...@@ -1168,8 +1168,8 @@ static void io_subchannel_irq(struct subchannel *sch) ...@@ -1168,8 +1168,8 @@ static void io_subchannel_irq(struct subchannel *sch)
cdev = sch_get_cdev(sch); cdev = sch_get_cdev(sch);
CIO_TRACE_EVENT(3, "IRQ"); CIO_TRACE_EVENT(6, "IRQ");
CIO_TRACE_EVENT(3, dev_name(&sch->dev)); CIO_TRACE_EVENT(6, dev_name(&sch->dev));
if (cdev) if (cdev)
dev_fsm_event(cdev, DEV_EVENT_INTERRUPT); dev_fsm_event(cdev, DEV_EVENT_INTERRUPT);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment