[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200125165255.GE14064@duo.ucw.cz>
Date: Sat, 25 Jan 2020 17:52:55 +0100
From: Pavel Machek <pavel@...x.de>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: linux-kernel@...r.kernel.org, stable@...r.kernel.org,
Steve Sistare <steven.sistare@...cle.com>,
Sumit Saxena <sumit.saxena@...adcom.com>,
"Martin K. Petersen" <martin.petersen@...cle.com>,
Sasha Levin <sashal@...nel.org>
Subject: Re: [PATCH 4.19 255/639] scsi: megaraid_sas: reduce module load time
Hi!
> [ Upstream commit 31b6a05f86e690e1818116fd23c3be915cc9d9ed ]
>
> megaraid_sas takes 1+ seconds to load while waiting for firmware:
>
> [2.822603] megaraid_sas 0000:03:00.0: Waiting for FW to come to ready state
> [3.871003] megaraid_sas 0000:03:00.0: FW now in Ready state
>
> This is due to the following loop in megasas_transition_to_ready(), which
> waits a minimum of 1 second, even though the FW becomes ready in tens of
> millisecs:
>
> /*
> * The cur_state should not last for more than max_wait secs
> */
> for (i = 0; i < max_wait; i++) {
> ...
> msleep(1000);
> ...
> dev_info(&instance->pdev->dev, "FW now in Ready state\n");
>
> This is a regression, caused by a change of the msleep granularity from 1
> to 1000 due to concern about waiting too long on systems with coarse
> jiffies.
>
> To fix, increase iterations and use msleep(20), which results in:
>
> [2.670627] megaraid_sas 0000:03:00.0: Waiting for FW to come to ready state
> [2.739386] megaraid_sas 0000:03:00.0: FW now in Ready state
>
> Fixes: fb2f3e96d80f ("scsi: megaraid_sas: Fix msleep granularity")
That commit does not exist, it seems this fixes:
commit 9155cf30a3c4ef97e225d6daddf9bd4b173267e8
scsi: megaraid_sas: Fix msleep granularity
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Download attachment "signature.asc" of type "application/pgp-signature" (196 bytes)
Powered by blists - more mailing lists