Re: [PATCH] arm64: traps: disable irq in die()

2017-07-04 Thread qiaozhou
On 2017年07月05日 01:17, Will Deacon wrote: On Wed, Jun 28, 2017 at 05:04:12PM +0800, Qiao Zhou wrote: In current die(), the irq is disabled for __die() handle, not including the possible panic() handling. Since the log in __die() can take several hundreds ms, new irq might come and interrupt

Re: [PATCH] arm64: traps: disable irq in die()

2017-07-04 Thread qiaozhou
On 2017年07月05日 01:17, Will Deacon wrote: On Wed, Jun 28, 2017 at 05:04:12PM +0800, Qiao Zhou wrote: In current die(), the irq is disabled for __die() handle, not including the possible panic() handling. Since the log in __die() can take several hundreds ms, new irq might come and interrupt

Re: [PATCH] arm64: traps: disable irq in die()

2017-07-04 Thread Will Deacon
On Wed, Jun 28, 2017 at 05:04:12PM +0800, Qiao Zhou wrote: > In current die(), the irq is disabled for __die() handle, not > including the possible panic() handling. Since the log in __die() > can take several hundreds ms, new irq might come and interrupt > current die(). > > If the process

Re: [PATCH] arm64: traps: disable irq in die()

2017-07-04 Thread Will Deacon
On Wed, Jun 28, 2017 at 05:04:12PM +0800, Qiao Zhou wrote: > In current die(), the irq is disabled for __die() handle, not > including the possible panic() handling. Since the log in __die() > can take several hundreds ms, new irq might come and interrupt > current die(). > > If the process

[PATCH] *** arm64: traps: disable irq in die() ***

2017-06-28 Thread Qiao Zhou
I met several cases that die() is interrupted once irq is unlocked, on our platform which has multiple cpus, and enables panic_on_oops. It deadlock in some schedule related code, and hard-lockup is triggered. So the first criminal field is gone. So I want to protect the whole flow of die() from

[PATCH] arm64: traps: disable irq in die()

2017-06-28 Thread Qiao Zhou
In current die(), the irq is disabled for __die() handle, not including the possible panic() handling. Since the log in __die() can take several hundreds ms, new irq might come and interrupt current die(). If the process calling die() holds some critical resource, and some other process scheduled

[PATCH] *** arm64: traps: disable irq in die() ***

2017-06-28 Thread Qiao Zhou
I met several cases that die() is interrupted once irq is unlocked, on our platform which has multiple cpus, and enables panic_on_oops. It deadlock in some schedule related code, and hard-lockup is triggered. So the first criminal field is gone. So I want to protect the whole flow of die() from

[PATCH] arm64: traps: disable irq in die()

2017-06-28 Thread Qiao Zhou
In current die(), the irq is disabled for __die() handle, not including the possible panic() handling. Since the log in __die() can take several hundreds ms, new irq might come and interrupt current die(). If the process calling die() holds some critical resource, and some other process scheduled