WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: tinycore 7.1 x86_64 SMP not functional on UEFI systems (HP DL380 G9)  (Read 1781 times)

Offline sspans

  • WikiUser
  • *
  • Posts: 3
The 7.1 x86_64 kernel has CONFIG_NR_CPUS=64 but still fails to support SMP on some hardware,
resulting in running with 1 core active on for example HP Gen9 UEFI hardware.

Code: newbielink:javascript:void(0); [nonactive]
smpboot: Allowing 1 CPUs, 0 hotplug CPUs

The main reason seems to be that CONFIG_X86_X2APIC is not set in the kernel config, which is required
for SMP on a large number of platforms. Would it be possible to enable CONFIG_X86_X2APIC for the next release?
I would be more than happy to test kernel builds.

newbielink:https://forums.gentoo.org/viewtopic-t-1017132-start-0.html [nonactive]

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 9414
Responded in the other topic:
Thanks, noted. Seems to be only big server hardware, which is not really the target of Core, and so this is not urgent (for 8.x).

Using a custom kernel is fairly easy - download our source and config, enable that option, build. If the option has small enough reach, the kernel will even be compatible with existing modules, requiring you to only replace vmlinuz.
The only barriers that can stop you are the ones you create yourself.

Offline sspans

  • WikiUser
  • *
  • Posts: 3
It does feel a bit silly to have CONFIG_NR_CPUS  at 64 and not have the other option needed to make this useful.

I've rebuilt the tinycore64 kernel with the following diff, and can confirm that it resolves the broken SMP,
there is however a slight size increase when enabling the option. In my personal opinion it makes sense to
enable this for the 64bit kernel configs.

Code: newbielink:javascript:void(0); [nonactive]
--- ../config-4.2.9-tinycore64 2016-01-18 21:26:28.000000000 +0100
+++ .config 2016-05-27 11:26:33.097284521 +0200
@@ -355,7 +355,7 @@
 CONFIG_ZONE_DMA=y
 CONFIG_SMP=y
 CONFIG_X86_FEATURE_NAMES=y
-# CONFIG_X86_X2APIC is not set
+CONFIG_X86_X2APIC=y
 CONFIG_X86_MPPARSE=y
 # CONFIG_X86_EXTENDED_PLATFORM is not set
 # CONFIG_X86_INTEL_LPSS is not set

Code: newbielink:javascript:void(0); [nonactive]
-rw-r--r--.  1 root root     4024208 May 27 11:40 vmlinuz
-rw-r--r--.  1 root root     3807184 May 27 09:47 vmlinuz.orig

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 9414
Well, the original reporter's machine had that many cpus, but didn't require x2apic. We'll enable that for 8.x, but that is some time away.
The only barriers that can stop you are the ones you create yourself.