Current-Users archive

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

Re: cpuctl panic(!)



On 2014/07/25 7:40, Patrick Welche wrote:
On Thu, Jul 24, 2014 at 11:36:43PM +0100, Patrick Welche wrote:
On Thu, Jul 24, 2014 at 11:21:29PM +0100, David Laight wrote:
On Wed, Jun 18, 2014 at 12:43:57PM +0100, Patrick Welche wrote:
Surprise (-current/amd64):

# cpuctl identify 0
cpu0: highest basic info 0000000d
cpu0: highest extended info 80000008
cpu0: "Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz"
cpu0: Intel Xeon E3-12xx, 2nd gen i7, i5, i3 2xxx (686-class), 2492.10 MHz
cpu0: family 0x6 model 0x2a stepping 0x7 (id 0x206a7)
...
cpu0: xsave features 0x7<x87,SSE,AVX>
cpu0: xsave instructions 0x1<XSAVEOPT>
cpu0: xsave area size: current 832, maximum 832, xgetbv enabled
[1]   Segmentation fault (core dumped) cpuctl identify 0

Program terminated with signal 11, Segmentation fault.
#0  0x00000000004053d0 in x86_xgetbv ()
(gdb) bt
#0  0x00000000004053d0 in x86_xgetbv ()
#1  0x000000000040467d in identifycpu (fd=3, cpuname=0x7f7fffffdb30 "cpu0")
     at /usr/src/usr.sbin/cpuctl/arch/i386.c:1824
#2  0x0000000000401cd0 in cpu_identify (argv=0x7f7fffffdbd8)
     at /usr/src/usr.sbin/cpuctl/cpuctl.c:277
#3  0x0000000000401644 in main (argc=2, argv=0x7f7fffffdbd0)
     at /usr/src/usr.sbin/cpuctl/cpuctl.c:116

The cpu features indicate that xgetbv is available, but when it is executes
there cpu faults.
Clearly that shouldn't happen.
IIRC qemu is buggy - is that bare metal?

It was bare metal - I need to remember which piece of metal though!

It seems to be fixed: this looks like the same cpu, and no core dump
on Tuesday's -current:

 I can reproduce on one of my machine.

 When I saw the first mail in this thread, I tried all of my
x86 machines, but I couldn't reproduce the problem. And then,
I noticed that it can be reproduced when compiling cpuctl with
LDSTATIC=-static on one of my machine.

(i386)
-------------------------------
five(msaitoh)% ./cpuctl identify 0
Cannot bind to target CPU.  Output may not accurately describe the target.
Run as root to allow binding.

cpu0: highest basic info 0000000d
cpu0: highest extended info 80000008
cpu0: "Intel(R) Xeon(R) CPU  @ 1.80GHz"
cpu0: Intel Xeon E3-1200v2 and 3rd gen core, Ivy Bridge (686-class), 1800.13 MHz
cpu0: family 0x6 model 0x3a stepping 0x9 (id 0x306a9)
cpu0: features 0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE>
cpu0: features 0xbfebfbff<MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2>
cpu0: features 0xbfebfbff<SS,HTT,TM,SBF>
cpu0: features1 0x7fbae3ff<SSE3,PCLMULQDQ,DTES64,MONITOR,DS-CPL,VMX,SMX,EST>
cpu0: features1 0x7fbae3ff<TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE41,SSE42,X2APIC>
cpu0: features1 0x7fbae3ff<POPCNT,DEADLINE,AES,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
cpu0: features2 0x28100000<XD,RDTSCP,EM64T>
cpu0: features3 0x1<LAHF>
cpu0: xsave features 0x7<x87,SSE,AVX>
cpu0: xsave instructions 0x1<XSAVEOPT>
cpu0: xsave area size: current 832, maximum 832, xgetbv enabled
Segmentation fault (core dumped)
------------------------------------

I suspect that the program is accessing garbage.




# cpuctl identify 0
cpu0: highest basic info 0000000d
cpu0: highest extended info 80000008
cpu0: "Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz"
cpu0: Intel Xeon E3-12xx, 2nd gen i7, i5, i3 2xxx (686-class), 2492.01 MHz
cpu0: family 0x6 model 0x2a stepping 0x7 (id 0x206a7)
cpu0: features 0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE>
cpu0: features 0xbfebfbff<MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2>
cpu0: features 0xbfebfbff<SS,HTT,TM,SBF>
cpu0: features1 0x1fbae3ff<SSE3,PCLMULQDQ,DTES64,MONITOR,DS-CPL,VMX,SMX,EST>
cpu0: features1 0x1fbae3ff<TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE41,SSE42,X2APIC>
cpu0: features1 0x1fbae3ff<POPCNT,DEADLINE,AES,XSAVE,OSXSAVE,AVX>
cpu0: features2 0x28100800<SYSCALL/SYSRET,XD,RDTSCP,EM64T>
cpu0: features3 0x1<LAHF>
cpu0: xsave features 0x7<x87,SSE,AVX>
cpu0: xsave instructions 0x1<XSAVEOPT>
cpu0: xsave area size: current 832, maximum 832, xgetbv enabled
cpu0: enabled xsave 0x7<x87,SSE,AVX>
cpu0: I-cache 32KB 64B/line 8-way, D-cache 32KB 64B/line 8-way
cpu0: L2 cache 256KB 64B/line 8-way
cpu0: L3 cache 3MB 64B/line 12-way
cpu0: 64B prefetching
cpu0: ITLB 64 4KB entries 4-way, 2M/4M: 8 entries
cpu0: DTLB 64 4KB entries 4-way, 2M/4M: 32 entries (L0)
cpu0: L2 STLB 512 4KB entries 4-way
cpu0: Initial APIC ID 0
cpu0: Cluster/Package ID 0
cpu0: Core ID 0
cpu0: SMT ID 0
cpu0: DSPM-eax 0x77<DTS,IDA,ARAT,PLN,CME,PLTM>
cpu0: DSPM-ecx 0x9<HWF,EPB>
cpu0: SEF highest subleaf 00000000
cpu0: microcode version 0x23, platform ID 4

Cheers,

Patrick



--
-----------------------------------------------
                SAITOH Masanobu (msaitoh%execsw.org@localhost
                                 msaitoh%netbsd.org@localhost)


Home | Main Index | Thread Index | Old Index