Message ID | 20200616140217.104362-1-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [kvm-unit-tests] x86: disable SSE on 32-bit hosts | expand |
On 16/06/2020 16.02, Paolo Bonzini wrote: > On 64-bit hosts we are disabling SSE and SSE2. Depending on the > compiler however it may use movq instructions for 64-bit transfers > even when targeting 32-bit processors; when CR4.OSFXSR is not set, > this results in an undefined opcode exception, so tell the compiler > to avoid those instructions on 32-bit hosts as well. > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > x86/Makefile.i386 | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/x86/Makefile.i386 b/x86/Makefile.i386 > index d801b80..be9d6bc 100644 > --- a/x86/Makefile.i386 > +++ b/x86/Makefile.i386 > @@ -1,6 +1,7 @@ > cstart.o = $(TEST_DIR)/cstart.o > bits = 32 > ldarch = elf32-i386 > +COMMON_CFLAGS += -mno-sse -mno-sse2 That's likely a good idea, but it still does not fix the problem in the gitlab-ci: https://gitlab.com/huth/kvm-unit-tests/-/jobs/597747782#L1934 ? Thomas
On 16/06/20 17:17, Thomas Huth wrote: > On 16/06/2020 16.02, Paolo Bonzini wrote: >> On 64-bit hosts we are disabling SSE and SSE2. Depending on the >> compiler however it may use movq instructions for 64-bit transfers >> even when targeting 32-bit processors; when CR4.OSFXSR is not set, >> this results in an undefined opcode exception, so tell the compiler >> to avoid those instructions on 32-bit hosts as well. >> >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> >> --- >> x86/Makefile.i386 | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/x86/Makefile.i386 b/x86/Makefile.i386 >> index d801b80..be9d6bc 100644 >> --- a/x86/Makefile.i386 >> +++ b/x86/Makefile.i386 >> @@ -1,6 +1,7 @@ >> cstart.o = $(TEST_DIR)/cstart.o >> bits = 32 >> ldarch = elf32-i386 >> +COMMON_CFLAGS += -mno-sse -mno-sse2 > > That's likely a good idea, but it still does not fix the problem in the > gitlab-ci: > > https://gitlab.com/huth/kvm-unit-tests/-/jobs/597747782#L1934 Hmm, it does fix everything here. How does one go debugging what's happening in the CI? Paolo
diff --git a/x86/Makefile.i386 b/x86/Makefile.i386 index d801b80..be9d6bc 100644 --- a/x86/Makefile.i386 +++ b/x86/Makefile.i386 @@ -1,6 +1,7 @@ cstart.o = $(TEST_DIR)/cstart.o bits = 32 ldarch = elf32-i386 +COMMON_CFLAGS += -mno-sse -mno-sse2 cflatobjs += lib/x86/setjmp32.o
On 64-bit hosts we are disabling SSE and SSE2. Depending on the compiler however it may use movq instructions for 64-bit transfers even when targeting 32-bit processors; when CR4.OSFXSR is not set, this results in an undefined opcode exception, so tell the compiler to avoid those instructions on 32-bit hosts as well. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- x86/Makefile.i386 | 1 + 1 file changed, 1 insertion(+)