Bug 716765

Summary: Illegal instruction when running PHP in Xen dom0 on i5 2500
Product: [openSUSE] openSUSE 11.4 Reporter: James Oakley <jfunk>
Component: BasesystemAssignee: E-mail List <bnc-team-screening>
Status: VERIFIED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: jengelh
Version: Final   
Target Milestone: ---   
Hardware: x86   
OS: openSUSE 11.4   
Whiteboard:
Found By: Community User Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description James Oakley 2011-09-08 18:40:14 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.865.0 Safari/535.2

I cannot run PHP in Xen dom0 on my i5 2500 machine. I get an illegal instruction error. It works fine under the desktop kernel.

Here is what's in dmesg:

[73241.363760] php[32154] trap invalid opcode ip:7f674a1277a0 sp:7fff3ccd7d48 error:0 in ld-2.11.3.so[7f674a114000+1e000]


Here is the relevant gdb output:

arthur:~ # LD_PRELOAD=/lib64/libpthread.so.0 gdb php
...
(gdb) run
Starting program: /usr/bin/php 
[Thread debugging using libthread_db enabled]

Program received signal SIGILL, Illegal instruction.
_dl_x86_64_save_sse () at ../sysdeps/x86_64/dl-trampoline.S:189
189     ../sysdeps/x86_64/dl-trampoline.S: No such file or directory.
        in ../sysdeps/x86_64/dl-trampoline.S
(gdb) x/i $pc
=> 0x7ffff7df27a0 <_dl_x86_64_save_sse+48>:     vmovdqa %ymm0,%fs:0x80


Here are the Xen/glibc packages I have installed:

kernel-xen-2.6.37.6-0.7.1.x86_64
glibc-2.11.3-12.17.1.x86_64


This is my cpuinfo:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz
stepping        : 7
cpu MHz         : 1600.000
cache size      : 6144 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc aperfmperf pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes avx hypervisor lahf_lm ida arat epb pln pts dts
bogomips        : 6586.95
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:






Reproducible: Always
Comment 1 James Oakley 2011-09-13 21:11:39 UTC
This issue does not appear to occur in 12.1 M5 on the same hardware.
Comment 2 Jan Beulich 2011-11-02 12:39:11 UTC
This is a problem in glibc (fixed only in 2.14.1 and newer) in that not only the AVX bit of CPUID output must be checked, but also the OSXSAVE one as well as XGETBV output.

I can't, however, tell who is our maintainer of glibc at present.
Comment 3 Kun Kun Zhang 2012-03-08 04:47:59 UTC
Long time no response.So closed.Feel free to reopen it.Thanks.
Comment 4 Jan Engelhardt 2012-04-13 08:08:41 UTC
As this is resolved in openSUSE 12.1 by means of having glibc-2.14.1, might as well mark this as fixed.