[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <121d147b-3bca-4a1c-8906-ac30712c7693@altera.com>
Date: Tue, 16 Dec 2025 05:01:57 +0000
From: "Romli, Khairul Anuar" <khairul.anuar.romli@...era.com>
To: Dinh Nguyen <dinguyen@...nel.org>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/1] firmware: stratix10-svc: stop kernel thread once
service is completed
On 16/12/2025 11:50 am, Dinh Nguyen wrote:
>
>
> On 12/11/25 21:02, Khairul Anuar Romli wrote:
>> This patch resolves a customer-reported issue where the Stratix10 SVC
>> service layer caused maximum CPU utilization. The original logic only
>> stopped the thread if it was running and there was one or fewer active
>> clients. This overly restrictive condition prevented the thread from
>> stopping even when the application was active, leading to unnecessary CPU
>> consumption.
>>
>> The updated logic now stops the thread whenever it is running, regardless
>> of the number of active clients, ensuring better resource management and
>> resolving the performance issue.
>>
>> Fixes: 7ca5ce896524 ("firmware: add Intel Stratix10 service layer
>> driver")
>> Cc: stable@...r.kernel.org # 5.4+
>> Signed-off-by: Richard Gong <richard.gong@...el.com>
>> Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@...era.com>
>> ---
>> drivers/firmware/stratix10-svc.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/
>> stratix10-svc.c
>> index e3f990d888d7..ec39522711ea 100644
>> --- a/drivers/firmware/stratix10-svc.c
>> +++ b/drivers/firmware/stratix10-svc.c
>> @@ -1040,8 +1040,8 @@ EXPORT_SYMBOL_GPL(stratix10_svc_send);
>> */
>> void stratix10_svc_done(struct stratix10_svc_chan *chan)
>> {
>> - /* stop thread when thread is running AND only one active client */
>> - if (chan->ctrl->task && chan->ctrl->num_active_client <= 1) {
>> + /* stop thread when thread is running */
>> + if (chan->ctrl->task) {
>> pr_debug("svc_smc_hvc_shm_thread is stopped\n");
>> kthread_stop(chan->ctrl->task);
>> chan->ctrl->task = NULL;
>
> Applied!
>
> Thanks,
> Dinh
>
Cool. Thanks Dinh.
Best Regards,
Khairul
Powered by blists - more mailing lists