diff mbox

[infiniband-diags] libibnetdisc/ibnetdisc.c: improve log information to stdout

Message ID 20140102064415.GA4568@r-ufm96.mtr.labs.mlnx (mailing list archive)
State Accepted, archived
Delegated to: Ira Weiny
Headers show

Commit Message

Dan Ben Yosef Jan. 2, 2014, 6:44 a.m. UTC
Write to stdout the route-path when smp returns
with status error.

Signed-off-by: Dan Ben Yosef <danby@mellanox.com>
---
 libibnetdisc/src/internal.h  |   10 +++++++---
 libibnetdisc/src/query_smp.c |    6 ++++++
 2 files changed, 13 insertions(+), 3 deletions(-)

Comments

Ira Weiny Jan. 12, 2014, 3:37 p.m. UTC | #1
> -----Original Message-----
> From: Dan Ben Yosef [mailto:danby@mellanox.com]
> Sent: Wednesday, January 01, 2014 10:44 PM
> Subject: [PATCH infiniband-diags] libibnetdisc/ibnetdisc.c: improve log
> information to stdout
> 
> Write to stdout the route-path when smp returns with status error.

As part of a library this will affect many tools outputs and perhaps subsequently any scripts written against those tools.

Is this really a requirement or simply a "nice to have"?

Ira

> 
> Signed-off-by: Dan Ben Yosef <danby@mellanox.com>
> ---
>  libibnetdisc/src/internal.h  |   10 +++++++---
>  libibnetdisc/src/query_smp.c |    6 ++++++
>  2 files changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/libibnetdisc/src/internal.h b/libibnetdisc/src/internal.h index
> 1ccd29c..47b2a4c 100644
> --- a/libibnetdisc/src/internal.h
> +++ b/libibnetdisc/src/internal.h
> @@ -42,12 +42,16 @@
>  #include <complib/cl_qmap.h>
>  #include <glib.h>
> 
> +#define	IBND_ERROR(fmt, ...) \
> +		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ##
> __VA_ARGS__)
> +
> +#define	IBND_INFO(fmt, ...) \
> +		printf("%s:%u; " fmt, __FILE__, __LINE__, ##
> __VA_ARGS__);
> +
>  #define	IBND_DEBUG(fmt, ...) \
>  	if (ibdebug) { \
> -		printf("%s:%u; " fmt, __FILE__, __LINE__, ##
> __VA_ARGS__); \
> +		IBND_INFO(fmt,## __VA_ARGS__); \
>  	}
> -#define	IBND_ERROR(fmt, ...) \
> -		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ##
> __VA_ARGS__)
> 
>  /* HASH table defines */
>  #define HASHGUID(guid) ((uint32_t)(((uint32_t)(guid) * 101) ^
> ((uint32_t)((guid) >> 32) * 103))) diff --git a/libibnetdisc/src/query_smp.c
> b/libibnetdisc/src/query_smp.c index 28620b4..ac4984e 100644
> --- a/libibnetdisc/src/query_smp.c
> +++ b/libibnetdisc/src/query_smp.c
> @@ -192,6 +192,9 @@ static int process_one_recv(smp_engine_t * engine)
>  		goto error;
> 
>  	if ((status = umad_status(umad))) {
> +		IBND_INFO("umad (%s Attr 0x%x:%u) bad status %d; %s\n",
> +			   portid2str(&smp->path), smp->rpc.attr.id,
> +			   smp->rpc.attr.mod, status, strerror(status));
>  		IBND_ERROR("umad (%s Attr 0x%x:%u) bad status %d;
> %s\n",
>  			   portid2str(&smp->path), smp->rpc.attr.id,
>  			   smp->rpc.attr.mod, status, strerror(status)); @@ -
> 199,6 +202,9 @@ static int process_one_recv(smp_engine_t * engine)
>  			rc = mlnx_ext_port_info_err(engine, smp, mad,
>  						    smp->cb_data);
>  	} else if ((status = mad_get_field(mad, 0, IB_DRSMP_STATUS_F))) {
> +		IBND_INFO("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
> +			   portid2str(&smp->path), smp->rpc.attr.id,
> +			   smp->rpc.attr.mod, status);
>  		IBND_ERROR("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
>  			   portid2str(&smp->path), smp->rpc.attr.id,
>  			   smp->rpc.attr.mod, status);
> --
> 1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dan Ben Yosef Jan. 19, 2014, 8:19 a.m. UTC | #2
On 15:37 Sun 12 Jan     , Weiny, Ira wrote:
> > -----Original Message-----
> > From: Dan Ben Yosef [mailto:danby@mellanox.com]
> > Sent: Wednesday, January 01, 2014 10:44 PM
> > Subject: [PATCH infiniband-diags] libibnetdisc/ibnetdisc.c: improve log
> > information to stdout
> > 
> > Write to stdout the route-path when smp returns with status error.
> 
> As part of a library this will affect many tools outputs and perhaps subsequently any scripts written against those tools.
> 
> Is this really a requirement or simply a "nice to have"?
That was a customer request to get the query path to stdout when getting an error.

This way when getting smp error they could see DR path to the node in stdout.

-- Dan

> 
> Ira
> 
> > 
> > Signed-off-by: Dan Ben Yosef <danby@mellanox.com>
> > ---
> >  libibnetdisc/src/internal.h  |   10 +++++++---
> >  libibnetdisc/src/query_smp.c |    6 ++++++
> >  2 files changed, 13 insertions(+), 3 deletions(-)
> > 
> > diff --git a/libibnetdisc/src/internal.h b/libibnetdisc/src/internal.h index
> > 1ccd29c..47b2a4c 100644
> > --- a/libibnetdisc/src/internal.h
> > +++ b/libibnetdisc/src/internal.h
> > @@ -42,12 +42,16 @@
> >  #include <complib/cl_qmap.h>
> >  #include <glib.h>
> > 
> > +#define	IBND_ERROR(fmt, ...) \
> > +		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ##
> > __VA_ARGS__)
> > +
> > +#define	IBND_INFO(fmt, ...) \
> > +		printf("%s:%u; " fmt, __FILE__, __LINE__, ##
> > __VA_ARGS__);
> > +
> >  #define	IBND_DEBUG(fmt, ...) \
> >  	if (ibdebug) { \
> > -		printf("%s:%u; " fmt, __FILE__, __LINE__, ##
> > __VA_ARGS__); \
> > +		IBND_INFO(fmt,## __VA_ARGS__); \
> >  	}
> > -#define	IBND_ERROR(fmt, ...) \
> > -		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ##
> > __VA_ARGS__)
> > 
> >  /* HASH table defines */
> >  #define HASHGUID(guid) ((uint32_t)(((uint32_t)(guid) * 101) ^
> > ((uint32_t)((guid) >> 32) * 103))) diff --git a/libibnetdisc/src/query_smp.c
> > b/libibnetdisc/src/query_smp.c index 28620b4..ac4984e 100644
> > --- a/libibnetdisc/src/query_smp.c
> > +++ b/libibnetdisc/src/query_smp.c
> > @@ -192,6 +192,9 @@ static int process_one_recv(smp_engine_t * engine)
> >  		goto error;
> > 
> >  	if ((status = umad_status(umad))) {
> > +		IBND_INFO("umad (%s Attr 0x%x:%u) bad status %d; %s\n",
> > +			   portid2str(&smp->path), smp->rpc.attr.id,
> > +			   smp->rpc.attr.mod, status, strerror(status));
> >  		IBND_ERROR("umad (%s Attr 0x%x:%u) bad status %d;
> > %s\n",
> >  			   portid2str(&smp->path), smp->rpc.attr.id,
> >  			   smp->rpc.attr.mod, status, strerror(status)); @@ -
> > 199,6 +202,9 @@ static int process_one_recv(smp_engine_t * engine)
> >  			rc = mlnx_ext_port_info_err(engine, smp, mad,
> >  						    smp->cb_data);
> >  	} else if ((status = mad_get_field(mad, 0, IB_DRSMP_STATUS_F))) {
> > +		IBND_INFO("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
> > +			   portid2str(&smp->path), smp->rpc.attr.id,
> > +			   smp->rpc.attr.mod, status);
> >  		IBND_ERROR("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
> >  			   portid2str(&smp->path), smp->rpc.attr.id,
> >  			   smp->rpc.attr.mod, status);
> > --
> > 1.7.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ira Weiny Jan. 25, 2014, 1:20 a.m. UTC | #3
> -----Original Message-----
> From: Dan Ben Yosef [mailto:danby@mellanox.com]
> Sent: Sunday, January 19, 2014 12:20 AM
> To: Weiny, Ira
> Cc: linux-rdma@vger.kernel.org
> Subject: Re: [PATCH infiniband-diags] libibnetdisc/ibnetdisc.c: improve log
> information to stdout
> 
> On 15:37 Sun 12 Jan     , Weiny, Ira wrote:
> > > -----Original Message-----
> > > From: Dan Ben Yosef [mailto:danby@mellanox.com]
> > > Sent: Wednesday, January 01, 2014 10:44 PM
> > > Subject: [PATCH infiniband-diags] libibnetdisc/ibnetdisc.c: improve
> > > log information to stdout
> > >
> > > Write to stdout the route-path when smp returns with status error.
> >
> > As part of a library this will affect many tools outputs and perhaps
> subsequently any scripts written against those tools.
> >
> > Is this really a requirement or simply a "nice to have"?
> That was a customer request to get the query path to stdout when getting an
> error.
> 
> This way when getting smp error they could see DR path to the node in
> stdout.

I think this is ok, applied thanks,
Ira

> 
> -- Dan
> 
> >
> > Ira
> >
> > >
> > > Signed-off-by: Dan Ben Yosef <danby@mellanox.com>
> > > ---
> > >  libibnetdisc/src/internal.h  |   10 +++++++---
> > >  libibnetdisc/src/query_smp.c |    6 ++++++
> > >  2 files changed, 13 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/libibnetdisc/src/internal.h
> > > b/libibnetdisc/src/internal.h index 1ccd29c..47b2a4c 100644
> > > --- a/libibnetdisc/src/internal.h
> > > +++ b/libibnetdisc/src/internal.h
> > > @@ -42,12 +42,16 @@
> > >  #include <complib/cl_qmap.h>
> > >  #include <glib.h>
> > >
> > > +#define	IBND_ERROR(fmt, ...) \
> > > +		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ##
> > > __VA_ARGS__)
> > > +
> > > +#define	IBND_INFO(fmt, ...) \
> > > +		printf("%s:%u; " fmt, __FILE__, __LINE__, ##
> > > __VA_ARGS__);
> > > +
> > >  #define	IBND_DEBUG(fmt, ...) \
> > >  	if (ibdebug) { \
> > > -		printf("%s:%u; " fmt, __FILE__, __LINE__, ##
> > > __VA_ARGS__); \
> > > +		IBND_INFO(fmt,## __VA_ARGS__); \
> > >  	}
> > > -#define	IBND_ERROR(fmt, ...) \
> > > -		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ##
> > > __VA_ARGS__)
> > >
> > >  /* HASH table defines */
> > >  #define HASHGUID(guid) ((uint32_t)(((uint32_t)(guid) * 101) ^
> > > ((uint32_t)((guid) >> 32) * 103))) diff --git
> > > a/libibnetdisc/src/query_smp.c b/libibnetdisc/src/query_smp.c index
> > > 28620b4..ac4984e 100644
> > > --- a/libibnetdisc/src/query_smp.c
> > > +++ b/libibnetdisc/src/query_smp.c
> > > @@ -192,6 +192,9 @@ static int process_one_recv(smp_engine_t *
> engine)
> > >  		goto error;
> > >
> > >  	if ((status = umad_status(umad))) {
> > > +		IBND_INFO("umad (%s Attr 0x%x:%u) bad status %d; %s\n",
> > > +			   portid2str(&smp->path), smp->rpc.attr.id,
> > > +			   smp->rpc.attr.mod, status, strerror(status));
> > >  		IBND_ERROR("umad (%s Attr 0x%x:%u) bad status %d;
> %s\n",
> > >  			   portid2str(&smp->path), smp->rpc.attr.id,
> > >  			   smp->rpc.attr.mod, status, strerror(status)); @@ -
> > > 199,6 +202,9 @@ static int process_one_recv(smp_engine_t * engine)
> > >  			rc = mlnx_ext_port_info_err(engine, smp, mad,
> > >  						    smp->cb_data);
> > >  	} else if ((status = mad_get_field(mad, 0, IB_DRSMP_STATUS_F))) {
> > > +		IBND_INFO("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
> > > +			   portid2str(&smp->path), smp->rpc.attr.id,
> > > +			   smp->rpc.attr.mod, status);
> > >  		IBND_ERROR("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
> > >  			   portid2str(&smp->path), smp->rpc.attr.id,
> > >  			   smp->rpc.attr.mod, status);
> > > --
> > > 1.7.1
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-rdma"
> > in the body of a message to majordomo@vger.kernel.org More
> majordomo
> > info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hal Rosenstock Jan. 25, 2014, 3:28 p.m. UTC | #4
On 1/24/2014 8:20 PM, Weiny, Ira wrote:
>> -----Original Message-----
>> From: Dan Ben Yosef [mailto:danby@mellanox.com]
>> Sent: Sunday, January 19, 2014 12:20 AM
>> To: Weiny, Ira
>> Cc: linux-rdma@vger.kernel.org
>> Subject: Re: [PATCH infiniband-diags] libibnetdisc/ibnetdisc.c: improve log
>> information to stdout
>>
>> On 15:37 Sun 12 Jan     , Weiny, Ira wrote:
>>>> -----Original Message-----
>>>> From: Dan Ben Yosef [mailto:danby@mellanox.com]
>>>> Sent: Wednesday, January 01, 2014 10:44 PM
>>>> Subject: [PATCH infiniband-diags] libibnetdisc/ibnetdisc.c: improve
>>>> log information to stdout
>>>>
>>>> Write to stdout the route-path when smp returns with status error.
>>>
>>> As part of a library this will affect many tools outputs and perhaps
>> subsequently any scripts written against those tools.
>>>
>>> Is this really a requirement or simply a "nice to have"?
>> That was a customer request to get the query path to stdout when getting an
>> error.
>>
>> This way when getting smp error they could see DR path to the node in
>> stdout.
> 
> I think this is ok, 

Doesn't this change the ibnetdiscover output file format when such
errors are encountered ?

If so, what happens in terms of tools which parse this ?

Should IBND_INFO output be prepended with "# " as that would be safer in
terms of sticking within current output file definition and provides
such feature ?

-- Hal

> applied thanks,
> Ira
> 
>>
>> -- Dan
>>
>>>
>>> Ira
>>>
>>>>
>>>> Signed-off-by: Dan Ben Yosef <danby@mellanox.com>
>>>> ---
>>>>  libibnetdisc/src/internal.h  |   10 +++++++---
>>>>  libibnetdisc/src/query_smp.c |    6 ++++++
>>>>  2 files changed, 13 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/libibnetdisc/src/internal.h
>>>> b/libibnetdisc/src/internal.h index 1ccd29c..47b2a4c 100644
>>>> --- a/libibnetdisc/src/internal.h
>>>> +++ b/libibnetdisc/src/internal.h
>>>> @@ -42,12 +42,16 @@
>>>>  #include <complib/cl_qmap.h>
>>>>  #include <glib.h>
>>>>
>>>> +#define	IBND_ERROR(fmt, ...) \
>>>> +		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ##
>>>> __VA_ARGS__)
>>>> +
>>>> +#define	IBND_INFO(fmt, ...) \
>>>> +		printf("%s:%u; " fmt, __FILE__, __LINE__, ##
>>>> __VA_ARGS__);
>>>> +
>>>>  #define	IBND_DEBUG(fmt, ...) \
>>>>  	if (ibdebug) { \
>>>> -		printf("%s:%u; " fmt, __FILE__, __LINE__, ##
>>>> __VA_ARGS__); \
>>>> +		IBND_INFO(fmt,## __VA_ARGS__); \
>>>>  	}
>>>> -#define	IBND_ERROR(fmt, ...) \
>>>> -		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ##
>>>> __VA_ARGS__)
>>>>
>>>>  /* HASH table defines */
>>>>  #define HASHGUID(guid) ((uint32_t)(((uint32_t)(guid) * 101) ^
>>>> ((uint32_t)((guid) >> 32) * 103))) diff --git
>>>> a/libibnetdisc/src/query_smp.c b/libibnetdisc/src/query_smp.c index
>>>> 28620b4..ac4984e 100644
>>>> --- a/libibnetdisc/src/query_smp.c
>>>> +++ b/libibnetdisc/src/query_smp.c
>>>> @@ -192,6 +192,9 @@ static int process_one_recv(smp_engine_t *
>> engine)
>>>>  		goto error;
>>>>
>>>>  	if ((status = umad_status(umad))) {
>>>> +		IBND_INFO("umad (%s Attr 0x%x:%u) bad status %d; %s\n",
>>>> +			   portid2str(&smp->path), smp->rpc.attr.id,
>>>> +			   smp->rpc.attr.mod, status, strerror(status));
>>>>  		IBND_ERROR("umad (%s Attr 0x%x:%u) bad status %d;
>> %s\n",
>>>>  			   portid2str(&smp->path), smp->rpc.attr.id,
>>>>  			   smp->rpc.attr.mod, status, strerror(status)); @@ -
>>>> 199,6 +202,9 @@ static int process_one_recv(smp_engine_t * engine)
>>>>  			rc = mlnx_ext_port_info_err(engine, smp, mad,
>>>>  						    smp->cb_data);
>>>>  	} else if ((status = mad_get_field(mad, 0, IB_DRSMP_STATUS_F))) {
>>>> +		IBND_INFO("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
>>>> +			   portid2str(&smp->path), smp->rpc.attr.id,
>>>> +			   smp->rpc.attr.mod, status);
>>>>  		IBND_ERROR("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
>>>>  			   portid2str(&smp->path), smp->rpc.attr.id,
>>>>  			   smp->rpc.attr.mod, status);
>>>> --
>>>> 1.7.1
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-rdma"
>>> in the body of a message to majordomo@vger.kernel.org More
>> majordomo
>>> info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ira Weiny Jan. 26, 2014, 6:04 a.m. UTC | #5
> >>>
> >>> As part of a library this will affect many tools outputs and perhaps
> >> subsequently any scripts written against those tools.
> >>>
> >>> Is this really a requirement or simply a "nice to have"?
> >> That was a customer request to get the query path to stdout when
> >> getting an error.
> >>
> >> This way when getting smp error they could see DR path to the node in
> >> stdout.
> >
> > I think this is ok,
> 
> Doesn't this change the ibnetdiscover output file format when such errors
> are encountered ?

yes

> 
> If so, what happens in terms of tools which parse this ?

They may break.

> 
> Should IBND_INFO output be prepended with "# " as that would be safer in
> terms of sticking within current output file definition and provides such
> feature ?

At first, I thought this would be a good compromise but I looked back before libibnetdisc was created and I see no indication that "# " prefixed errors in ibnetdiscover back then.  It appears that all errors have always gone to stderr AFAICS.

I understand the issues with users not seeing any indication of error in their output.  But this really is a mistake and I should not have accepted this patch as submitted.

I'm sorry Dan, I'm reverting the patch and re-releasing for the upcoming OFED.

I think there are 2 solutions for this.

1) users can direct stderr to stdout to capture all the output
2) I'd be open to a patch which adds an option to the library to allow the user to add error output to stdout.

Sorry for the confusion,
Ira

> 
> -- Hal
> 
> > applied thanks,
> > Ira
> >
> >>
> >> -- Dan
> >>
> >>>
> >>> Ira
> >>>
> >>>>
> >>>> Signed-off-by: Dan Ben Yosef <danby@mellanox.com>
> >>>> ---
> >>>>  libibnetdisc/src/internal.h  |   10 +++++++---
> >>>>  libibnetdisc/src/query_smp.c |    6 ++++++
> >>>>  2 files changed, 13 insertions(+), 3 deletions(-)
> >>>>
> >>>> diff --git a/libibnetdisc/src/internal.h
> >>>> b/libibnetdisc/src/internal.h index 1ccd29c..47b2a4c 100644
> >>>> --- a/libibnetdisc/src/internal.h
> >>>> +++ b/libibnetdisc/src/internal.h
> >>>> @@ -42,12 +42,16 @@
> >>>>  #include <complib/cl_qmap.h>
> >>>>  #include <glib.h>
> >>>>
> >>>> +#define	IBND_ERROR(fmt, ...) \
> >>>> +		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ##
> >>>> __VA_ARGS__)
> >>>> +
> >>>> +#define	IBND_INFO(fmt, ...) \
> >>>> +		printf("%s:%u; " fmt, __FILE__, __LINE__, ##
> >>>> __VA_ARGS__);
> >>>> +
> >>>>  #define	IBND_DEBUG(fmt, ...) \
> >>>>  	if (ibdebug) { \
> >>>> -		printf("%s:%u; " fmt, __FILE__, __LINE__, ##
> >>>> __VA_ARGS__); \
> >>>> +		IBND_INFO(fmt,## __VA_ARGS__); \
> >>>>  	}
> >>>> -#define	IBND_ERROR(fmt, ...) \
> >>>> -		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ##
> >>>> __VA_ARGS__)
> >>>>
> >>>>  /* HASH table defines */
> >>>>  #define HASHGUID(guid) ((uint32_t)(((uint32_t)(guid) * 101) ^
> >>>> ((uint32_t)((guid) >> 32) * 103))) diff --git
> >>>> a/libibnetdisc/src/query_smp.c b/libibnetdisc/src/query_smp.c index
> >>>> 28620b4..ac4984e 100644
> >>>> --- a/libibnetdisc/src/query_smp.c
> >>>> +++ b/libibnetdisc/src/query_smp.c
> >>>> @@ -192,6 +192,9 @@ static int process_one_recv(smp_engine_t *
> >> engine)
> >>>>  		goto error;
> >>>>
> >>>>  	if ((status = umad_status(umad))) {
> >>>> +		IBND_INFO("umad (%s Attr 0x%x:%u) bad status %d; %s\n",
> >>>> +			   portid2str(&smp->path), smp->rpc.attr.id,
> >>>> +			   smp->rpc.attr.mod, status, strerror(status));
> >>>>  		IBND_ERROR("umad (%s Attr 0x%x:%u) bad status %d;
> >> %s\n",
> >>>>  			   portid2str(&smp->path), smp->rpc.attr.id,
> >>>>  			   smp->rpc.attr.mod, status, strerror(status)); @@ -
> >>>> 199,6 +202,9 @@ static int process_one_recv(smp_engine_t * engine)
> >>>>  			rc = mlnx_ext_port_info_err(engine, smp, mad,
> >>>>  						    smp->cb_data);
> >>>>  	} else if ((status = mad_get_field(mad, 0, IB_DRSMP_STATUS_F))) {
> >>>> +		IBND_INFO("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
> >>>> +			   portid2str(&smp->path), smp->rpc.attr.id,
> >>>> +			   smp->rpc.attr.mod, status);
> >>>>  		IBND_ERROR("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
> >>>>  			   portid2str(&smp->path), smp->rpc.attr.id,
> >>>>  			   smp->rpc.attr.mod, status);
> >>>> --
> >>>> 1.7.1
> >>>
> >>> --
> >>> To unsubscribe from this list: send the line "unsubscribe linux-rdma"
> >>> in the body of a message to majordomo@vger.kernel.org More
> >> majordomo
> >>> info at  http://vger.kernel.org/majordomo-info.html
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-rdma"
> > in the body of a message to majordomo@vger.kernel.org More
> majordomo
> > info at  http://vger.kernel.org/majordomo-info.html
> >

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/libibnetdisc/src/internal.h b/libibnetdisc/src/internal.h
index 1ccd29c..47b2a4c 100644
--- a/libibnetdisc/src/internal.h
+++ b/libibnetdisc/src/internal.h
@@ -42,12 +42,16 @@ 
 #include <complib/cl_qmap.h>
 #include <glib.h>
 
+#define	IBND_ERROR(fmt, ...) \
+		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ## __VA_ARGS__)
+
+#define	IBND_INFO(fmt, ...) \
+		printf("%s:%u; " fmt, __FILE__, __LINE__, ## __VA_ARGS__);
+
 #define	IBND_DEBUG(fmt, ...) \
 	if (ibdebug) { \
-		printf("%s:%u; " fmt, __FILE__, __LINE__, ## __VA_ARGS__); \
+		IBND_INFO(fmt,## __VA_ARGS__); \
 	}
-#define	IBND_ERROR(fmt, ...) \
-		fprintf(stderr, "%s:%u; " fmt, __FILE__, __LINE__, ## __VA_ARGS__)
 
 /* HASH table defines */
 #define HASHGUID(guid) ((uint32_t)(((uint32_t)(guid) * 101) ^ ((uint32_t)((guid) >> 32) * 103)))
diff --git a/libibnetdisc/src/query_smp.c b/libibnetdisc/src/query_smp.c
index 28620b4..ac4984e 100644
--- a/libibnetdisc/src/query_smp.c
+++ b/libibnetdisc/src/query_smp.c
@@ -192,6 +192,9 @@  static int process_one_recv(smp_engine_t * engine)
 		goto error;
 
 	if ((status = umad_status(umad))) {
+		IBND_INFO("umad (%s Attr 0x%x:%u) bad status %d; %s\n",
+			   portid2str(&smp->path), smp->rpc.attr.id,
+			   smp->rpc.attr.mod, status, strerror(status));
 		IBND_ERROR("umad (%s Attr 0x%x:%u) bad status %d; %s\n",
 			   portid2str(&smp->path), smp->rpc.attr.id,
 			   smp->rpc.attr.mod, status, strerror(status));
@@ -199,6 +202,9 @@  static int process_one_recv(smp_engine_t * engine)
 			rc = mlnx_ext_port_info_err(engine, smp, mad,
 						    smp->cb_data);
 	} else if ((status = mad_get_field(mad, 0, IB_DRSMP_STATUS_F))) {
+		IBND_INFO("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
+			   portid2str(&smp->path), smp->rpc.attr.id,
+			   smp->rpc.attr.mod, status);
 		IBND_ERROR("mad (%s Attr 0x%x:%u) bad status 0x%x\n",
 			   portid2str(&smp->path), smp->rpc.attr.id,
 			   smp->rpc.attr.mod, status);