Re: [PATCH v2] rt: x86: enable preemption in IST exception for x86-32

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

 



On 12/22/2015 4:06 AM, Sebastian Andrzej Siewior wrote:
* Yang Shi | 2015-12-14 15:06:44 [-0800]:

Mainline kernel commit 959274753857efe9c5f1ba35fe727f51e9aa128d
("x86, traps: Track entry into and exit from IST context"), introduced
ist_enter which disables preemption uncondiontionally for both x86-64 and
x86-32. However, x86-32 does not have an IST and the stack still belongs to
the current task and there is no problem in scheduling out the task.

no no. So from a quick look I *assumed* you merged your v1 and revert of the
Steven's patch into one piece. But now I see that you don't disable preemption
64bit which means you revert upstream change.

No, I neither merged my v1 patch nor reverted Steven's patch.

Directed by Thomas's suggestion in v1 patch review, I looked into the code further.

Currently, the code does:

ist_enter disables preemption unconditionally for both x86-64 and x86-32 (by mainline commit). So, for the x86-64 part, it is fine since the preemption should be disabled because ist exception will use per CPU stack and signal delay send is necessary.

But, disabling preemption on x86-32 is unnecessary since it doesn't have ist stacks, so the v2 patch re-enables preemption for x86-32.

upstream commit 959274753857efe9c5f1ba35fe727f51e9aa128d ("x86, traps: Track entry into and exit from IST context") commit log has more details for the ist stacks.

So, #1) v1 patch is not needed anymore since x86-32 still doesn't need signal delay send in v2, #2) don't need revert Steven's patch, the logic is just changed slightly (#ifdef CONFIG_X86_64 --> #if !defined(CONFIG_X86_64)) and adopted the mainline APIs.

So, this is definitely a new approach for fixing the same problem and *not* an incremental patch.


Here is what happens:
- I drop your v2
- I merge your v1 with updated patch description
- I revert "x86: Do not disable preemption in int3 on 32bit". If someone
   wants to skip the delayed signal on 32bit please address this upstream
   first (that is skip the preempt_disable() on 32bit if it is not
   required there).
- Yang Shi, please send a changelong if you send incremental patches.

Sorry for any inconvenience. I should made the comment clearer at the first place even though it is not an incremental patch.

Thanks,
Yang


Sebastian


--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux