Re: [PATCH RT] arm64: fpsimd: use a local_lock() in addition to local_bh_disable()
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2018-07-11 13:26:00
Also in:
linux-arm-kernel, lkml
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2018-07-11 13:26:00
Also in:
linux-arm-kernel, lkml
On Tue, 22 May 2018 19:33:33 +0200 Sebastian Andrzej Siewior [off-list ref] wrote:
On 2018-05-22 13:24:29 [-0400], Steven Rostedt wrote:quoted
On Tue, 22 May 2018 19:21:16 +0200 Sebastian Andrzej Siewior [off-list ref] wrote:quoted
On 2018-05-22 13:10:04 [-0400], Steven Rostedt wrote:quoted
On Thu, 17 May 2018 14:40:06 +0200 Sebastian Andrzej Siewior [off-list ref] wrote:quoted
+static DEFINE_LOCAL_IRQ_LOCK(fpsimd_lock); /* * Update current's FPSIMD/SVE registers from thread_struct. *@@ -594,6 +595,7 @@ int sve_set_vector_length(struct task_struct *task, * non-SVE thread. */ if (task == current) { + local_lock(fpsimd_lock); local_bh_disable();I'm surprised that we don't have a "local_lock_bh()"?right. Like the last time when we introduced a global lock with no locking context?I meant, we could have local_lock_bh(fpsimd_lock); that would turn into a local_bh_disable() when !PREEMPT_RT.Oh that part. That could be possible I guess. I need to look into the second part which disables preemption while the FPU is taken.
Did you decide to create a local_lock_bh(lock) function? I don't see it. And should this be backported to 4.14-rt too? You state you saw this in 4.16-rt, but did you start doing something different then, or did the kernel change? Thanks! -- Steve