Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1432222
| From | Dmitry Vyukov <dvyukov@google.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] x86: prevent gcc from emitting SSE into boot code |
| Date | 2016-06-27 21:00 +0200 |
| Message-ID | <rOJVg-454-17@gated-at.bofh.it> (permalink) |
| References | <rMUi5-6sA-7@gated-at.bofh.it> <rMWMW-87F-3@gated-at.bofh.it> <rOJVg-454-19@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Mon, Jun 27, 2016 at 8:53 PM, Ingo Molnar <mingo@kernel.org> wrote: > > * Dmitry Vyukov <dvyukov@google.com> wrote: > >> On Wed, Jun 22, 2016 at 7:37 PM, Dmitry Vyukov <dvyukov@google.com> wrote: >> > Latest gcc manages to emit MOVDQA into boot code >> > which leads to crashes. Add more -mno-see flags. > > Which GCC version is that? > >> > >> > Signed-off-by: Dmitry Vyukov <dvyukov@google.com> >> > --- >> > arch/x86/boot/compressed/Makefile | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile >> > index f135688..7eaafb8 100644 >> > --- a/arch/x86/boot/compressed/Makefile >> > +++ b/arch/x86/boot/compressed/Makefile >> > @@ -31,7 +31,7 @@ KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING >> > cflags-$(CONFIG_X86_32) := -march=i386 >> > cflags-$(CONFIG_X86_64) := -mcmodel=small >> > KBUILD_CFLAGS += $(cflags-y) >> > -KBUILD_CFLAGS += -mno-mmx -mno-sse >> > +KBUILD_CFLAGS += -mno-mmx -mno-sse -mno-sse2 -mno-sse3 >> > KBUILD_CFLAGS += $(call cc-option,-ffreestanding) >> > KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) >> > >> > -- >> > 2.8.0.rc3.226.g39d4020 >> >> >> I withdraw this patch. >> >> From off-list discussion: >> >> "-mno-sse alone should disable all SSE/AVX instructions. If not, >> please file a GCC bug report". > > So the GCC documentation says: > > -mmmx > -mno-mmx > -msse > -mno-sse > -msse2 > -mno-sse2 > -msse3 > -mno-sse3 > -m3dnow > -mno-3dnow > These switches enable or disable the use of built-in functions that allow > direct access to the MMX, SSE, SSE2, SSE3 and 3Dnow extensions of the > instruction set. > > Technically -mno-mmx won't turn off SSE instructions because they are independent. > Do we really want to rely on an undocumented property of -mno-sse (clearly broken > in at least one released GCC version), especially as the fix is so easy? > > Thanks, > > Ingo Unfortunately part of this discussion gone private. Bringing it public. This was not necessary a release version of gcc. ===== The full story is that I spent quite some time debugging it with some non-release gcc5 version a while ago, and then I was just sitting on this patch. Now I am using release gcc6. I've just checked and the kernel boots without these new flags. I thought that -mno-see does not have to prevent newer SSE instructions, so this patch will save somebody debugging in future. If the existing -mno-see should prevent all SSE instructions, then I guess we don't need this patch. And if not, then, no, I don't have a test case right now. =====
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
Re: [PATCH] x86: prevent gcc from emitting SSE into boot code Dmitry Vyukov <dvyukov@google.com> - 2016-06-27 21:00 +0200
csiph-web