Thread (23 messages) 23 messages, 4 authors, 2020-02-24

Re: [RFC PATCH v2 07/13] firmware: arm_scmi: Add notification dispatch and delivery

From: Lukasz Luba <lukasz.luba@arm.com>
Date: 2020-02-24 10:00:01
Also in: lkml


On 2/21/20 7:11 PM, Lukasz Luba wrote:

On 2/21/20 7:01 PM, Cristian Marussi wrote:
quoted
Hi Lukasz

Thanks for your feedback !

On 21/02/2020 13:25, Lukasz Luba wrote:
quoted
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:
quoted
Add core SCMI Notifications dispatch and delivery support logic 
which is
[snip]
quoted
@@ -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
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help