Distribution: Gentoo Hardware Environment: On three separate G4 based systems. G4 windtunnel, TiBook, Mac Mini Software Environment: gcc, X, kde, etc. Problem Description: I am experiencing random segfaults with kernel 2.6.11 and up. Usualy happens after running for a day or two. Heavy emerging/compiling seems to bring it on faster. It seems that the problem goes away after I disable "Preemtible Kernel" option in the the kernel config. I experienced this problem on G4 Windtunnel as well as on G4 TiBook and Mac Mini. Reproducible: Sometimes Steps to Reproduce: No exact steps to reproduce it. Just emerge something heavy like Firefox. Problem should manifest. Actual Results: powerpc-unknown-linux-gnu-gcc -o prmwait.o -c -mtune=G4 -mabi=altivec -pipe -pipe -ansi -pthread -O2 -fPIC -UDEBUG -DMOZILLA_CLIENT=1 -DNDEBUG=1 -DXP_UNIX=1 -D_POSIX_SOURCE=1 -D_BSD_SOURCE=1 -D_SVID_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -DHAVE_FCNTL_FILE_LOCKING=1 -DLINUX=1 -DHAVE_LCHOWN=1 -DHAVE_STRERROR=1 -D_REENTRANT=1 -DFORCE_PR_LOG -D_PR_PTHREADS -UHAVE_CVAR_BUILT_ON_SEM -D_NSPR_BUILD_ -I/var/tmp/portage/mozilla-firefox-1.0.2/work/mozilla/dist/include/nspr -I../../../pr/include -I../../../pr/include/private prmwait.c prmwait.c: In function `_MW_PollInternal': prmwait.c:599: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://bugs.gentoo.org/> for instructions. The bug is not reproducible, so it is likely a hardware or OS problem. distcc[434] ERROR: compile prmwait.c on localhost failed
I think CONFIG_PREEMPT is still not safe on PPC.
If you enable CONFIG_PREEMPT and CONFIG_SMP on ppc32 (even if this is a uniprocessor machine), Preemption works quite fine. I use it now for about two weeks on my G3 and G4 with a 2.6.10 and a 2.6.12_rc5 kernel.
Yes, enabling CONFIG_SMP seems to fix the problem. Been running for two weeks now, with no issues.
Downstream bug report: http://bugs.gentoo.org/show_bug.cgi?id=86544
Does this behavior still occur on the latest kernels?
Nope. I can use PREEMPT without SMP enabled. It's working since 2.6.16 or so.
Thanks Lars. Closing this bug out then.