diff mbox series

thunderbolt: Reduce retry timeout to speed up boot for some devices

Message ID 20231220150956.230227-1-wse@tuxedocomputers.com (mailing list archive)
State Accepted
Commit 04b99eac389adc6485f7913d83ec9ed68bbc8326
Headers show
Series thunderbolt: Reduce retry timeout to speed up boot for some devices | expand

Commit Message

Werner Sembach Dec. 20, 2023, 3:09 p.m. UTC
This is a followup to "thunderbolt: Workaround an IOMMU fault on certain
systems with Intel Maple Ridge".

It seems like the timeout can be reduced to 250ms. This reduces the overall
delay caused by the retires to ~1s. This is about the time other things
being initialized in parallel need anyway*, so like this the effective boot
time is no longer compromised.

*I only had a single device available for my measurements: A Clevo X170KM-G
desktop replacement notebook.

Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
---
 drivers/thunderbolt/icm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Werner Sembach Dec. 20, 2023, 3:23 p.m. UTC | #1
Am 20.12.23 um 16:09 schrieb Werner Sembach:
> This is a followup to "thunderbolt: Workaround an IOMMU fault on certain
> systems with Intel Maple Ridge".
>
> It seems like the timeout can be reduced to 250ms. This reduces the overall
> delay caused by the retires to ~1s. This is about the time other things
> being initialized in parallel need anyway*, so like this the effective boot
> time is no longer compromised.
>
> *I only had a single device available for my measurements: A Clevo X170KM-G
> desktop replacement notebook.
>
> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
I wonder if this could also land in stable? Or would it be to risky?
> ---
>   drivers/thunderbolt/icm.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/thunderbolt/icm.c b/drivers/thunderbolt/icm.c
> index d8b9c734abd36..56790d50f9e32 100644
> --- a/drivers/thunderbolt/icm.c
> +++ b/drivers/thunderbolt/icm.c
> @@ -1020,7 +1020,7 @@ icm_tr_driver_ready(struct tb *tb, enum tb_security_level *security_level,
>   
>   	memset(&reply, 0, sizeof(reply));
>   	ret = icm_request(tb, &request, sizeof(request), &reply, sizeof(reply),
> -			  1, 10, 2000);
> +			  1, 10, 250);
>   	if (ret)
>   		return ret;
>
Greg KH Dec. 20, 2023, 4:04 p.m. UTC | #2
On Wed, Dec 20, 2023 at 04:23:15PM +0100, Werner Sembach wrote:
> Am 20.12.23 um 16:09 schrieb Werner Sembach:
> > This is a followup to "thunderbolt: Workaround an IOMMU fault on certain
> > systems with Intel Maple Ridge".
> > 
> > It seems like the timeout can be reduced to 250ms. This reduces the overall
> > delay caused by the retires to ~1s. This is about the time other things
> > being initialized in parallel need anyway*, so like this the effective boot
> > time is no longer compromised.
> > 
> > *I only had a single device available for my measurements: A Clevo X170KM-G
> > desktop replacement notebook.
> > 
> > Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
> I wonder if this could also land in stable? Or would it be to risky?

If it's really a bugfix now, why would it _not_ be relevant for stable?

thanks,

greg k-h
Werner Sembach Dec. 20, 2023, 4:23 p.m. UTC | #3
Am 20.12.23 um 17:04 schrieb Greg KH:
> On Wed, Dec 20, 2023 at 04:23:15PM +0100, Werner Sembach wrote:
>> Am 20.12.23 um 16:09 schrieb Werner Sembach:
>>> This is a followup to "thunderbolt: Workaround an IOMMU fault on certain
>>> systems with Intel Maple Ridge".
>>>
>>> It seems like the timeout can be reduced to 250ms. This reduces the overall
>>> delay caused by the retires to ~1s. This is about the time other things
>>> being initialized in parallel need anyway*, so like this the effective boot
>>> time is no longer compromised.
>>>
>>> *I only had a single device available for my measurements: A Clevo X170KM-G
>>> desktop replacement notebook.
>>>
>>> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
>> I wonder if this could also land in stable? Or would it be to risky?
> If it's really a bugfix now, why would it _not_ be relevant for stable?

Because it changes a timeout that could cause issues if set to low: This 
Patch sets to to 250ms. Set to 50ms it causes issues, currently it's 
2000ms, 2 people tested that 250ms is enough, but i don't know if this 
is a big enough sample size for stable.

The advantage is significantly faster boot time on affected devices 
(~12s down to ~3s), however they do already work fine without it.

Kind regards,

Werner

>
> thanks,
>
> greg k-h
Werner Sembach Dec. 20, 2023, 4:41 p.m. UTC | #4
Am 20.12.23 um 17:04 schrieb Greg KH:
> On Wed, Dec 20, 2023 at 04:23:15PM +0100, Werner Sembach wrote:
>> Am 20.12.23 um 16:09 schrieb Werner Sembach:
>>> This is a followup to "thunderbolt: Workaround an IOMMU fault on certain
>>> systems with Intel Maple Ridge".
>>>
>>> It seems like the timeout can be reduced to 250ms. This reduces the overall
>>> delay caused by the retires to ~1s. This is about the time other things
>>> being initialized in parallel need anyway*, so like this the effective boot
>>> time is no longer compromised.
>>>
>>> *I only had a single device available for my measurements: A Clevo X170KM-G
>>> desktop replacement notebook.
>>>
>>> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
>> I wonder if this could also land in stable? Or would it be to risky?
> If it's really a bugfix now, why would it _not_ be relevant for stable?

Because it changes a timeout that could cause issues if set to low: This 
Patch sets to to 250ms. Set to 50ms it causes issues, currently it's 
2000ms, 2 people tested that 250ms is enough, but i don't know if this 
is a big enough sample size for stable.

The advantage is significantly faster boot time on affected devices 
(~12s down to ~3s), however they do already work fine without it.

Kind regards,

Werner

>
> thanks,
>
> greg k-h
Greg KH Dec. 20, 2023, 5:30 p.m. UTC | #5
On Wed, Dec 20, 2023 at 05:41:01PM +0100, Werner Sembach wrote:
> 
> Am 20.12.23 um 17:04 schrieb Greg KH:
> > On Wed, Dec 20, 2023 at 04:23:15PM +0100, Werner Sembach wrote:
> > > Am 20.12.23 um 16:09 schrieb Werner Sembach:
> > > > This is a followup to "thunderbolt: Workaround an IOMMU fault on certain
> > > > systems with Intel Maple Ridge".
> > > > 
> > > > It seems like the timeout can be reduced to 250ms. This reduces the overall
> > > > delay caused by the retires to ~1s. This is about the time other things
> > > > being initialized in parallel need anyway*, so like this the effective boot
> > > > time is no longer compromised.
> > > > 
> > > > *I only had a single device available for my measurements: A Clevo X170KM-G
> > > > desktop replacement notebook.
> > > > 
> > > > Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
> > > I wonder if this could also land in stable? Or would it be to risky?
> > If it's really a bugfix now, why would it _not_ be relevant for stable?
> 
> Because it changes a timeout that could cause issues if set to low: This
> Patch sets to to 250ms. Set to 50ms it causes issues, currently it's 2000ms,
> 2 people tested that 250ms is enough, but i don't know if this is a big
> enough sample size for stable.

Remember, the next kernel will be a stable kernel tree, just like the
one after that.  If it's good enough for Linus's tree, why wouldn't it
be good enough for all stable trees?  Either it works or it doesn't,
none of this "we will break things when you move to a new kernel" stuff
please.

thanks,

greg k-h
Mika Westerberg Dec. 21, 2023, 10:37 a.m. UTC | #6
Hi,

On Wed, Dec 20, 2023 at 06:30:53PM +0100, Greg KH wrote:
> On Wed, Dec 20, 2023 at 05:41:01PM +0100, Werner Sembach wrote:
> > 
> > Am 20.12.23 um 17:04 schrieb Greg KH:
> > > On Wed, Dec 20, 2023 at 04:23:15PM +0100, Werner Sembach wrote:
> > > > Am 20.12.23 um 16:09 schrieb Werner Sembach:
> > > > > This is a followup to "thunderbolt: Workaround an IOMMU fault on certain
> > > > > systems with Intel Maple Ridge".
> > > > > 
> > > > > It seems like the timeout can be reduced to 250ms. This reduces the overall
> > > > > delay caused by the retires to ~1s. This is about the time other things
> > > > > being initialized in parallel need anyway*, so like this the effective boot
> > > > > time is no longer compromised.
> > > > > 
> > > > > *I only had a single device available for my measurements: A Clevo X170KM-G
> > > > > desktop replacement notebook.
> > > > > 
> > > > > Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
> > > > I wonder if this could also land in stable? Or would it be to risky?
> > > If it's really a bugfix now, why would it _not_ be relevant for stable?
> > 
> > Because it changes a timeout that could cause issues if set to low: This
> > Patch sets to to 250ms. Set to 50ms it causes issues, currently it's 2000ms,
> > 2 people tested that 250ms is enough, but i don't know if this is a big
> > enough sample size for stable.
> 
> Remember, the next kernel will be a stable kernel tree, just like the
> one after that.  If it's good enough for Linus's tree, why wouldn't it
> be good enough for all stable trees?  Either it works or it doesn't,
> none of this "we will break things when you move to a new kernel" stuff
> please.

Since this is kind of "improvement" over already functioning code, I
would put it to v6.8 and not to stable trees. This way it gets more some
more exposure before landing to distro kernels.

It would be nice to get Tested-by from the folks involved on that
bugzilla as well, if that's possible. I can try this on my side on a
Maple Ridge based system (that does not have the original issue) so that
we know that it does not cause any issues on them.
Werner Sembach Dec. 21, 2023, 12:20 p.m. UTC | #7
Am 20.12.23 um 17:04 schrieb Greg KH:
> On Wed, Dec 20, 2023 at 04:23:15PM +0100, Werner Sembach wrote:
>> Am 20.12.23 um 16:09 schrieb Werner Sembach:
>>> This is a followup to "thunderbolt: Workaround an IOMMU fault on certain
>>> systems with Intel Maple Ridge".
>>>
>>> It seems like the timeout can be reduced to 250ms. This reduces the overall
>>> delay caused by the retires to ~1s. This is about the time other things
>>> being initialized in parallel need anyway*, so like this the effective boot
>>> time is no longer compromised.
>>>
>>> *I only had a single device available for my measurements: A Clevo X170KM-G
>>> desktop replacement notebook.
>>>
>>> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
>> I wonder if this could also land in stable? Or would it be to risky?
> If it's really a bugfix now, why would it _not_ be relevant for stable?

edit: Sorry if this is the 3rd time I send this, I got mail server 
errors (hopefully fixed now) and am not sure if it reached out

Because it changes a timeout that could cause issues if set to low: This 
Patch sets to to 250ms. Set to 50ms it causes issues, currently it's 
2000ms, 2 people tested that 250ms is enough, but i don't know if this 
is a big enough sample size for stable.

The advantage is significantly faster boot time on affected devices 
(~12s down to ~3s), however they do already work fine without it.

Kind regards,

Werner

>
> thanks,
>
> greg k-h
Mika Westerberg Dec. 22, 2023, 11:03 a.m. UTC | #8
On Wed, Dec 20, 2023 at 04:09:56PM +0100, Werner Sembach wrote:
> This is a followup to "thunderbolt: Workaround an IOMMU fault on certain
> systems with Intel Maple Ridge".
> 
> It seems like the timeout can be reduced to 250ms. This reduces the overall
> delay caused by the retires to ~1s. This is about the time other things
> being initialized in parallel need anyway*, so like this the effective boot
> time is no longer compromised.
> 
> *I only had a single device available for my measurements: A Clevo X170KM-G
> desktop replacement notebook.
> 
> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>

Applied to thunderbolt.git/next, thanks!
diff mbox series

Patch

diff --git a/drivers/thunderbolt/icm.c b/drivers/thunderbolt/icm.c
index d8b9c734abd36..56790d50f9e32 100644
--- a/drivers/thunderbolt/icm.c
+++ b/drivers/thunderbolt/icm.c
@@ -1020,7 +1020,7 @@  icm_tr_driver_ready(struct tb *tb, enum tb_security_level *security_level,
 
 	memset(&reply, 0, sizeof(reply));
 	ret = icm_request(tb, &request, sizeof(request), &reply, sizeof(reply),
-			  1, 10, 2000);
+			  1, 10, 250);
 	if (ret)
 		return ret;