[rdma-core] srp_daemon: print maximum initiator to target IU size
diff mbox series

Message ID 20190916013607.9474-1-honli@redhat.com
State Superseded
Delegated to: Leon Romanovsky
Headers show
Series
  • [rdma-core] srp_daemon: print maximum initiator to target IU size
Related show

Commit Message

Honggang LI Sept. 16, 2019, 1:36 a.m. UTC
From: Honggang Li <honli@redhat.com>

The 'Send Message Size' field of IOControllerProfile attributes
contains the maximum initiator to target IU size.

When there is something wrong with SRP login to a third party
SRP target, whose ib_srpt parameters can't be collected with
ordinary method, dump the 'Send Message Size' may help us to
diagnose the problem.

Signed-off-by: Honggang Li <honli@redhat.com>
---
 srp_daemon/srp_daemon.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Bart Van Assche Sept. 17, 2019, 5:19 p.m. UTC | #1
On 9/15/19 6:36 PM, Honggang LI wrote:
> From: Honggang Li <honli@redhat.com>
> 
> The 'Send Message Size' field of IOControllerProfile attributes
> contains the maximum initiator to target IU size.
> 
> When there is something wrong with SRP login to a third party
> SRP target, whose ib_srpt parameters can't be collected with
> ordinary method, dump the 'Send Message Size' may help us to
> diagnose the problem.
> 
> Signed-off-by: Honggang Li <honli@redhat.com>
> ---
>   srp_daemon/srp_daemon.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/srp_daemon/srp_daemon.c b/srp_daemon/srp_daemon.c
> index 337b21c7..90533c77 100644
> --- a/srp_daemon/srp_daemon.c
> +++ b/srp_daemon/srp_daemon.c
> @@ -1022,6 +1022,8 @@ static int do_port(struct resources *res, uint16_t pkey, uint16_t dlid,
>   			pr_human("        vendor ID: %06x\n", be32toh(target->ioc_prof.vendor_id) >> 8);
>   			pr_human("        device ID: %06x\n", be32toh(target->ioc_prof.device_id));
>   			pr_human("        IO class : %04hx\n", be16toh(target->ioc_prof.io_class));
> +			pr_human("        Maximum initiator to target IU size: %d\n",
> +				 be32toh(target->ioc_prof.send_size));
>   			pr_human("        ID:        %s\n", target->ioc_prof.id);
>   			pr_human("        service entries: %d\n", target->ioc_prof.service_entries);

How about using the terminology from the InfiniBand Architecture 
Specification? This is what I found in release 1.3, table 306:

"Maximum size of Send Messages in bytes"

Thanks,

Bart.
Honggang LI Sept. 18, 2019, 12:55 a.m. UTC | #2
On Tue, Sep 17, 2019 at 10:19:37AM -0700, Bart Van Assche wrote:
> On 9/15/19 6:36 PM, Honggang LI wrote:
> > From: Honggang Li <honli@redhat.com>
> > 
> > The 'Send Message Size' field of IOControllerProfile attributes
> > contains the maximum initiator to target IU size.
> > 
> > When there is something wrong with SRP login to a third party
> > SRP target, whose ib_srpt parameters can't be collected with
> > ordinary method, dump the 'Send Message Size' may help us to
> > diagnose the problem.
> > 
> > Signed-off-by: Honggang Li <honli@redhat.com>
> > ---
> >   srp_daemon/srp_daemon.c | 2 ++
> >   1 file changed, 2 insertions(+)
> > 
> > diff --git a/srp_daemon/srp_daemon.c b/srp_daemon/srp_daemon.c
> > index 337b21c7..90533c77 100644
> > --- a/srp_daemon/srp_daemon.c
> > +++ b/srp_daemon/srp_daemon.c
> > @@ -1022,6 +1022,8 @@ static int do_port(struct resources *res, uint16_t pkey, uint16_t dlid,
> >   			pr_human("        vendor ID: %06x\n", be32toh(target->ioc_prof.vendor_id) >> 8);
> >   			pr_human("        device ID: %06x\n", be32toh(target->ioc_prof.device_id));
> >   			pr_human("        IO class : %04hx\n", be16toh(target->ioc_prof.io_class));
> > +			pr_human("        Maximum initiator to target IU size: %d\n",
> > +				 be32toh(target->ioc_prof.send_size));
> >   			pr_human("        ID:        %s\n", target->ioc_prof.id);
> >   			pr_human("        service entries: %d\n", target->ioc_prof.service_entries);
> 
> How about using the terminology from the InfiniBand Architecture

As this is srp specific, so I suggest to use the terminology from
srp specification 'srp2r06'.

Table B.7 — IOControllerProfile attributes for SRP target ports
----------------------------------------------------------------
| Field            | SRP requirement                           |
----------------------------------------------------------------
|(skip many lines).....                                        |
----------------------------------------------------------------
|Send Message Size |MAXIMUM INITIATOR TO TARGET IU LENGTH      |
----------------------------------------------------------------

> Specification? This is what I found in release 1.3, table 306:
> 
> "Maximum size of Send Messages in bytes"
> 
> Thanks,
> 
> Bart.
Bart Van Assche Sept. 23, 2019, 4:59 p.m. UTC | #3
On 9/17/19 5:55 PM, Honggang LI wrote:
> On Tue, Sep 17, 2019 at 10:19:37AM -0700, Bart Van Assche wrote:
>> On 9/15/19 6:36 PM, Honggang LI wrote:
>>> From: Honggang Li <honli@redhat.com>
>>>
>>> The 'Send Message Size' field of IOControllerProfile attributes
>>> contains the maximum initiator to target IU size.
>>>
>>> When there is something wrong with SRP login to a third party
>>> SRP target, whose ib_srpt parameters can't be collected with
>>> ordinary method, dump the 'Send Message Size' may help us to
>>> diagnose the problem.
>>>
>>> Signed-off-by: Honggang Li <honli@redhat.com>
>>> ---
>>>    srp_daemon/srp_daemon.c | 2 ++
>>>    1 file changed, 2 insertions(+)
>>>
>>> diff --git a/srp_daemon/srp_daemon.c b/srp_daemon/srp_daemon.c
>>> index 337b21c7..90533c77 100644
>>> --- a/srp_daemon/srp_daemon.c
>>> +++ b/srp_daemon/srp_daemon.c
>>> @@ -1022,6 +1022,8 @@ static int do_port(struct resources *res, uint16_t pkey, uint16_t dlid,
>>>    			pr_human("        vendor ID: %06x\n", be32toh(target->ioc_prof.vendor_id) >> 8);
>>>    			pr_human("        device ID: %06x\n", be32toh(target->ioc_prof.device_id));
>>>    			pr_human("        IO class : %04hx\n", be16toh(target->ioc_prof.io_class));
>>> +			pr_human("        Maximum initiator to target IU size: %d\n",
>>> +				 be32toh(target->ioc_prof.send_size));
>>>    			pr_human("        ID:        %s\n", target->ioc_prof.id);
>>>    			pr_human("        service entries: %d\n", target->ioc_prof.service_entries);
>>
>> How about using the terminology from the InfiniBand Architecture
> 
> As this is srp specific, so I suggest to use the terminology from
> srp specification 'srp2r06'.
> 
> Table B.7 — IOControllerProfile attributes for SRP target ports
> ----------------------------------------------------------------
> | Field            | SRP requirement                           |
> ----------------------------------------------------------------
> |(skip many lines).....                                        |
> ----------------------------------------------------------------
> |Send Message Size |MAXIMUM INITIATOR TO TARGET IU LENGTH      |
> ----------------------------------------------------------------
> 
>> Specification? This is what I found in release 1.3, table 306:
>>
>> "Maximum size of Send Messages in bytes"

I don't have a strong opinion about which description to use. The latter 
may be easier to comprehend though. I'm not sure whether every SRP user 
knows what an SRP "IU" is ...

Bart.
Honggang LI Sept. 24, 2019, 1:59 a.m. UTC | #4
On Mon, Sep 23, 2019 at 09:59:10AM -0700, Bart Van Assche wrote:
> On 9/17/19 5:55 PM, Honggang LI wrote:
> > On Tue, Sep 17, 2019 at 10:19:37AM -0700, Bart Van Assche wrote:
> > > On 9/15/19 6:36 PM, Honggang LI wrote:
> > > > From: Honggang Li <honli@redhat.com>
> > > > 
> > > > The 'Send Message Size' field of IOControllerProfile attributes
> > > > contains the maximum initiator to target IU size.
> > > > 
> > > > When there is something wrong with SRP login to a third party
> > > > SRP target, whose ib_srpt parameters can't be collected with
> > > > ordinary method, dump the 'Send Message Size' may help us to
> > > > diagnose the problem.
> > > > 
> > > > Signed-off-by: Honggang Li <honli@redhat.com>
> > > > ---
> > > >    srp_daemon/srp_daemon.c | 2 ++
> > > >    1 file changed, 2 insertions(+)
> > > > 
> > > > diff --git a/srp_daemon/srp_daemon.c b/srp_daemon/srp_daemon.c
> > > > index 337b21c7..90533c77 100644
> > > > --- a/srp_daemon/srp_daemon.c
> > > > +++ b/srp_daemon/srp_daemon.c
> > > > @@ -1022,6 +1022,8 @@ static int do_port(struct resources *res, uint16_t pkey, uint16_t dlid,
> > > >    			pr_human("        vendor ID: %06x\n", be32toh(target->ioc_prof.vendor_id) >> 8);
> > > >    			pr_human("        device ID: %06x\n", be32toh(target->ioc_prof.device_id));
> > > >    			pr_human("        IO class : %04hx\n", be16toh(target->ioc_prof.io_class));
> > > > +			pr_human("        Maximum initiator to target IU size: %d\n",
> > > > +				 be32toh(target->ioc_prof.send_size));
> > > >    			pr_human("        ID:        %s\n", target->ioc_prof.id);
> > > >    			pr_human("        service entries: %d\n", target->ioc_prof.service_entries);
> > > 
> > > How about using the terminology from the InfiniBand Architecture
> > 
> > As this is srp specific, so I suggest to use the terminology from
> > srp specification 'srp2r06'.
> > 
> > Table B.7 — IOControllerProfile attributes for SRP target ports
> > ----------------------------------------------------------------
> > | Field            | SRP requirement                           |
> > ----------------------------------------------------------------
> > |(skip many lines).....                                        |
> > ----------------------------------------------------------------
> > |Send Message Size |MAXIMUM INITIATOR TO TARGET IU LENGTH      |
> > ----------------------------------------------------------------
> > 
> > > Specification? This is what I found in release 1.3, table 306:
> > > 
> > > "Maximum size of Send Messages in bytes"
> 
> I don't have a strong opinion about which description to use. The latter may
> be easier to comprehend though. I'm not sure whether every SRP user knows
> what an SRP "IU" is ...

How about replacing "IU" with "information unit"?


+			pr_human("        Maximum initiator to target information unit size: %d\n",
+				 be32toh(target->ioc_prof.send_size));

If you want to use "Maximum size of Send Messages in bytes",
just let me know, I will send a new patch to use that.

thanks
Leon Romanovsky Sept. 24, 2019, 8:03 a.m. UTC | #5
On Tue, Sep 24, 2019 at 09:59:36AM +0800, Honggang LI wrote:
> On Mon, Sep 23, 2019 at 09:59:10AM -0700, Bart Van Assche wrote:
> > On 9/17/19 5:55 PM, Honggang LI wrote:
> > > On Tue, Sep 17, 2019 at 10:19:37AM -0700, Bart Van Assche wrote:
> > > > On 9/15/19 6:36 PM, Honggang LI wrote:
> > > > > From: Honggang Li <honli@redhat.com>
> > > > >
> > > > > The 'Send Message Size' field of IOControllerProfile attributes
> > > > > contains the maximum initiator to target IU size.
> > > > >
> > > > > When there is something wrong with SRP login to a third party
> > > > > SRP target, whose ib_srpt parameters can't be collected with
> > > > > ordinary method, dump the 'Send Message Size' may help us to
> > > > > diagnose the problem.
> > > > >
> > > > > Signed-off-by: Honggang Li <honli@redhat.com>
> > > > > ---
> > > > >    srp_daemon/srp_daemon.c | 2 ++
> > > > >    1 file changed, 2 insertions(+)
> > > > >
> > > > > diff --git a/srp_daemon/srp_daemon.c b/srp_daemon/srp_daemon.c
> > > > > index 337b21c7..90533c77 100644
> > > > > --- a/srp_daemon/srp_daemon.c
> > > > > +++ b/srp_daemon/srp_daemon.c
> > > > > @@ -1022,6 +1022,8 @@ static int do_port(struct resources *res, uint16_t pkey, uint16_t dlid,
> > > > >    			pr_human("        vendor ID: %06x\n", be32toh(target->ioc_prof.vendor_id) >> 8);
> > > > >    			pr_human("        device ID: %06x\n", be32toh(target->ioc_prof.device_id));
> > > > >    			pr_human("        IO class : %04hx\n", be16toh(target->ioc_prof.io_class));
> > > > > +			pr_human("        Maximum initiator to target IU size: %d\n",
> > > > > +				 be32toh(target->ioc_prof.send_size));
> > > > >    			pr_human("        ID:        %s\n", target->ioc_prof.id);
> > > > >    			pr_human("        service entries: %d\n", target->ioc_prof.service_entries);
> > > >
> > > > How about using the terminology from the InfiniBand Architecture
> > >
> > > As this is srp specific, so I suggest to use the terminology from
> > > srp specification 'srp2r06'.
> > >
> > > Table B.7 — IOControllerProfile attributes for SRP target ports
> > > ----------------------------------------------------------------
> > > | Field            | SRP requirement                           |
> > > ----------------------------------------------------------------
> > > |(skip many lines).....                                        |
> > > ----------------------------------------------------------------
> > > |Send Message Size |MAXIMUM INITIATOR TO TARGET IU LENGTH      |
> > > ----------------------------------------------------------------
> > >
> > > > Specification? This is what I found in release 1.3, table 306:
> > > >
> > > > "Maximum size of Send Messages in bytes"
> >
> > I don't have a strong opinion about which description to use. The latter may
> > be easier to comprehend though. I'm not sure whether every SRP user knows
> > what an SRP "IU" is ...
>
> How about replacing "IU" with "information unit"?
>
>
> +			pr_human("        Maximum initiator to target information unit size: %d\n",
> +				 be32toh(target->ioc_prof.send_size));
>
> If you want to use "Maximum size of Send Messages in bytes",
> just let me know, I will send a new patch to use that.

What is the resolution?

Thanks

>
> thanks
>
Bart Van Assche Sept. 24, 2019, 3:36 p.m. UTC | #6
On 9/23/19 6:59 PM, Honggang LI wrote:
> If you want to use "Maximum size of Send Messages in bytes",
> just let me know, I will send a new patch to use that.

I think that description is short and easy to read.

Thanks,

Bart.

Patch
diff mbox series

diff --git a/srp_daemon/srp_daemon.c b/srp_daemon/srp_daemon.c
index 337b21c7..90533c77 100644
--- a/srp_daemon/srp_daemon.c
+++ b/srp_daemon/srp_daemon.c
@@ -1022,6 +1022,8 @@  static int do_port(struct resources *res, uint16_t pkey, uint16_t dlid,
 			pr_human("        vendor ID: %06x\n", be32toh(target->ioc_prof.vendor_id) >> 8);
 			pr_human("        device ID: %06x\n", be32toh(target->ioc_prof.device_id));
 			pr_human("        IO class : %04hx\n", be16toh(target->ioc_prof.io_class));
+			pr_human("        Maximum initiator to target IU size: %d\n",
+				 be32toh(target->ioc_prof.send_size));
 			pr_human("        ID:        %s\n", target->ioc_prof.id);
 			pr_human("        service entries: %d\n", target->ioc_prof.service_entries);