Thread (158 messages) 158 messages, 14 authors, 2016-02-11

Re: [PATCH v5 2/6] cpu_isolated: add initial support

From: Chris Metcalf <hidden>
Date: 2015-08-26 15:55:37
Also in: lkml

On 08/26/2015 11:26 AM, Frederic Weisbecker wrote:
On Wed, Aug 12, 2015 at 02:22:09PM -0400, Chris Metcalf wrote:
quoted
On 08/12/2015 12:00 PM, Frederic Weisbecker wrote:
quoted
quoted
+#ifdef CONFIG_CPU_ISOLATED
+void cpu_isolated_wait(void)
+{
+	set_current_state(TASK_INTERRUPTIBLE);
+	_cpu_idle();
+	set_current_state(TASK_RUNNING);
+}
I'm still uncomfortable with that. A wake up model could work?
I don't know exactly what you have in mind.  The theory is that
at this point we're ready to return to user space and we're just
waiting for a timer tick that is guaranteed to arrive, since there
is something pending for the timer.
Hmm, ok I'm going to discuss that in the new version. One worry is that
it gets racy and we sleep there for ever.
quoted
And, this is an arch-specific method anyway; the generic method
is actually checking to see if a signal has been delivered,
scheduling is needed, etc., each time around the loop, so if
you're not sure your architecture will do the right thing, just
don't provide a method that idles while waiting.  For tilegx I'm
sure it works correctly, so I'm OK providing that method.
Yes but we do busy waiting on all other archs then. And since we can wait
for a while there, it doesn't look sane.
We can wait for a while (potentially multiple ticks), which is
certainly a long time, but that's what the user asked for.

Since we're checking signals and scheduling in the busy loop,
we definitely won't get into some nasty unkillable state, which
would be the real worst-case.

I think the question is, could a process just get stuck there
somehow in the normal course of events, where there is a
future event on the tick_cpu_device, but no interrupt is
enabled that will eventually deal with it?  This seems like it
would be a pretty fundamental timekeeping bug, so my
assumption here is that can't happen, but maybe...?

-- 
Chris Metcalf, EZChip Semiconductor
http://www.ezchip.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help