Skip to contentSkip to conversation

ARM: EXYNOS: add Exynos Dual Cluster Support

PATCH Dave Martin 2 participants 2 messages Oct 7, 2013 Arm Samsung Exynos

lore
Share & tools
lore
#0 lore raw
Quoted 16 lines · Nicolas Pitre
Quoted 7 lines · Dave Martin

Review

Quoted 4 lines · Vyacheslav Tyrtov
(quoted diff) +4 -0
+static int exynos_power_up(unsigned int cpu, unsigned int cluster)
+{
+     int ret;
+     local_irq_disable();

Should there be a local_fiq_disable() here also?

No. In fact this is paired with

Quoted 1 line
Quoted 1 line

+ arch_spin_lock(&exynos_lock);

to create the equivalent of a arch_spin_lock_irq(). And the reason is:

Quoted 8 lines

/*
* We can't use regular spinlocks. In the switcher case, it is possible
* for an outbound CPU to call power_down() after its inbound counterpart
* is already live using the same logical CPU number which trips lockdep
* debugging.
*/

Otherwise we simply would have used spin_lock_irq().

Duh, of course. Looks like I suffered temporary brain failure there.

Quoted 1 line

No FIQs are supposed to ever race with this code.

There is an anomaly though: FIQ and external abort don't seem to get explicitly masked anywhere, either on the suspend or powerdown paths. Sometimes either or both remains unmasked (I tried some trace in the TC2 MCPM backend to confirm this.)

Looks like a possible omission in the arch/arm/ suspend and shutdown code, rather than a problem specific to MCPM.

Shouldn't be an issue for this series, though.

Cheers
---Dave

#1 lore raw
Quoted 10 lines · Dave Martin
Quoted 1 line · Nicolas Pitre

No FIQs are supposed to ever race with this code.

There is an anomaly though: FIQ and external abort don't seem to get explicitly masked anywhere, either on the suspend or powerdown paths. Sometimes either or both remains unmasked (I tried some trace in the TC2 MCPM backend to confirm this.)

Looks like a possible omission in the arch/arm/ suspend and shutdown code, rather than a problem specific to MCPM.

Possibly, yes.

Feel free to post a patch.

Nicolas