diff mbox

281e36cbaf causes FlexBoot iSCSI errors

Message ID 1498421749.26123.35.camel@haakon3.risingtidesystems.com (mailing list archive)
State New, archived
Headers show

Commit Message

Nicholas A. Bellinger June 25, 2017, 8:15 p.m. UTC
Hi Robert,

Adding Or Gerlitz CC', as he can direct this to the relevant Mellanox
folks responsible for Flexboot.

Also adding Arun from Cavium CC', to ensure any additional change don't
break the QLogic/MSFT iscsi environment we addressed by dropping the
legacy work-around.

On Fri, 2017-06-16 at 14:14 -0600, Robert LeBlanc wrote:
> 281e36cbaf : iscsi-target: Drop work-around for legacy GlobalSAN initiator
> 

For reference, here is the email thread:

http://www.spinics.net/lists/target-devel/msg14938.html

> Causes "No response for proposed key "FirstBurstLength"." when the
> target is running 4.9.32. We tested both FlexBoot 3.5.109 and 3.5.110.
> If we revert 281e36cbaf then FlexBoot 3.5.109 boots fine, but FlexBoot
> 3.5.110 fails with messages "cmd exceeds last lba 64 (lba 64, sectors
> 1)".
> 
> It seems that FlexBoot has relied upon the workaround that now has been removed.
> 

Ok, so it looks like Flexboot is not proposing nor responding to
FirstBurstLength..

Robert, please send along a packet capture to verify this is the only
key not being proposed.

Mellanox folks, can you confirm Flexboot is not proposing nor responding
to FirstBurstLength.

> We have had to revert the patch and downgrade the firmware to get
> things working again.
> 
> # flint -d /dev/mst/mt4115_pciconf0 q
> Image type:          FS3
> FW Version:          12.18.1000
> FW Release Date:     25.1.2017
> Product Version:     rel-12_18_1000
> Rom Info:            type=PXE version=3.5.109 devid=4115
> Description:         UID                GuidsNumber
> Base GUID:           248a0703001e7cc8        4
> Base MAC:            0000248a071e7cc8        4
> Image VSD:
> Device VSD:
> PSID:                MT_2150110033
> 

So the Qlogic/MSFT environment was not proposing the DefaultTime2Wait +
DefaultTime2Retain keys, which triggered the original work-around which
proposed the keys but did not wait for a response before transitioning
to full feature phase.

Note the original work-around did this for DefaultTime2Wait,
DefaultTime2Retain, FirstBurstLength, and MaxBurstLength.

However, the original work-around to propose the missing keys but not
wait for the response was in retrospect, not the right approach per
RFC-3720.

That said, we've got two options to consider:

1) Get the Mellanox/Flexboot folks to fix their ROM to propose, 
   and/or respond to FirstBurstLength to follow RFC-3720.
2) Re-add a similar iscsi-target work-around for FirstBurstLength.

So #1 should really be fixed, as not proposing nor responding to
FirstBurstLength seems like a broken initiator to me, and would likely
run into problems with other targets as well.

For #2, since the work-around is not RFC I'm reluctant to re-add it.
However, since Qlogic/MFST was tripping over DefaultTime2Wait +
DefaultTime2Retain and not FirstBurstLength, in practice a work-around
for FirstBurstLength only would probably allow FlexBoot to 'just work',
and not break Qlogic/MFST or any other host environments.

That said, here's a quick patch to do that.  Robert, please verify on
your end with Flexboot.


Arun, from looking at the original QLogic/MSFT packet captures
FirstBurstLength is being proposed, so I don't think re-adding this
work-around would have any effect on your end.

Please verify.

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

Comments

Robert LeBlanc June 26, 2017, 5:44 p.m. UTC | #1
On Sun, Jun 25, 2017 at 2:15 PM, Nicholas A. Bellinger
<nab@linux-iscsi.org> wrote:
> Hi Robert,
>
> Adding Or Gerlitz CC', as he can direct this to the relevant Mellanox
> folks responsible for Flexboot.
>
> Also adding Arun from Cavium CC', to ensure any additional change don't
> break the QLogic/MSFT iscsi environment we addressed by dropping the
> legacy work-around.
>
> On Fri, 2017-06-16 at 14:14 -0600, Robert LeBlanc wrote:
>> 281e36cbaf : iscsi-target: Drop work-around for legacy GlobalSAN initiator
>>
>
> For reference, here is the email thread:
>
> http://www.spinics.net/lists/target-devel/msg14938.html
>
>> Causes "No response for proposed key "FirstBurstLength"." when the
>> target is running 4.9.32. We tested both FlexBoot 3.5.109 and 3.5.110.
>> If we revert 281e36cbaf then FlexBoot 3.5.109 boots fine, but FlexBoot
>> 3.5.110 fails with messages "cmd exceeds last lba 64 (lba 64, sectors
>> 1)".
>>
>> It seems that FlexBoot has relied upon the workaround that now has been removed.
>>
>
> Ok, so it looks like Flexboot is not proposing nor responding to
> FirstBurstLength..
>
> Robert, please send along a packet capture to verify this is the only
> key not being proposed.

I'm OOO at the moment, I'll see if someone can get that capture.

> Mellanox folks, can you confirm Flexboot is not proposing nor responding
> to FirstBurstLength.
>
>> We have had to revert the patch and downgrade the firmware to get
>> things working again.
>>
>> # flint -d /dev/mst/mt4115_pciconf0 q
>> Image type:          FS3
>> FW Version:          12.18.1000
>> FW Release Date:     25.1.2017
>> Product Version:     rel-12_18_1000
>> Rom Info:            type=PXE version=3.5.109 devid=4115
>> Description:         UID                GuidsNumber
>> Base GUID:           248a0703001e7cc8        4
>> Base MAC:            0000248a071e7cc8        4
>> Image VSD:
>> Device VSD:
>> PSID:                MT_2150110033
>>
>
> So the Qlogic/MSFT environment was not proposing the DefaultTime2Wait +
> DefaultTime2Retain keys, which triggered the original work-around which
> proposed the keys but did not wait for a response before transitioning
> to full feature phase.
>
> Note the original work-around did this for DefaultTime2Wait,
> DefaultTime2Retain, FirstBurstLength, and MaxBurstLength.
>
> However, the original work-around to propose the missing keys but not
> wait for the response was in retrospect, not the right approach per
> RFC-3720.
>
> That said, we've got two options to consider:
>
> 1) Get the Mellanox/Flexboot folks to fix their ROM to propose,
>    and/or respond to FirstBurstLength to follow RFC-3720.
> 2) Re-add a similar iscsi-target work-around for FirstBurstLength.
>
> So #1 should really be fixed, as not proposing nor responding to
> FirstBurstLength seems like a broken initiator to me, and would likely
> run into problems with other targets as well.

I agree, I'd prefer not to implement a non-RFC workaround as well for
the same reasons. We will test the patch just to know for sure, but it
may take a while.

> For #2, since the work-around is not RFC I'm reluctant to re-add it.
> However, since Qlogic/MFST was tripping over DefaultTime2Wait +
> DefaultTime2Retain and not FirstBurstLength, in practice a work-around
> for FirstBurstLength only would probably allow FlexBoot to 'just work',
> and not break Qlogic/MFST or any other host environments.
>
> That said, here's a quick patch to do that.  Robert, please verify on
> your end with Flexboot.
>
> diff --git a/drivers/target/iscsi/iscsi_target_parameters.c b/drivers/target/iscsi/iscsi_targ
> index fce6276..52b1d44 100644
> --- a/drivers/target/iscsi/iscsi_target_parameters.c
> +++ b/drivers/target/iscsi/iscsi_target_parameters.c
> @@ -786,6 +786,11 @@ static void iscsi_check_proposer_for_optional_reply(struct iscsi_param *
>                  */
>                 if (!strcmp(param->name, MAXCONNECTIONS))
>                         SET_PSTATE_REPLY_OPTIONAL(param);
> +               /*
> +                * Required for Mellanox Flexboot iscsi ROM
> +                */
> +               if (!strcmp(param->name, FIRSTBURSTLENGTH))
> +                       SET_PSTATE_REPLY_OPTIONAL(param);
>         } else if (IS_PHASE_DECLARATIVE(param))
>                 SET_PSTATE_REPLY_OPTIONAL(param);
>  }
>
> Arun, from looking at the original QLogic/MSFT packet captures
> FirstBurstLength is being proposed, so I don't think re-adding this
> work-around would have any effect on your end.
>
> Please verify.
>

----------------
Robert LeBlanc
PGP Fingerprint 79A2 9CA4 6CC4 45DD A904  C70E E654 3BB2 FA62 B9F1
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Easi, Arun June 26, 2017, 6:51 p.m. UTC | #2
On Sun, 25 Jun 2017, 1:15pm, Nicholas A. Bellinger wrote:

> Hi Robert,
> 
> Adding Or Gerlitz CC', as he can direct this to the relevant Mellanox
> folks responsible for Flexboot.
> 
> Also adding Arun from Cavium CC', to ensure any additional change don't
> break the QLogic/MSFT iscsi environment we addressed by dropping the
> legacy work-around.
> 
> On Fri, 2017-06-16 at 14:14 -0600, Robert LeBlanc wrote:
> > 281e36cbaf : iscsi-target: Drop work-around for legacy GlobalSAN initiator
> > 
> 
> For reference, here is the email thread:
> 
> http://www.spinics.net/lists/target-devel/msg14938.html
> 
> > Causes "No response for proposed key "FirstBurstLength"." when the
> > target is running 4.9.32. We tested both FlexBoot 3.5.109 and 3.5.110.
> > If we revert 281e36cbaf then FlexBoot 3.5.109 boots fine, but FlexBoot
> > 3.5.110 fails with messages "cmd exceeds last lba 64 (lba 64, sectors
> > 1)".
> > 
> > It seems that FlexBoot has relied upon the workaround that now has been removed.
> > 
> 
> Ok, so it looks like Flexboot is not proposing nor responding to
> FirstBurstLength..
> 
> Robert, please send along a packet capture to verify this is the only
> key not being proposed.
> 
> Mellanox folks, can you confirm Flexboot is not proposing nor responding
> to FirstBurstLength.
> 
> > We have had to revert the patch and downgrade the firmware to get
> > things working again.
> > 
> > # flint -d /dev/mst/mt4115_pciconf0 q
> > Image type:          FS3
> > FW Version:          12.18.1000
> > FW Release Date:     25.1.2017
> > Product Version:     rel-12_18_1000
> > Rom Info:            type=PXE version=3.5.109 devid=4115
> > Description:         UID                GuidsNumber
> > Base GUID:           248a0703001e7cc8        4
> > Base MAC:            0000248a071e7cc8        4
> > Image VSD:
> > Device VSD:
> > PSID:                MT_2150110033
> > 
> 
> So the Qlogic/MSFT environment was not proposing the DefaultTime2Wait +
> DefaultTime2Retain keys, which triggered the original work-around which
> proposed the keys but did not wait for a response before transitioning
> to full feature phase.
> 
> Note the original work-around did this for DefaultTime2Wait,
> DefaultTime2Retain, FirstBurstLength, and MaxBurstLength.
> 
> However, the original work-around to propose the missing keys but not
> wait for the response was in retrospect, not the right approach per
> RFC-3720.
> 
> That said, we've got two options to consider:
> 
> 1) Get the Mellanox/Flexboot folks to fix their ROM to propose, 
>    and/or respond to FirstBurstLength to follow RFC-3720.
> 2) Re-add a similar iscsi-target work-around for FirstBurstLength.
> 
> So #1 should really be fixed, as not proposing nor responding to
> FirstBurstLength seems like a broken initiator to me, and would likely
> run into problems with other targets as well.
> 
> For #2, since the work-around is not RFC I'm reluctant to re-add it.
> However, since Qlogic/MFST was tripping over DefaultTime2Wait +
> DefaultTime2Retain and not FirstBurstLength, in practice a work-around
> for FirstBurstLength only would probably allow FlexBoot to 'just work',
> and not break Qlogic/MFST or any other host environments.
> 
> That said, here's a quick patch to do that.  Robert, please verify on
> your end with Flexboot.
> 
> diff --git a/drivers/target/iscsi/iscsi_target_parameters.c b/drivers/target/iscsi/iscsi_targ
> index fce6276..52b1d44 100644
> --- a/drivers/target/iscsi/iscsi_target_parameters.c
> +++ b/drivers/target/iscsi/iscsi_target_parameters.c
> @@ -786,6 +786,11 @@ static void iscsi_check_proposer_for_optional_reply(struct iscsi_param *
>                  */
>                 if (!strcmp(param->name, MAXCONNECTIONS))
>                         SET_PSTATE_REPLY_OPTIONAL(param);
> +               /*
> +                * Required for Mellanox Flexboot iscsi ROM
> +                */
> +               if (!strcmp(param->name, FIRSTBURSTLENGTH))
> +                       SET_PSTATE_REPLY_OPTIONAL(param);
>         } else if (IS_PHASE_DECLARATIVE(param))
>                 SET_PSTATE_REPLY_OPTIONAL(param);
>  }
> 
> Arun, from looking at the original QLogic/MSFT packet captures
> FirstBurstLength is being proposed, so I don't think re-adding this
> work-around would have any effect on your end.

Yes, FirstBurstLength is proposed initially in our case. Agree, it looks 
ok from our side.

Just wish these workarounds come with knobs, with a default off setting.

> 
> Please verify.
> 

Will do.

Regards,
-Arun
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Nicholas A. Bellinger June 30, 2017, 6:07 a.m. UTC | #3
On Mon, 2017-06-26 at 11:51 -0700, Arun Easi wrote:
> On Sun, 25 Jun 2017, 1:15pm, Nicholas A. Bellinger wrote:
> 
> > Hi Robert,
> > 
> > Adding Or Gerlitz CC', as he can direct this to the relevant Mellanox
> > folks responsible for Flexboot.
> > 
> > Also adding Arun from Cavium CC', to ensure any additional change don't
> > break the QLogic/MSFT iscsi environment we addressed by dropping the
> > legacy work-around.
> > 
> > On Fri, 2017-06-16 at 14:14 -0600, Robert LeBlanc wrote:
> > > 281e36cbaf : iscsi-target: Drop work-around for legacy GlobalSAN initiator
> > > 
> > 
> > For reference, here is the email thread:
> > 
> > http://www.spinics.net/lists/target-devel/msg14938.html
> > 
> > > Causes "No response for proposed key "FirstBurstLength"." when the
> > > target is running 4.9.32. We tested both FlexBoot 3.5.109 and 3.5.110.
> > > If we revert 281e36cbaf then FlexBoot 3.5.109 boots fine, but FlexBoot
> > > 3.5.110 fails with messages "cmd exceeds last lba 64 (lba 64, sectors
> > > 1)".
> > > 
> > > It seems that FlexBoot has relied upon the workaround that now has been removed.
> > > 
> > 
> > Ok, so it looks like Flexboot is not proposing nor responding to
> > FirstBurstLength..
> > 
> > Robert, please send along a packet capture to verify this is the only
> > key not being proposed.
> > 
> > Mellanox folks, can you confirm Flexboot is not proposing nor responding
> > to FirstBurstLength.
> > 
> > > We have had to revert the patch and downgrade the firmware to get
> > > things working again.
> > > 
> > > # flint -d /dev/mst/mt4115_pciconf0 q
> > > Image type:          FS3
> > > FW Version:          12.18.1000
> > > FW Release Date:     25.1.2017
> > > Product Version:     rel-12_18_1000
> > > Rom Info:            type=PXE version=3.5.109 devid=4115
> > > Description:         UID                GuidsNumber
> > > Base GUID:           248a0703001e7cc8        4
> > > Base MAC:            0000248a071e7cc8        4
> > > Image VSD:
> > > Device VSD:
> > > PSID:                MT_2150110033
> > > 
> > 
> > So the Qlogic/MSFT environment was not proposing the DefaultTime2Wait +
> > DefaultTime2Retain keys, which triggered the original work-around which
> > proposed the keys but did not wait for a response before transitioning
> > to full feature phase.
> > 
> > Note the original work-around did this for DefaultTime2Wait,
> > DefaultTime2Retain, FirstBurstLength, and MaxBurstLength.
> > 
> > However, the original work-around to propose the missing keys but not
> > wait for the response was in retrospect, not the right approach per
> > RFC-3720.
> > 
> > That said, we've got two options to consider:
> > 
> > 1) Get the Mellanox/Flexboot folks to fix their ROM to propose, 
> >    and/or respond to FirstBurstLength to follow RFC-3720.
> > 2) Re-add a similar iscsi-target work-around for FirstBurstLength.
> > 
> > So #1 should really be fixed, as not proposing nor responding to
> > FirstBurstLength seems like a broken initiator to me, and would likely
> > run into problems with other targets as well.
> > 
> > For #2, since the work-around is not RFC I'm reluctant to re-add it.
> > However, since Qlogic/MFST was tripping over DefaultTime2Wait +
> > DefaultTime2Retain and not FirstBurstLength, in practice a work-around
> > for FirstBurstLength only would probably allow FlexBoot to 'just work',
> > and not break Qlogic/MFST or any other host environments.
> > 
> > That said, here's a quick patch to do that.  Robert, please verify on
> > your end with Flexboot.
> > 
> > diff --git a/drivers/target/iscsi/iscsi_target_parameters.c b/drivers/target/iscsi/iscsi_targ
> > index fce6276..52b1d44 100644
> > --- a/drivers/target/iscsi/iscsi_target_parameters.c
> > +++ b/drivers/target/iscsi/iscsi_target_parameters.c
> > @@ -786,6 +786,11 @@ static void iscsi_check_proposer_for_optional_reply(struct iscsi_param *
> >                  */
> >                 if (!strcmp(param->name, MAXCONNECTIONS))
> >                         SET_PSTATE_REPLY_OPTIONAL(param);
> > +               /*
> > +                * Required for Mellanox Flexboot iscsi ROM
> > +                */
> > +               if (!strcmp(param->name, FIRSTBURSTLENGTH))
> > +                       SET_PSTATE_REPLY_OPTIONAL(param);
> >         } else if (IS_PHASE_DECLARATIVE(param))
> >                 SET_PSTATE_REPLY_OPTIONAL(param);
> >  }
> > 
> > Arun, from looking at the original QLogic/MSFT packet captures
> > FirstBurstLength is being proposed, so I don't think re-adding this
> > work-around would have any effect on your end.
> 
> Yes, FirstBurstLength is proposed initially in our case. Agree, it looks 
> ok from our side.
> 
> Just wish these workarounds come with knobs, with a default off setting.

Fair point.  Will think about how that might look..

--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Nicholas A. Bellinger July 7, 2017, 10:31 p.m. UTC | #4
Hey Arun & Robert,

On Thu, 2017-06-29 at 23:07 -0700, Nicholas A. Bellinger wrote:
> On Mon, 2017-06-26 at 11:51 -0700, Arun Easi wrote:
> > On Sun, 25 Jun 2017, 1:15pm, Nicholas A. Bellinger wrote:
> > 
> > > Hi Robert,
> > > 
> > > Adding Or Gerlitz CC', as he can direct this to the relevant Mellanox
> > > folks responsible for Flexboot.
> > > 
> > > Also adding Arun from Cavium CC', to ensure any additional change don't
> > > break the QLogic/MSFT iscsi environment we addressed by dropping the
> > > legacy work-around.
> > > 
> > > On Fri, 2017-06-16 at 14:14 -0600, Robert LeBlanc wrote:
> > > > 281e36cbaf : iscsi-target: Drop work-around for legacy GlobalSAN initiator
> > > > 
> > > 
> > > For reference, here is the email thread:
> > > 
> > > http://www.spinics.net/lists/target-devel/msg14938.html
> > > 
> > > > Causes "No response for proposed key "FirstBurstLength"." when the
> > > > target is running 4.9.32. We tested both FlexBoot 3.5.109 and 3.5.110.
> > > > If we revert 281e36cbaf then FlexBoot 3.5.109 boots fine, but FlexBoot
> > > > 3.5.110 fails with messages "cmd exceeds last lba 64 (lba 64, sectors
> > > > 1)".
> > > > 
> > > > It seems that FlexBoot has relied upon the workaround that now has been removed.
> > > > 
> > > 
> > > Ok, so it looks like Flexboot is not proposing nor responding to
> > > FirstBurstLength..
> > > 
> > > Robert, please send along a packet capture to verify this is the only
> > > key not being proposed.
> > > 
> > > Mellanox folks, can you confirm Flexboot is not proposing nor responding
> > > to FirstBurstLength.
> > > 
> > > > We have had to revert the patch and downgrade the firmware to get
> > > > things working again.
> > > > 
> > > > # flint -d /dev/mst/mt4115_pciconf0 q
> > > > Image type:          FS3
> > > > FW Version:          12.18.1000
> > > > FW Release Date:     25.1.2017
> > > > Product Version:     rel-12_18_1000
> > > > Rom Info:            type=PXE version=3.5.109 devid=4115
> > > > Description:         UID                GuidsNumber
> > > > Base GUID:           248a0703001e7cc8        4
> > > > Base MAC:            0000248a071e7cc8        4
> > > > Image VSD:
> > > > Device VSD:
> > > > PSID:                MT_2150110033
> > > > 
> > > 
> > > So the Qlogic/MSFT environment was not proposing the DefaultTime2Wait +
> > > DefaultTime2Retain keys, which triggered the original work-around which
> > > proposed the keys but did not wait for a response before transitioning
> > > to full feature phase.
> > > 
> > > Note the original work-around did this for DefaultTime2Wait,
> > > DefaultTime2Retain, FirstBurstLength, and MaxBurstLength.
> > > 
> > > However, the original work-around to propose the missing keys but not
> > > wait for the response was in retrospect, not the right approach per
> > > RFC-3720.
> > > 
> > > That said, we've got two options to consider:
> > > 
> > > 1) Get the Mellanox/Flexboot folks to fix their ROM to propose, 
> > >    and/or respond to FirstBurstLength to follow RFC-3720.
> > > 2) Re-add a similar iscsi-target work-around for FirstBurstLength.
> > > 
> > > So #1 should really be fixed, as not proposing nor responding to
> > > FirstBurstLength seems like a broken initiator to me, and would likely
> > > run into problems with other targets as well.
> > > 
> > > For #2, since the work-around is not RFC I'm reluctant to re-add it.
> > > However, since Qlogic/MFST was tripping over DefaultTime2Wait +
> > > DefaultTime2Retain and not FirstBurstLength, in practice a work-around
> > > for FirstBurstLength only would probably allow FlexBoot to 'just work',
> > > and not break Qlogic/MFST or any other host environments.
> > > 
> > > That said, here's a quick patch to do that.  Robert, please verify on
> > > your end with Flexboot.
> > > 
> > > diff --git a/drivers/target/iscsi/iscsi_target_parameters.c b/drivers/target/iscsi/iscsi_targ
> > > index fce6276..52b1d44 100644
> > > --- a/drivers/target/iscsi/iscsi_target_parameters.c
> > > +++ b/drivers/target/iscsi/iscsi_target_parameters.c
> > > @@ -786,6 +786,11 @@ static void iscsi_check_proposer_for_optional_reply(struct iscsi_param *
> > >                  */
> > >                 if (!strcmp(param->name, MAXCONNECTIONS))
> > >                         SET_PSTATE_REPLY_OPTIONAL(param);
> > > +               /*
> > > +                * Required for Mellanox Flexboot iscsi ROM
> > > +                */
> > > +               if (!strcmp(param->name, FIRSTBURSTLENGTH))
> > > +                       SET_PSTATE_REPLY_OPTIONAL(param);
> > >         } else if (IS_PHASE_DECLARATIVE(param))
> > >                 SET_PSTATE_REPLY_OPTIONAL(param);
> > >  }
> > > 
> > > Arun, from looking at the original QLogic/MSFT packet captures
> > > FirstBurstLength is being proposed, so I don't think re-adding this
> > > work-around would have any effect on your end.
> > 
> > Yes, FirstBurstLength is proposed initially in our case. Agree, it looks 
> > ok from our side.
> > 
> > Just wish these workarounds come with knobs, with a default off setting.
> 
> Fair point.  Will think about how that might look..
> 

Ok, just postd the following patch to re-add the FirstBurstLength
work-around for FlexBoot, and make it configurable via a new
'login_keys_workaround' TPG attribute:

iscsi-target: Add login_keys_workaround attribute for non RFC initiators
https://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git/commit/?h=for-next&id=6bdef5928b40d0225b47b055bbe41b3101f0babf

However, after further consideration I did end up enabling this
work-around by default, since it doesn't have any effect on QLogic MSFT,
and so it 'just works' for existing Flexboot users.

So that said, Arun & Robert, please grab this patch and test it ASAP, so
it can be pushed in the upcoming v4.13-rc1 PULL request.

Thank you.

--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Easi, Arun July 9, 2017, 12:20 a.m. UTC | #5
Hi Nic,

On Fri, 7 Jul 2017, 3:31pm, Nicholas A. Bellinger wrote:

> Hey Arun & Robert,
> 
> On Thu, 2017-06-29 at 23:07 -0700, Nicholas A. Bellinger wrote:
> > On Mon, 2017-06-26 at 11:51 -0700, Arun Easi wrote:
> > > On Sun, 25 Jun 2017, 1:15pm, Nicholas A. Bellinger wrote:
> > > 
> > > > Hi Robert,
> > > > 
> > > > Adding Or Gerlitz CC', as he can direct this to the relevant Mellanox
> > > > folks responsible for Flexboot.
> > > > 
> > > > Also adding Arun from Cavium CC', to ensure any additional change don't
> > > > break the QLogic/MSFT iscsi environment we addressed by dropping the
> > > > legacy work-around.
> > > > 
> > > > On Fri, 2017-06-16 at 14:14 -0600, Robert LeBlanc wrote:
> > > > > 281e36cbaf : iscsi-target: Drop work-around for legacy GlobalSAN initiator
> > > > > 
> > > > 
> > > > For reference, here is the email thread:
> > > > 
> > > > http://www.spinics.net/lists/target-devel/msg14938.html
> > > > 
> > > > > Causes "No response for proposed key "FirstBurstLength"." when the
> > > > > target is running 4.9.32. We tested both FlexBoot 3.5.109 and 3.5.110.
> > > > > If we revert 281e36cbaf then FlexBoot 3.5.109 boots fine, but FlexBoot
> > > > > 3.5.110 fails with messages "cmd exceeds last lba 64 (lba 64, sectors
> > > > > 1)".
> > > > > 
> > > > > It seems that FlexBoot has relied upon the workaround that now has been removed.
> > > > > 
> > > > 
> > > > Ok, so it looks like Flexboot is not proposing nor responding to
> > > > FirstBurstLength..
> > > > 
> > > > Robert, please send along a packet capture to verify this is the only
> > > > key not being proposed.
> > > > 
> > > > Mellanox folks, can you confirm Flexboot is not proposing nor responding
> > > > to FirstBurstLength.
> > > > 
> > > > > We have had to revert the patch and downgrade the firmware to get
> > > > > things working again.
> > > > > 
> > > > > # flint -d /dev/mst/mt4115_pciconf0 q
> > > > > Image type:          FS3
> > > > > FW Version:          12.18.1000
> > > > > FW Release Date:     25.1.2017
> > > > > Product Version:     rel-12_18_1000
> > > > > Rom Info:            type=PXE version=3.5.109 devid=4115
> > > > > Description:         UID                GuidsNumber
> > > > > Base GUID:           248a0703001e7cc8        4
> > > > > Base MAC:            0000248a071e7cc8        4
> > > > > Image VSD:
> > > > > Device VSD:
> > > > > PSID:                MT_2150110033
> > > > > 
> > > > 
> > > > So the Qlogic/MSFT environment was not proposing the DefaultTime2Wait +
> > > > DefaultTime2Retain keys, which triggered the original work-around which
> > > > proposed the keys but did not wait for a response before transitioning
> > > > to full feature phase.
> > > > 
> > > > Note the original work-around did this for DefaultTime2Wait,
> > > > DefaultTime2Retain, FirstBurstLength, and MaxBurstLength.
> > > > 
> > > > However, the original work-around to propose the missing keys but not
> > > > wait for the response was in retrospect, not the right approach per
> > > > RFC-3720.
> > > > 
> > > > That said, we've got two options to consider:
> > > > 
> > > > 1) Get the Mellanox/Flexboot folks to fix their ROM to propose, 
> > > >    and/or respond to FirstBurstLength to follow RFC-3720.
> > > > 2) Re-add a similar iscsi-target work-around for FirstBurstLength.
> > > > 
> > > > So #1 should really be fixed, as not proposing nor responding to
> > > > FirstBurstLength seems like a broken initiator to me, and would likely
> > > > run into problems with other targets as well.
> > > > 
> > > > For #2, since the work-around is not RFC I'm reluctant to re-add it.
> > > > However, since Qlogic/MFST was tripping over DefaultTime2Wait +
> > > > DefaultTime2Retain and not FirstBurstLength, in practice a work-around
> > > > for FirstBurstLength only would probably allow FlexBoot to 'just work',
> > > > and not break Qlogic/MFST or any other host environments.
> > > > 
> > > > That said, here's a quick patch to do that.  Robert, please verify on
> > > > your end with Flexboot.
> > > > 
> > > > diff --git a/drivers/target/iscsi/iscsi_target_parameters.c b/drivers/target/iscsi/iscsi_targ
> > > > index fce6276..52b1d44 100644
> > > > --- a/drivers/target/iscsi/iscsi_target_parameters.c
> > > > +++ b/drivers/target/iscsi/iscsi_target_parameters.c
> > > > @@ -786,6 +786,11 @@ static void iscsi_check_proposer_for_optional_reply(struct iscsi_param *
> > > >                  */
> > > >                 if (!strcmp(param->name, MAXCONNECTIONS))
> > > >                         SET_PSTATE_REPLY_OPTIONAL(param);
> > > > +               /*
> > > > +                * Required for Mellanox Flexboot iscsi ROM
> > > > +                */
> > > > +               if (!strcmp(param->name, FIRSTBURSTLENGTH))
> > > > +                       SET_PSTATE_REPLY_OPTIONAL(param);
> > > >         } else if (IS_PHASE_DECLARATIVE(param))
> > > >                 SET_PSTATE_REPLY_OPTIONAL(param);
> > > >  }
> > > > 
> > > > Arun, from looking at the original QLogic/MSFT packet captures
> > > > FirstBurstLength is being proposed, so I don't think re-adding this
> > > > work-around would have any effect on your end.
> > > 
> > > Yes, FirstBurstLength is proposed initially in our case. Agree, it looks 
> > > ok from our side.
> > > 
> > > Just wish these workarounds come with knobs, with a default off setting.
> > 
> > Fair point.  Will think about how that might look..
> > 
> 
> Ok, just postd the following patch to re-add the FirstBurstLength
> work-around for FlexBoot, and make it configurable via a new
> 'login_keys_workaround' TPG attribute:
> 
> iscsi-target: Add login_keys_workaround attribute for non RFC initiators
> https://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git/commit/?h=for-next&id=6bdef5928b40d0225b47b055bbe41b3101f0babf
> 
> However, after further consideration I did end up enabling this
> work-around by default, since it doesn't have any effect on QLogic MSFT,
> and so it 'just works' for existing Flexboot users.
> 
> So that said, Arun & Robert, please grab this patch and test it ASAP, so
> it can be pushed in the upcoming v4.13-rc1 PULL request.
> 

I am on vacation now, I will not be able to test the patch. Sorry.

I took a look at the patch though, and it looks ok.

Regards,
-Arun
--
To unsubscribe from this list: send the line "unsubscribe target-devel" 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/drivers/target/iscsi/iscsi_target_parameters.c b/drivers/target/iscsi/iscsi_targ
index fce6276..52b1d44 100644
--- a/drivers/target/iscsi/iscsi_target_parameters.c
+++ b/drivers/target/iscsi/iscsi_target_parameters.c
@@ -786,6 +786,11 @@  static void iscsi_check_proposer_for_optional_reply(struct iscsi_param *
                 */
                if (!strcmp(param->name, MAXCONNECTIONS))
                        SET_PSTATE_REPLY_OPTIONAL(param);
+               /*
+                * Required for Mellanox Flexboot iscsi ROM
+                */
+               if (!strcmp(param->name, FIRSTBURSTLENGTH))
+                       SET_PSTATE_REPLY_OPTIONAL(param);
        } else if (IS_PHASE_DECLARATIVE(param))
                SET_PSTATE_REPLY_OPTIONAL(param);
 }