[PATCH v2 18/19] ARC: [plat-eznps] replace sync with proper cpu barrier
Vineet Gupta
Vineet.Gupta1 at synopsys.com
Tue Nov 17 05:32:00 PST 2015
On Tuesday 17 November 2015 06:14 PM, Peter Zijlstra wrote:
> On Tue, Nov 17, 2015 at 06:07:08PM +0530, Vineet Gupta wrote:
>> On Tuesday 17 November 2015 05:52 PM, Peter Zijlstra wrote:
>>>>> BTW since we are on the topic we have this loop in stack unwinder which can
>>>>> potentially cause RCU stalls, actual lockups etc. I was planning to add the
>>>>> following - does that seem fine to you.
>>> Worries me more than anything. How could you get stuck in there?
>>
>> No we not getting stuck in there - but this has potential to - if say unwind info
>> were corrupt (not seen that ever though).
>
> Better put in a failsafe for that anyway, just out of sheer paranoia :-)
Indeed, loop for say 32 times at max or some such.
> You should never report more than PERF_MAX_STACK_DEPTH thingies anyway,
> so once you've done that many loops, you're good to bail, right?
Yeah, although I need to ensure if arch code needs to check that. Plus the
unwinder is also used for things like ps wchan, /proc/<pid>/stack, crash dump etc.
>> The old code won't even respond to say a Ctrl+C if it were stuck !
>> Plus the reschedule there will keeps sched happy when say unraveling deep stack
>> frames with perf ?
>
> You're likely to call this code from interrupt/NMI context, there is no
> ^C or scheduling going to help you there.
For perf case, but there are other uses of unwinder as described above.
So in light of above, do u think that the cond_resched() + signal_pending check is
not needed and the bail if over N iters will be fine !
More information about the linux-snps-arc
mailing list