Re: sparc: deadlock using perf with sched tracepoints and user callstacks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: David Ahern <david.ahern@xxxxxxxxxx>
Date: Tue, 31 Mar 2015 13:49:46 -0600

> The scheduler tracepoints can be hit with the run queue lock
> taken. Per the above while walking the userspace callchains page
> faults can cause paths where __schedule gets called again. The
> deadlock happens because it wants the runqueue lock again.
> 
> For PowerPC (b59a1bfcc2406ea75346977ad016cfe909a762ac) the solution
> was to disable pagefaults while walking userspace stacks. That does
> not work for sparc; rather that change results in process terminating
> due to a SIGBUS:

What is different in the PowerPC fault path vs. the Sparc one that
causes the SIGBUS for sparc where the PowerPC does not see it?

I don't understand where the SIGBUS comes from.  In a pagefault
disable section on sparc, in_atomic() should be true, thus we'll call
do_kernel_fault(), fall through to the TSTATE_PRIV code path and
simply run the exception handler.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux