[kde-freebsd] x11-toolkits/qt4-gui: bus error in qt_memfill32_sse2() on 9.3-STABLE i386

Arrigo Marchiori ardovm at yahoo.it
Wed Sep 3 09:13:34 UTC 2014


Dear kde@,

I am writing you as you are the maintainer of port
x11-toolkits/qt4-gui.  I am not sure whether I should file a PR for
this problem; please tell me if you think it is advisable.

Short story: bus error in x11-toolkits/qt4-gui triggered by
multimedia/vlc. The function that triggers the bus error is
qt_memfill32_sse2() in file painting/qdrawhelper_sse2.cpp:261.
This happens on:
FreeBSD myhost 9.3-STABLE FreeBSD 9.3-STABLE #83 r270916M: Mon Sep
1 09:22:13 CEST 2014     root at myhost:/usr/obj/usr/src/sys/GENERIC  i386
Ports tree at revision 366839
CPU is an AMD Phenom 9550.

Long story: I was trying to start VLC today and it just printed out
"Bus error". I recompiled debug-enabled Qt libraries (core and gui)
and ran VLC through gdb:

Program received signal SIGBUS, Bus error.
[Switching to Thread 2880ac00 (LWP 101319/vlc)]
qt_memfill32_sse2 (dest=0x28999800, value=0, count=784)
    at painting/qdrawhelper_sse2.cpp:261
261         const __m128i value128 = _mm_set_epi32(value, value, value, value);
Current language:  auto; currently c++
(gdb) bt
#0  qt_memfill32_sse2 (dest=0x28999800, value=0, count=784)
    at painting/qdrawhelper_sse2.cpp:261
#1  0x29e46dd0 in qt_memfill<unsigned int> (dest=0x28999800, color=0, 
    count=784) at qdrawhelper_p.h:1846
#2  0x29f988e6 in qt_rectfill<unsigned int> (dest=0x28999800, value=0, x=0, 
    y=0, width=28, height=28, stride=112) at qdrawhelper_p.h:1887
#3  0x29f90d1b in QImage::fill (this=0x2cfd952c, pixel=0)
    at image/qimage.cpp:2009
#4  0x29fce0db in QRasterPixmapData::fill (this=0x2cfd9500, color=@0xbf97be90)
    at image/qpixmap_raster.cpp:266
#5  0x29fb7e86 in QPixmap::fill (this=0xbf97be44, color=@0xbf97be90)
    at image/qpixmap.cpp:1036
#6  0x2e7fb54a in Oxygen::ShadowCache::pixmap () from /usr/local/lib/liboxygenstyle.so.4
[snip]
(gdb) frame 0
#0  qt_memfill32_sse2 (dest=0x28999800, value=0, count=784)
    at painting/qdrawhelper_sse2.cpp:261
261         const __m128i value128 = _mm_set_epi32(value, value,
value, value);
(gdb) list
256         case 12: *dest++ = value; --count;
257         }
258
259         int count128 = count / 4;
260         __m128i *dst128 = reinterpret_cast<__m128i*>(dest);
261         const __m128i value128 = _mm_set_epi32(value, value,
value, value);
262
263         int n = (count128 + 3) / 4;
264         switch (count128 & 0x3) {
265         case 0: do { _mm_stream_si128(dst128++, value128);

dmesg recognizes my CPU as follows:

Copyright (c) 1992-2014 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.3-STABLE #83 r270916M: Mon Sep  1 09:22:13 CEST 2014
    root at myhost:/usr/obj/usr/src/sys/GENERIC i386
gcc version 4.2.1 20070831 patched [FreeBSD]
CPU: AMD Phenom(tm) 9550 Quad-Core Processor (2200.26-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x100f23  Family = 0x10  Model = 0x2 Stepping = 3
  Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
  Features2=0x802009<SSE3,MON,CX16,POPCNT>
  AMD Features=0xee500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM,3DNow!+,3DNow!>
  AMD Features2=0x7ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW,IBS>
  TSC: P-state invariant
real memory  = 4294967296 (4096 MB)
avail memory = 3137052672 (2991 MB)

Please tell me if I can give you any more information about this
problem; if I should file a PR, or what else.

Thank you in advance!

Regards,
-- 
rigo

http://rigo.altervista.org


More information about the kde-freebsd mailing list