<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/arc/kernel/mcip.c, branch v4.5</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.5</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.5'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-02-24T08:45:39Z</updated>
<entry>
<title>arc: SMP: CONFIG_ARC_IPI_DBG cleanup</title>
<updated>2016-02-24T08:45:39Z</updated>
<author>
<name>Valentin Rothberg</name>
<email>valentinrothberg@gmail.com</email>
</author>
<published>2016-02-24T08:40:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9ef2d8be55652804205a34dcbfec78b933c0ea30'/>
<id>urn:sha1:9ef2d8be55652804205a34dcbfec78b933c0ea30</id>
<content type='text'>
Previous Commit ("ARC: SMP: No need for CONFIG_ARC_IPI_DBG") removed
the Kconfig option ARC_IPI_DBG.  Remove the last reference on this
option.

Signed-off-by: Valentin Rothberg &lt;valentinrothberg@gmail.com&gt;
Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: SMP: No need for CONFIG_ARC_IPI_DBG</title>
<updated>2016-02-24T05:37:32Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2016-02-19T02:48:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d73b73f5626ac0b131b31b7b9457e19201bc570b'/>
<id>urn:sha1:d73b73f5626ac0b131b31b7b9457e19201bc570b</id>
<content type='text'>
This was more relevant during SMP bringup.

The warning for bogus msg better be visible always.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARCv2: Elide sending new cross core intr if receiver didn't ack prev</title>
<updated>2016-02-24T05:37:31Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2016-02-19T02:27:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3dea30ca5bef0e013abe857057a952a9d6757fe5'/>
<id>urn:sha1:3dea30ca5bef0e013abe857057a952a9d6757fe5</id>
<content type='text'>
ARConnect/MCIP IPI sending has a retry-wait loop in case caller had
not seen a previous such interrupt. Turns out that it is not needed at
all. Linux cross core calling allows coalescing multiple IPIs to same
receiver - it is fine as long as there is one.

This logic is built into upper layer already, at a higher level of
abstraction. ipi_send_msg_one() sets the actual msg payload, but it only
calls MCIP IPI sending if msg holder was empty (using
atomic-set-new-and-get-old construct). Thus it is unlikely that the
retry-wait looping was ever getting exercised at all.

Cc: Chuck Jordan &lt;cjordan@synopsys.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARCv2: SMP: Push IPI_IRQ into IPI provider</title>
<updated>2016-02-24T05:37:31Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2016-02-23T08:05:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9681787930cec7cee77db0a93c747153ef962b8a'/>
<id>urn:sha1:9681787930cec7cee77db0a93c747153ef962b8a</id>
<content type='text'>
Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARCv2: SMP: Emulate IPI to self using software triggered interrupt</title>
<updated>2016-02-24T05:37:28Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2016-02-23T06:25:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bb143f814ea488769ca2e79e0b376139cb5f134b'/>
<id>urn:sha1:bb143f814ea488769ca2e79e0b376139cb5f134b</id>
<content type='text'>
ARConnect/MCIP Inter-Core-Interrupt module can't send interrupt to
local core. So use core intc capability to trigger software
interrupt to self, using an unsued IRQ #21.

This showed up as csd deadlock with LTP trace_sched on a dual core
system. This test acts as scheduler fuzzer, triggering all sorts of
schedulting activity. Trouble starts with IPI to self, which doesn't get
delivered (effectively lost due to H/w capability), but the msg intended
to be sent remain enqueued in per-cpu @ipi_data.

All subsequent IPIs to this core from other cores get elided due to the
IPI coalescing optimization in ipi_send_msg_one() where a pending msg
implies an IPI already sent and assumes other core is yet to ack it.
After the elided IPI, other core simply goes into csd_lock_wait()
but never comes out as this core never sees the interrupt.

Fixes STAR 9001008624

Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: &lt;stable@vger.kernel.org&gt;        [4.2]
Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARCv2: boot print Low Latency Memory</title>
<updated>2016-02-18T12:00:17Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2016-02-15T10:28:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=98341f7dc9d9080d7999654ab589657272559b04'/>
<id>urn:sha1:98341f7dc9d9080d7999654ab589657272559b04</id>
<content type='text'>
Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARCv2: clocksource: Rename GRTC -&gt; GFRC ...</title>
<updated>2016-01-29T11:21:02Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2016-01-22T08:57:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d584f0fb041d86b9605fae1f0ed9e268f217daa9'/>
<id>urn:sha1:d584f0fb041d86b9605fae1f0ed9e268f217daa9</id>
<content type='text'>
... it is now called Global Free Running Counter

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: rename smp operation init_irq_cpu() to init_per_cpu()</title>
<updated>2015-12-17T07:26:43Z</updated>
<author>
<name>Noam Camus</name>
<email>noamc@ezchip.com</email>
</author>
<published>2015-12-16T01:10:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=b474a02382b75f4a75c4e94eb9847aad28dd4a37'/>
<id>urn:sha1:b474a02382b75f4a75c4e94eb9847aad28dd4a37</id>
<content type='text'>
This will better reflect its description i.e. "any needed setup..."
and not just do an "IPI request".

Signed-off-by: Noam Camus &lt;noamc@ezchip.com&gt;
Acked-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARCv2: smp: [plat-*]: No need to explicitly call mcip_init_smp()</title>
<updated>2015-10-28T10:43:41Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2015-10-12T09:45:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=aa0efcde45a36d1ea2bc5bde4d47f36ec17502de'/>
<id>urn:sha1:aa0efcde45a36d1ea2bc5bde4d47f36ec17502de</id>
<content type='text'>
MCIP now registers it's own per cpu setup routine (for IPI IRQ request)
using smp_ops.init_irq_cpu().

So no need for platforms to do that. This now completely decouples
platforms from MCIP.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARCv2: smp: [plat-*]: No need to explicitly call mcip_init_early_smp()</title>
<updated>2015-10-28T10:43:40Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2015-10-12T11:08:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=26b8f996239884451aeb1213747e3ca808c26024'/>
<id>urn:sha1:26b8f996239884451aeb1213747e3ca808c26024</id>
<content type='text'>
MCIP now registers it's own probe callback with smp_ops.init_early_smp()
which is called by ARC common code, so no need for platforms to do that.

This decouples the platforms and MCIP and helps confine MCIP details
to it's own file.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
</feed>
