[MPlayer-users] New CPU-detection code in current CVS, crash on Athlon

Michael Mauch michael.mauch at gmx.de
Tue Mar 19 22:09:03 CET 2002


after CVS update of today, MPlayer crashes shortly after caching the
first chunk of a (S)VCD. MPlayer worked great before with the same
(S)VCD (I'm sorry I don't know when I CVS updated before).

My system once was SuSE 6.1, but in the mean time I updated and built
almost everything from sources.

% uname -a
Linux elmicha 2.4.18 #1 Die Mär 12 22:36:29 CET 2002 i686 unknown

% ls -l /lib/libc[.-]* 
-rwxr-xr-x    1 root     root      4140854 Nov  6  2000 /lib/libc-2.1.3.so
lrwxrwxrwx    1 root     root           13 Sep  9  2001 /lib/libc.so.4 -> libc.so.4.7.6
-rwxr-xr-x    1 root     root       634880 Apr 29  1996 /lib/libc.so.4.7.6
lrwxrwxrwx    1 root     root           13 Sep  9  2001 /lib/libc.so.6 -> libc-2.1.3.so

% X -version

XFree86 Version 4.1.0 / X Window System
(protocol Version 11, revision 0, vendor release 6510)
Release Date: 2 June 2001
	If the server is older than 6-12 months, or if your card is
	newer than the above date, look for a newer version before
	reporting problems.  (See http://www.XFree86.Org/FAQ)
Build Operating System: SuSE Linux [ELF] SuSE
Module Loader present

% gcc -v
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/specs
gcc version 2.95.3 20010315 (release)
% ld -v
GNU ld version 2.11.2 (with BFD 2.11.2)

% as --version
GNU assembler 2.11.2
Copyright 2001 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.
This assembler was configured for a target of `i686-pc-linux-gnu'.

% cat /proc/cpuinfo
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 6
model		: 2
model name	: AMD Athlon(tm) Processor
stepping	: 1
cpu MHz		: 706.969
cache size	: 512 KB
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips	: 1409.02

% lspci -v
00:00.0 Host bridge: Advanced Micro Devices [AMD] AMD-751 [Irongate] System Controller (rev 25)
	Flags: bus master, medium devsel, latency 120
	Memory at e0000000 (32-bit, prefetchable) [size=128M]
	Memory at eedff000 (32-bit, prefetchable) [size=4K]
	I/O ports at d400 [disabled] [size=4]
	Capabilities: [a0] AGP version 1.0

00:01.0 PCI bridge: Advanced Micro Devices [AMD] AMD-751 [Irongate] AGP Bridge (rev 01) (prog-if 00 [Normal decode])
	Flags: bus master, 66Mhz, medium devsel, latency 120
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=32
	I/O behind bridge: 0000b000-0000bfff
	Memory behind bridge: eee00000-efefffff
	Prefetchable memory behind bridge: dac00000-decfffff

00:07.0 ISA bridge: Advanced Micro Devices [AMD] AMD-756 [Viper] ISA (rev 01)
	Flags: bus master, medium devsel, latency 0

00:07.1 IDE interface: Advanced Micro Devices [AMD] AMD-756 [Viper] IDE (rev 07) (prog-if 8a [Master SecP PriP])
	Flags: bus master, medium devsel, latency 32
	I/O ports at f000 [size=16]

00:07.3 Bridge: Advanced Micro Devices [AMD] AMD-756 [Viper] ACPI (rev 03)
	Flags: medium devsel

00:07.4 USB Controller: Advanced Micro Devices [AMD] AMD-756 [Viper] USB (rev 06) (prog-if 10 [OHCI])
	Flags: bus master, medium devsel, latency 16, IRQ 10
	Memory at efffe000 (32-bit, non-prefetchable) [size=4K]

00:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev 10)
	Subsystem: Allied Telesyn International: Unknown device 2503
	Flags: bus master, medium devsel, latency 64, IRQ 10
	I/O ports at d800 [size=256]
	Memory at effffe00 (32-bit, non-prefetchable) [size=256]
	Capabilities: [50] Power Management version 2

00:09.0 SCSI storage controller: Advanced System Products, Inc ABP940-U / ABP960-U (rev 03)
	Subsystem: Advanced System Products, Inc ASC1300 SCSI Adapter
	Flags: bus master, medium devsel, latency 64, IRQ 10
	I/O ports at dc00 [size=256]
	Memory at efffff00 (32-bit, non-prefetchable) [size=256]
	Expansion ROM at effe0000 [disabled] [size=64K]

01:05.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 03) (prog-if 00 [VGA])
	Subsystem: Matrox Graphics, Inc. Millennium G400 MAX/Dual Head 32Mb
	Flags: bus master, medium devsel, latency 64, IRQ 10
	Memory at dc000000 (32-bit, prefetchable) [size=32M]
	Memory at efefc000 (32-bit, non-prefetchable) [size=16K]
	Memory at ef000000 (32-bit, non-prefetchable) [size=8M]
	Expansion ROM at efee0000 [disabled] [size=64K]
	Capabilities: [dc] Power Management version 2
	Capabilities: [f0] AGP version 2.0

% lsmod |egrep -i "mga|matrox|frame|i2c"|clip
mga_vid                 9120   0  (autoclean)
matroxfb_maven          9184   0  (unused)
matroxfb_crtc2          6848   0 
i2c-matroxfb            3232   0  (unused)
matroxfb_base          17408  63  [matroxfb_crtc2 i2c-matroxfb]
matroxfb_DAC1064        5508   0  [matroxfb_crtc2 matroxfb_base]
matroxfb_accel          7456   0  [matroxfb_base matroxfb_DAC1064]
i2c-algo-bit            7148   3  [i2c-matroxfb]
i2c-core               12992   0  [matroxfb_maven i2c-algo-bit]
matroxfb_misc          12288   0  [matroxfb_maven matroxfb_crtc2 i2c-matroxfb matroxfb_base matroxfb_DAC1064 matroxfb_accel]
mga                   103440   1 

% gdb mplayer
GNU gdb 5.1
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) run -v -display :0.1 -vcd 1 -vo x11 -fs -zoom
Starting program: /usr/local/src/MPlayer-CVS/main/mplayer -v -display :0.1 -vcd 1 -vo x11 -fs -zoom
[New Thread 1024 (runnable)]

MPlayer CVS-020319-20:11-2.95.3 (C) 2000-2002 Arpad Gereoffy (siehe DOCS!)

CPU vendor name: AuthenticAMD  max cpuid level: 1
CPU: Advanced Micro Devices Athlon K75 Pluto,Orion (Type: 6, Stepping: 1)
extended cpuid-level: 6
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled with RUNTIME CPU Detection - warning, it's not optimal! To get best performance, recompile mplayer from sources with --disable-runtime-cpudetection
/home/elmicha/.mplayer/config(11): option: vo
/home/elmicha/.mplayer/config(11): parameter: xmga
/home/elmicha/.mplayer/config(14): option: ao
/home/elmicha/.mplayer/config(14): parameter: oss
/home/elmicha/.mplayer/config(17): option: fs
/home/elmicha/.mplayer/config(17): parameter: yes
/home/elmicha/.mplayer/config(20): option: fsmode
/home/elmicha/.mplayer/config(20): parameter: 1
/home/elmicha/.mplayer/config(52): option: gui
/home/elmicha/.mplayer/config(52): parameter: no
/home/elmicha/.mplayer/config(60): option: skin
/home/elmicha/.mplayer/config(60): parameter: xine-lcd
/home/elmicha/.mplayer/config(76): option: mixer
/home/elmicha/.mplayer/config(76): parameter: /dev/mixer
/home/elmicha/.mplayer/config(101): option: fb
/home/elmicha/.mplayer/config(101): parameter: /dev/fb1
/home/elmicha/.mplayer/config(128): option: framedrop
/home/elmicha/.mplayer/config(128): parameter: yes
/home/elmicha/.mplayer/config(133): option: vfm
/home/elmicha/.mplayer/config(133): parameter: 5
/home/elmicha/.mplayer/config(138): option: cache
/home/elmicha/.mplayer/config(138): parameter: 8192
/home/elmicha/.mplayer/config(156): option: sws
/home/elmicha/.mplayer/config(156): parameter: 0
/home/elmicha/.mplayer/config(157): option: osdlevel
/home/elmicha/.mplayer/config(157): parameter: 1
Reading /home/elmicha/.mplayer/codecs.conf: parse error at line 294
Reading /usr/local/share/mplayer/codecs.conf: 30 audio & 80 video codecs
CommandLine: '-v' '-display' ':0.1' '-vcd' '1' '-vo' 'x11' '-fs' '-zoom'
get_path('font/font.desc') -> '/home/elmicha/.mplayer/font/font.desc'
Font /home/elmicha/.mplayer/font/font.desc loaded successfully! (206 chars)
Linux RTC init error: Keine Berechtigung
Using usleep() timing
get_path('input.conf') -> '/home/elmicha/.mplayer/input.conf'
Parsing input config file /home/elmicha/.mplayer/input.conf
Input config file /home/elmicha/.mplayer/input.conf parsed : 52 binds
Spiele VCD track 1
track 01:  adr=1  ctrl=4  format=2  00:02:00  mode: 1
track 02:  adr=1  ctrl=4  format=2  00:12:00  mode: 1
VCD start byte position: 0x551B8  end: 0x1FEA50
CACHE_PRE_INIT: 0 [0] 0  pre:0  eof:0  
Cache fill: 19.84% (1663984 bytes)    Checking for YUV4MPEG2
ASF_check: not ASF guid!
Checking for NuppelVideo
Checking for MOV
Checking for VIVO
header block 1 size: 85
Checking for REAL
system stream synced at 0x1BA8FD (0)!
==> Found video stream: 0
MPEG-PS Dateiformat erkannt!
==> Found audio stream: 0
Searching for sequence header... OK!
VIDEO:  MPEG2  480x480  (aspect 2)  29.97 fps  3160.0 kbps (395.0 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:480x480  fps:29.97  ftime:=0.0334
get_path('sub/') -> '/home/elmicha/.mplayer/sub/'
Detected audio codec: [mp3] drv:1 (MPEG layer-2, layer-3)
Initializing audio codec...
dec_audio: Allocating 4608 + 65536 = 70144 bytes for output buffer
CPU vendor name: AuthenticAMD  max cpuid level: 1
CPU: Advanced Micro Devices Athlon K75 Pluto,Orion (Type: 6, Stepping: 1)
extended cpuid-level: 6
mp3lib: made decode tables with MMX optimization
init layer2&3 finished, tables done
mp3lib: using 3DNow!Ex optimized decore!

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 1024 (runnable)]
0x08087d4d in fast_memcpy (to=0x826d1e0, from=0x826cae0, len=512) at aclib_template.c:207
207			__asm__ __volatile__ (
(gdb) bt
#0  0x08087d4d in fast_memcpy (to=0x826d1e0, from=0x826cae0, len=512)
    at aclib_template.c:207
#1  0x080b0f8e in MP3_DecodeFrame (hova=0x83133f0 "", single=-1) at sr1.c:167
#2  0x0806e6cc in init_audio (sh_audio=0x82b9ce0) at dec_audio.c:772
#3  0x08068008 in main (argc=10, argv=0xbfffef54, envp=0xbfffef80) at mplayer.c:1159
#4  0x405e48c1 in __libc_start_main (main=0x80665fc <main>, argc=10, argv=0xbfffef54, 
    init=0x8063bc0 <_init>, fini=0x81bf4f4 <_fini>, rtld_fini=0x4000a914 <_dl_fini>, 
    stack_end=0xbfffef4c) at ../sysdeps/generic/libc-start.c:92
(gdb) disass $eip-32 $eip+32
Dump of assembler code from 0x8087d2d to 0x8087d6d:
0x8087d2d <fast_memcpy+141>:	dec    %edi
0x8087d2e <fast_memcpy+142>:	adc    %cl,(%edi)
0x8087d30 <fast_memcpy+144>:	sub    0x20(%edi),%edx
0x8087d33 <fast_memcpy+147>:	movntps %xmm3,0x30(%edi)
0x8087d37 <fast_memcpy+151>:	add    $0x40,%esi
0x8087d3a <fast_memcpy+154>:	add    $0x40,%edi
0x8087d3d <fast_memcpy+157>:	dec    %ecx
0x8087d3e <fast_memcpy+158>:	jne    0x8087d12 <fast_memcpy+114>
0x8087d40 <fast_memcpy+160>:	jmp    0x8087d74 <fast_memcpy+212>
0x8087d42 <fast_memcpy+162>:	test   %ecx,%ecx
0x8087d44 <fast_memcpy+164>:	je     0x8087d74 <fast_memcpy+212>
0x8087d46 <fast_memcpy+166>:	prefetchnta 0x140(%esi)
0x8087d4d <fast_memcpy+173>:	movaps (%esi),%xmm0
0x8087d50 <fast_memcpy+176>:	movaps 0x10(%esi),%xmm1
0x8087d54 <fast_memcpy+180>:	movaps 0x20(%esi),%xmm2
0x8087d58 <fast_memcpy+184>:	movaps 0x30(%esi),%xmm3
0x8087d5c <fast_memcpy+188>:	movntps %xmm0,(%edi)
0x8087d5f <fast_memcpy+191>:	movntps %xmm1,0x10(%edi)
0x8087d63 <fast_memcpy+195>:	movntps %xmm2,0x20(%edi)
0x8087d67 <fast_memcpy+199>:	movntps %xmm3,0x30(%edi)
0x8087d6b <fast_memcpy+203>:	add    $0x40,%esi
End of assembler dump.
(gdb) q
The program is running.  Exit anyway? (y or n) y

"--disable-runtime-cpudetection" doesn't help, neither does replacing the
old ~/.mplayer/codecs.conf.

"gcc -c -O4 -march=i486 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer" 
are the right flags for my Athlon?

Hope I didn't forget something.


More information about the MPlayer-users mailing list