2022-08-31 16:30:13

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH] remoteproc: report firmware name on load failures

remoteproc error messages like:
remoteproc remoteproc0: request_firmware failed: -2
remoteproc remoteproc1: request_firmware failed: -2
are difficult to debug as one actually have no clue which device
reported it and which firmware is missing. Be verbose and print the
name of the failed firmware.

Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
drivers/remoteproc/remoteproc_core.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
index e5279ed9a8d7..71cd7ed7a970 100644
--- a/drivers/remoteproc/remoteproc_core.c
+++ b/drivers/remoteproc/remoteproc_core.c
@@ -1923,7 +1923,8 @@ int rproc_trigger_recovery(struct rproc *rproc)
/* load firmware */
ret = request_firmware(&firmware_p, rproc->firmware, dev);
if (ret < 0) {
- dev_err(dev, "request_firmware failed: %d\n", ret);
+ dev_err(dev, "request_firmware %s failed: %d\n",
+ rproc->firmware, ret);
goto unlock_mutex;
}

@@ -2023,7 +2024,8 @@ int rproc_boot(struct rproc *rproc)
/* load firmware */
ret = request_firmware(&firmware_p, rproc->firmware, dev);
if (ret < 0) {
- dev_err(dev, "request_firmware failed: %d\n", ret);
+ dev_err(dev, "request_firmware %s failed: %d\n",
+ rproc->firmware, ret);
goto downref_rproc;
}

--
2.34.1


2022-09-01 09:36:04

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] remoteproc: report firmware name on load failures

hi,

On 8/31/2022 9:47 PM, Krzysztof Kozlowski wrote:
> remoteproc error messages like:
> remoteproc remoteproc0: request_firmware failed: -2
> remoteproc remoteproc1: request_firmware failed: -2
> are difficult to debug as one actually have no clue which device
> reported it and which firmware is missing. Be verbose and print the
> name of the failed firmware.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
> drivers/remoteproc/remoteproc_core.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
> index e5279ed9a8d7..71cd7ed7a970 100644
> --- a/drivers/remoteproc/remoteproc_core.c
> +++ b/drivers/remoteproc/remoteproc_core.c
> @@ -1923,7 +1923,8 @@ int rproc_trigger_recovery(struct rproc *rproc)
> /* load firmware */
> ret = request_firmware(&firmware_p, rproc->firmware, dev);
> if (ret < 0) {
> - dev_err(dev, "request_firmware failed: %d\n", ret);
> + dev_err(dev, "request_firmware %s failed: %d\n",
> + rproc->firmware, ret);
> goto unlock_mutex;
> }
>
> @@ -2023,7 +2024,8 @@ int rproc_boot(struct rproc *rproc)
> /* load firmware */
> ret = request_firmware(&firmware_p, rproc->firmware, dev);
> if (ret < 0) {
> - dev_err(dev, "request_firmware failed: %d\n", ret);
> + dev_err(dev, "request_firmware %s failed: %d\n",
> + rproc->firmware, ret);

Good to have this.
Acked-by: Mukesh Ojha <[email protected]>

> goto downref_rproc;
> }
>

-Mukesh

2022-09-06 20:14:09

by Mathieu Poirier

[permalink] [raw]
Subject: Re: [PATCH] remoteproc: report firmware name on load failures

On Wed, Aug 31, 2022 at 07:17:36PM +0300, Krzysztof Kozlowski wrote:
> remoteproc error messages like:
> remoteproc remoteproc0: request_firmware failed: -2
> remoteproc remoteproc1: request_firmware failed: -2
> are difficult to debug as one actually have no clue which device
> reported it and which firmware is missing. Be verbose and print the
> name of the failed firmware.
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
> drivers/remoteproc/remoteproc_core.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
> index e5279ed9a8d7..71cd7ed7a970 100644
> --- a/drivers/remoteproc/remoteproc_core.c
> +++ b/drivers/remoteproc/remoteproc_core.c
> @@ -1923,7 +1923,8 @@ int rproc_trigger_recovery(struct rproc *rproc)
> /* load firmware */
> ret = request_firmware(&firmware_p, rproc->firmware, dev);
> if (ret < 0) {
> - dev_err(dev, "request_firmware failed: %d\n", ret);
> + dev_err(dev, "request_firmware %s failed: %d\n",
> + rproc->firmware, ret);
> goto unlock_mutex;
> }
>
> @@ -2023,7 +2024,8 @@ int rproc_boot(struct rproc *rproc)
> /* load firmware */
> ret = request_firmware(&firmware_p, rproc->firmware, dev);
> if (ret < 0) {
> - dev_err(dev, "request_firmware failed: %d\n", ret);
> + dev_err(dev, "request_firmware %s failed: %d\n",
> + rproc->firmware, ret);

That information is already available in sysfs but if you are really keen on it
please do the same for rproc_trigger_auto_boot().

Thanks,
Mathieu

> goto downref_rproc;
> }
>
> --
> 2.34.1
>

2022-09-07 08:28:59

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] remoteproc: report firmware name on load failures

On 06/09/2022 21:46, Mathieu Poirier wrote:
> On Wed, Aug 31, 2022 at 07:17:36PM +0300, Krzysztof Kozlowski wrote:
>> remoteproc error messages like:
>> remoteproc remoteproc0: request_firmware failed: -2
>> remoteproc remoteproc1: request_firmware failed: -2
>> are difficult to debug as one actually have no clue which device
>> reported it and which firmware is missing. Be verbose and print the
>> name of the failed firmware.
>>
>> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>> ---
>> drivers/remoteproc/remoteproc_core.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
>> index e5279ed9a8d7..71cd7ed7a970 100644
>> --- a/drivers/remoteproc/remoteproc_core.c
>> +++ b/drivers/remoteproc/remoteproc_core.c
>> @@ -1923,7 +1923,8 @@ int rproc_trigger_recovery(struct rproc *rproc)
>> /* load firmware */
>> ret = request_firmware(&firmware_p, rproc->firmware, dev);
>> if (ret < 0) {
>> - dev_err(dev, "request_firmware failed: %d\n", ret);
>> + dev_err(dev, "request_firmware %s failed: %d\n",
>> + rproc->firmware, ret);
>> goto unlock_mutex;
>> }
>>
>> @@ -2023,7 +2024,8 @@ int rproc_boot(struct rproc *rproc)
>> /* load firmware */
>> ret = request_firmware(&firmware_p, rproc->firmware, dev);
>> if (ret < 0) {
>> - dev_err(dev, "request_firmware failed: %d\n", ret);
>> + dev_err(dev, "request_firmware %s failed: %d\n",
>> + rproc->firmware, ret);
>
> That information is already available in sysfs

Hm, it's not in deferred probe reasons, so where can I find it in sysfs?

> but if you are really keen on it
> please do the same for rproc_trigger_auto_boot().
Sure.

Best regards,
Krzysztof