Florian Weimer <fwei...@redhat.com> writes: > On 10/12/2017 12:17 PM, Michael Ellerman wrote: >> + pr_info("Enabling TM (Transactional Memory) with Suspend Disabled\n"); >> + cur_cpu_spec->cpu_features |= CPU_FTR_TM; >> + cur_cpu_spec->cpu_user_features2 |= PPC_FEATURE2_HTM_NO_SUSPEND; >> + tm_suspend_disabled = true; > > This doesn't look right because if suspend is not available, you need to > clear the original PPC_FEATURE2_HTM flag because the semantics are not > right, so that applications can use fallback code. Otherwise, > applications may incorrectly select the HTM code and break if running on > a system which supports HTM, but without the suspend state.
Just clarifying: it won't break an application, but abort the transaction, which can cause a performance hit. > The new flag should say that HTM is supported, but without the suspend > state, and it should be always set if PPC_FEATURE2_HTM is set. If we change the semantics of this bit, old applications that don't suspend transactions won't run on these processors, even if they're safe to run. If we adopt the current semantics, only applications that enter in suspend state will have to be modified in order to not get a performance regression. -- Tulio Magno