Re: [PATCHv3] arm64/cpufeature: don't use mutex in bringup path

2017-05-12 Thread Mark Rutland
On Fri, May 12, 2017 at 06:07:22PM +0100, Will Deacon wrote: > On Fri, May 12, 2017 at 11:15:20AM +0100, Mark Rutland wrote: > > Currently, cpus_set_cap() calls static_branch_enable_cpuslocked(), which > > must take the jump_label mutex. > > > > We call cpus_set_cap() in the secondary bringup

Re: [PATCHv3] arm64/cpufeature: don't use mutex in bringup path

2017-05-12 Thread Mark Rutland
On Fri, May 12, 2017 at 06:07:22PM +0100, Will Deacon wrote: > On Fri, May 12, 2017 at 11:15:20AM +0100, Mark Rutland wrote: > > Currently, cpus_set_cap() calls static_branch_enable_cpuslocked(), which > > must take the jump_label mutex. > > > > We call cpus_set_cap() in the secondary bringup

Re: [PATCHv3] arm64/cpufeature: don't use mutex in bringup path

2017-05-12 Thread Will Deacon
On Fri, May 12, 2017 at 11:15:20AM +0100, Mark Rutland wrote: > Currently, cpus_set_cap() calls static_branch_enable_cpuslocked(), which > must take the jump_label mutex. > > We call cpus_set_cap() in the secondary bringup path, from the idle > thread where interrupts are disabled. Taking a mutex

Re: [PATCHv3] arm64/cpufeature: don't use mutex in bringup path

2017-05-12 Thread Will Deacon
On Fri, May 12, 2017 at 11:15:20AM +0100, Mark Rutland wrote: > Currently, cpus_set_cap() calls static_branch_enable_cpuslocked(), which > must take the jump_label mutex. > > We call cpus_set_cap() in the secondary bringup path, from the idle > thread where interrupts are disabled. Taking a mutex

Re: [PATCHv3] arm64/cpufeature: don't use mutex in bringup path

2017-05-12 Thread Suzuki K Poulose
On 12/05/17 11:15, Mark Rutland wrote: Currently, cpus_set_cap() calls static_branch_enable_cpuslocked(), which must take the jump_label mutex. We call cpus_set_cap() in the secondary bringup path, from the idle thread where interrupts are disabled. Taking a mutex in this path "is a NONO"

Re: [PATCHv3] arm64/cpufeature: don't use mutex in bringup path

2017-05-12 Thread Suzuki K Poulose
On 12/05/17 11:15, Mark Rutland wrote: Currently, cpus_set_cap() calls static_branch_enable_cpuslocked(), which must take the jump_label mutex. We call cpus_set_cap() in the secondary bringup path, from the idle thread where interrupts are disabled. Taking a mutex in this path "is a NONO"

Re: [PATCHv3] arm64/cpufeature: don't use mutex in bringup path

2017-05-12 Thread Marc Zyngier
On 12/05/17 11:15, Mark Rutland wrote: > Currently, cpus_set_cap() calls static_branch_enable_cpuslocked(), which > must take the jump_label mutex. > > We call cpus_set_cap() in the secondary bringup path, from the idle > thread where interrupts are disabled. Taking a mutex in this path "is a >

Re: [PATCHv3] arm64/cpufeature: don't use mutex in bringup path

2017-05-12 Thread Marc Zyngier
On 12/05/17 11:15, Mark Rutland wrote: > Currently, cpus_set_cap() calls static_branch_enable_cpuslocked(), which > must take the jump_label mutex. > > We call cpus_set_cap() in the secondary bringup path, from the idle > thread where interrupts are disabled. Taking a mutex in this path "is a >

[PATCHv3] arm64/cpufeature: don't use mutex in bringup path

2017-05-12 Thread Mark Rutland
Currently, cpus_set_cap() calls static_branch_enable_cpuslocked(), which must take the jump_label mutex. We call cpus_set_cap() in the secondary bringup path, from the idle thread where interrupts are disabled. Taking a mutex in this path "is a NONO" regardless of whether it's contended, and

[PATCHv3] arm64/cpufeature: don't use mutex in bringup path

2017-05-12 Thread Mark Rutland
Currently, cpus_set_cap() calls static_branch_enable_cpuslocked(), which must take the jump_label mutex. We call cpus_set_cap() in the secondary bringup path, from the idle thread where interrupts are disabled. Taking a mutex in this path "is a NONO" regardless of whether it's contended, and