Re: [tip:x86/fpu] x86: Add new static_cpu_has() function using alternatives

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

 



On 05/18/2010 01:10 PM, Eric Dumazet wrote:
> Le mercredi 12 mai 2010 à 01:06 +0000, tip-bot for H. Peter Anvin a
> écrit :
>> Commit-ID:  a3c8acd04376d604370dcb6cd2143c9c14078a50
>> Gitweb:     http://git.kernel.org/tip/a3c8acd04376d604370dcb6cd2143c9c14078a50
>> Author:     H. Peter Anvin <hpa@xxxxxxxxx>
>> AuthorDate: Tue, 11 May 2010 17:47:07 -0700
>> Committer:  H. Peter Anvin <hpa@xxxxxxxxx>
>> CommitDate: Tue, 11 May 2010 17:47:07 -0700
>>
>> x86: Add new static_cpu_has() function using alternatives
>>
>> For CPU-feature-specific code that touches performance-critical paths,
>> introduce a static patching version of [boot_]cpu_has().  This is run
>> at alternatives time and is therefore not appropriate for most
>> initialization code, but on the other hand initialization code is
>> generally not performance critical.
>>
>> On gcc 4.5+ this uses the new "asm goto" feature.
> 
> Might be time to change Documentation/Changes about gcc requirements ...
> 

Well, this failure is in the fallback code.  What this seems to imply is
that gcc 3.4.6 doesn't know how to propagate what is already known to be
constant in an inline into an immediate.  This is a pretty big fail, and
yes, if it really is this broken it might just be time to declare gcc
3.4 dead.

> # make
>   CHK     include/linux/version.h
>   CHK     include/generated/utsrelease.h
>   CALL    scripts/checksyscalls.sh
>   CHK     include/generated/compile.h
>   CC      arch/x86/kernel/process_32.o
> /usr/src/linux-2.6/arch/x86/include/asm/cpufeature.h: In function
> `prepare_to_copy':
> /usr/src/linux-2.6/arch/x86/include/asm/cpufeature.h:315: warning: asm
> operand 1 probably doesn't match constraints
> /usr/src/linux-2.6/arch/x86/include/asm/cpufeature.h:315: error:
> impossible constraint in `asm'
> /usr/src/linux-2.6/arch/x86/include/asm/cpufeature.h:313: warning:
> 'flag' might be used uninitialized in this function
> make[2]: *** [arch/x86/kernel/process_32.o] Error 1
> make[1]: *** [arch/x86/kernel] Error 2
> make: *** [arch/x86] Error 2
> # gcc -v
> Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.6/specs
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info --enable-shared --enable-threads=posix
> --disable-checking --with-system-zlib --enable-__cxa_atexit
> --disable-libunwind-exceptions --enable-java-awt=gtk
> --host=i386-redhat-linux
> Thread model: posix
> gcc version 3.4.6 20060404 (Red Hat 3.4.6-10)
> 

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

[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux