Red Hat Bugzilla – Bug 187127
SMP kernel fails to boot on SMP VIA C3 machine
Last modified: 2015-01-04 17:26:16 EST
When attempting to boot kernel-smp-2.6.15-1.2054_FC5 on an SMP VIA C3 machine,
the following error is printed many times for a few seconds, after which the
Unknown interrupt or fault at EIP 00000060 c0100295 00000294
A custom kernel (2070 checked out of Fedora CVS) built with CONFIG_MVIAC3_2=yes
and CONFIG_SMP=yes works fine.
processor : 0
vendor_id : CentaurHauls
cpu family : 6
model : 9
model name : VIA Nehemiah
stepping : 10
cpu MHz : 997.364
cache size : 64 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 cx8 apic mtrr pge cmov pat mmx fxsr sse
rng rng_en ace ace_en
bogomips : 1998.37
plus an identical entry for the second processor.
I have the machine for testing indefinitely.
ahh, the 686-smp kernel has CONFIG_HIGHMEM64 enabled, and there's no PAE on this
PAE isn't something we can detect at runtime though, so short of adding another
kernel rpm (which is never a good thing), we're kinda stuck.
Will have to have a think about this one.
I know the ubuntu people are experimenting with a '686' kernel that autodetects
smp (somewhat like we did for x86-64 in FC5). We *could* in theory do
something similar, and remove the UP kernel build, and end up with two kernels,
a kernel-686, and kernel-686-PAE, both of which being SMP capable.
It's risky though, there's a lot of really crappy systems out there that may not
boot again after such a change.
Would you consider adding a nopae config to the SRPM and making it relatively
simple to build it? I have no problem rolling my own kernels but it would be
nice to avoid hacking the spec and CVS makefile for every release.
It might be interesting to see if special kernels for minority platforms could
be carried in Extras.
The kernel at
seems to work well on this machine.
Do I lose anything by running a 586 kernel instead of compiling a custom i686
kernel with CONFIG_HIGHMEM64G unset?
the big difference is that its compiled with -march=i586 instead of -march=i686,
so gcc doesn't emit some instructions (like cmov), which tbh aren't that big a
deal on VIA systems. (They were a performance win to use on older Pentiums, but
anything made in the last few years does branch prediction good enough that they
Ok. Go with the 586-smp for FC5.