[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ce10673e-48a1-980c-cf05-a4fe2040d96f@arm.com>
Date: Mon, 24 Feb 2020 09:59:55 +0000
From: Lukasz Luba <lukasz.luba@....com>
To: Cristian Marussi <cristian.marussi@....com>,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org
Cc: sudeep.holla@....com, james.quinlan@...adcom.com,
Jonathan.Cameron@...wei.com
Subject: Re: [RFC PATCH v2 07/13] firmware: arm_scmi: Add notification
dispatch and delivery
On 2/21/20 7:11 PM, Lukasz Luba wrote:
>
>
> On 2/21/20 7:01 PM, Cristian Marussi wrote:
>> Hi Lukasz
>>
>> Thanks for your feedback !
>>
>> On 21/02/2020 13:25, Lukasz Luba wrote:
>>> Hi Cristian,
>>>
>>> I didn't want to jump into your discussion with Jim in other broader
>>> thread with this small thought, so I added a comment below.
>>>
>>> On 2/14/20 3:35 PM, Cristian Marussi wrote:
>>>> Add core SCMI Notifications dispatch and delivery support logic
>>>> which is
>>> [snip]
>>>
>>>> @@ -840,6 +1071,11 @@ static struct scmi_notify_ops notify_ops = {
>>>> */
>>>> int scmi_notification_init(struct scmi_handle *handle)
>>>> {
>>>> + scmi_notify_wq = alloc_workqueue("scmi_notify",
>>>> + WQ_UNBOUND | WQ_FREEZABLE, 0);
>>>
>>> I think it might limit some platforms. It depends on their workload.
>>> If they have some high priority workloads which rely on this mechanisms,
>>> they might need a RT task here. The workqueues would be scheduled in
>>> CFS, so it depends on workload in there (we might even see 10s ms delays
>>> in scheduling-up them). If we use RT we would grab the CPU from CFS.
>>>
>>> It would be good if it is a customization option: which mechanism
>>> to use based on some a parameter. Then we could create:
>>> a) workqueue with the flags above
>>> b) workqueue with WQ_HIGHPRI (limited by minimum nice)
>>> c) kthread_create_worker() with RT/DL/FIFO sched policy
>>> (with also a parameterized priority)
>>> In default clients might use a) but when they want to tune their
>>> platform, they might change only a parameter in their scmi code,
>>> not maintaining a patch for the RT function out of tree.
>>
>> In this series, I have not addressed configurability issues at all (as
>> noted in the cover):
>> in fact I was thinking that stuff like WQ_HIGHPRI flags and
>> per-protocol queue sizes could
>> be beneficial to be customizable depending on the specific platform,
>> but I had not gone to
>> the extreme of thinking of adopting a dedicated RT kthread as a
>> worker...good point...it
>> makes surely sense to have this configurable option to try to reduce
>> the latency where possible.
>>
>> I think it's important to give the user the possibility to configure
>> the deferred worker
>> as you suggested, if the user decides to rely on Linux to handle a
>> critical notification,
>> but I'd prefer queuing up this work you suggested on a different
>> series on top of this one.
>> (which is starting to be a little to much voluminous...for being just
>> the core support)
>
> Agree, you can build these features incrementally.
Although, a WQ_SYSFS flag wouldn't harm too much this version and might
give possibility to tune/experiment with it.
>
> Regards,
> Lukasz
>
Powered by blists - more mailing lists