В Пт, 29/12/2017 в 12:34 -0800, Linus Torvalds пишет: > On Fri, Dec 29, 2017 at 12:22 PM, Alexander Tsoy <alexander@xxxxxxx> > wrote: > > > But double-checking that "-march=core2" case is definitely worth > > > looking into. Especially since there are clear indications that > > > it's > > > gcc version-dependent anyway. Alexander? > > > > Yes, the change suggested by Dave makes the problem go away. > > Ok, that's good information. > > It doesn't really explain *why* that commit 7f2590a110b8 > ("x86/entry/64: Use a per-CPU trampoline stack for IDT entries") ends > up being sensitive to that compiler option, though. > > So it narrows the cause down, but it doesn't really root-cause the > problem. It tends to be almost impossible to find differences in code > generation, because they are generally all over. > > Ho humm. What happens if you change the "-march=core2" to > "-mtune=core2"? Does it still boot? > > Because maybe the actual differences that "-march=core2" generates > might be easier to see when compared to "-mtune=core2". That's interesting. Compiled with -mtune=core2, the kernel fails to boot. diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 3e73bc255e4e..f4d8f9497666 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -127,8 +127,7 @@ else cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8) cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona) - cflags-$(CONFIG_MCORE2) += \ - $(call cc-option,-march=core2,$(call cc-option,- mtune=generic)) + cflags-$(CONFIG_MCORE2) += $(call cc-option,-mtune=core2) cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom) \ $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic)) cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,- mtune=generic)