Kernel 4.1.28: Update TM user feature bits in scan_features()

Christian Zigotzky chzigotzky at bayern-mail.de
Thu Jul 14 23:25:16 AEST 2016


Hi Michael,

I was able to compile the kernel 4.1.28 with your patch. It boots and works.

Thanks,

Christian

On 14 July 2016 at 1:33 PM, Christian Zigotzky wrote:
> Hi Michael,
>
> When I received your email with your solution, I had already compiled 
> the kernel 4.1.28 with the following temporary solution:
>
> Not suitable for 4.1-stable (no PPC_FEATURE2_HTM_NOSC_COMP).
>
> -     * If the kernel doesn't support TM (ie 
> CONFIG_PPC_TRANSACTIONAL_MEM=n),
> -     * we don't want to turn on TM here, so we use the *_COMP versions
> -     * which are 0 if the kernel doesn't support TM.
> +     * If the kernel doesn't support TM (ie. 
> CONFIG_PPC_TRANSACTIONAL_MEM=n),
> +     * we don't want to turn on CPU_FTR_TM here, so we use 
> CPU_FTR_TM_COMP
> +     * which is 0 if the kernel doesn't support TM.
>       */
> -    {CPU_FTR_TM_COMP, 0, 0,
> -     PPC_FEATURE2_HTM_COMP|PPC_FEATURE2_HTM_NOSC_COMP, 22, 0, 0},
> +    {CPU_FTR_TM_COMP, 0, 0, 0,        22, 0, 0},
>  };
>
> The kernel boots and KVM PR works. I tested it with Mac-on-Linux/KVM 
> PR and Mac OS X Tiger as guest system. I will try your solution too.
>
> Many thanks for your fast response!
>
> Cheers,
>
> Christian
>
>
> On 14 July 2016 at 1:10 PM, Michael Ellerman wrote:
>> Christian Zigotzky<chzigotzky at bayern-mail.de>  writes:
>>
>>> Hi All,
>>>
>>> I tried to compile the kernel 4.1.28 today. Unfortunately it doesn't
>>> compile because of an undeclared variable PPC_FEATURE2_HTM_NOSC_COMP.
>>>
>>> Error message:
>>>
>>>     CHK     include/config/kernel.release
>>>     CHK     include/generated/uapi/linux/version.h
>>>     CHK     include/generated/utsrelease.h
>>>     CHK     include/generated/bounds.h
>>>     CHK     include/generated/asm-offsets.h
>>>     CALL    scripts/checksyscalls.sh
>>>     CHK     include/generated/compile.h
>>>     CALL    arch/powerpc/kernel/systbl_chk.sh
>>>     CC      arch/powerpc/kernel/prom.o
>>> arch/powerpc/kernel/prom.c:170:25: error: 'PPC_FEATURE2_HTM_NOSC_COMP'
>>> undeclared here (not in a function)
>>>      PPC_FEATURE2_HTM_COMP|PPC_FEATURE2_HTM_NOSC_COMP, 22, 0, 0},
>>>                            ^
>>> make[1]: *** [arch/powerpc/kernel/prom.o] Error 1
>>> make: *** [arch/powerpc/kernel] Error 2
>>>
>>> ---
>>>
>>> Commit:
>>>
>>> f49eb503f0f9ab66874a81992b14249a1c59b6ad
>>> Author: Anton Blanchard<anton at samba.org>
>>> Date:   Fri Apr 15 12:08:19 2016 +1000
>>>
>>>       powerpc: Update TM user feature bits in scan_features()
>>>
>>>       [ Upstream commit 4705e02498d6d5a7ab98dfee9595cd5e91db2017 ]
>>>
>>>       We need to update the user TM feature bits (PPC_FEATURE2_HTM and
>>>       PPC_FEATURE2_HTM) to mirror what we do with the kernel TM feature
>>>       bit.
>>>
>>>       At the moment, if firmware reports TM is not available we turn off
>>>       the kernel TM feature bit but leave the userspace ones on. Userspace
>>>       thinks it can execute TM instructions and it dies trying.
>>>
>>>       This (together with a QEMU patch) fixes PR KVM, which doesn't currently
>>>       support TM.
>>>
>>>       Signed-off-by: Anton Blanchard<anton at samba.org>
>>>       Cc:stable at vger.kernel.org
>>>       Signed-off-by: Michael Ellerman<mpe at ellerman.id.au>
>>>       Signed-off-by: Sasha Levin<sasha.levin at oracle.com>
>>>
>>> ---
>>>
>>> PPC_FEATURE2_HTM_NOSC_COMP isn't defined or doesn't exist in the
>>> following files:
>> Thanks.
>>
>>> arch/powerpc/include/asm/cputable.h
>>> arch/powerpc/kernel/cputable.c
>>> arch/powerpc/include/uapi/asm/tm.h
>>>
>>> That means the following patches aren't included in the 4.1.28 source code:
>> Sorry that's the wrong fix.
>>
>> PPC_FEATURE2_HTM_NOSC indicates the presence of a certain kernel
>> behaviour, which has *not* been backported to 4.1.
>>
>> The right fix is just to remove the reference to PPC_FEATURE2_HTM_NOSC
>> in 4.1.28.
>>
>> eg:
>>
>> diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
>> index 28dbbb0d12c4..9b19d96e9562 100644
>> --- a/arch/powerpc/kernel/prom.c
>> +++ b/arch/powerpc/kernel/prom.c
>> @@ -166,8 +166,7 @@ static struct ibm_pa_feature {
>>   	 * we don't want to turn on TM here, so we use the *_COMP versions
>>   	 * which are 0 if the kernel doesn't support TM.
>>   	 */
>> -	{CPU_FTR_TM_COMP, 0, 0,
>> -	 PPC_FEATURE2_HTM_COMP|PPC_FEATURE2_HTM_NOSC_COMP, 22, 0, 0},
>> +	{CPU_FTR_TM_COMP, 0, 0, PPC_FEATURE2_HTM_COMP, 22, 0, 0},
>>   };
>>   
>>   static void __init scan_features(unsigned long node, const unsigned char *ftrs,
>>
>>
>>
>> cheers
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20160714/1eeb44dc/attachment-0001.html>


More information about the Linuxppc-dev mailing list