Opened 13 years ago

Last modified 8 years ago

#408 accepted enhancement

ia32, amd64: Number of CPUs is limited to 8

Reported by: Martin Decky Owned by: Martin Decky
Priority: minor Milestone:
Component: helenos/kernel/ia32 Version: mainline
Keywords: Cc:
Blocker for: Depends on:
See also:


Due to the use of APIC Flat Mode the number of CPUs which can be woken up during the kernel initialization is limited to 8.

The problem has been described in more details in the mailing list by Jakub Jermar:

I suspect this is because we configure the APICs to run in the flat
mode, which has this rather low limit. Quoting the Intel manual:

Flat Model — This model is selected by programming DFR bits 28 through
31 to 1111. Here, a unique logical APIC ID can be established for up to
8 local APICs by setting a different bit in the logical APIC ID field of
the LDR for each local APIC. A group of local APICs can then be selected
by setting one or more bits in the MDA.

And the corresponding part of apic.c::l_apic_init():

/* Program Destination Format Register for Flat mode. */
dfr_t dfr;

dfr.value = l_apic[DFR];
dfr.model = MODEL_FLAT;
l_apic[DFR] = dfr.value;

Change History (5)

comment:1 by Martin Decky, 13 years ago

Owner: changed from Jakub Jermář to Martin Decky
Status: newaccepted

comment:2 by Jakub Jermář, 12 years ago


comment:3 by Jakub Jermář, 11 years ago

Type: defectenhancement

comment:4 by Jakub Jermář, 10 years ago


comment:5 by Jakub Jermář, 8 years ago

Milestone: 0.6.1
Note: See TracTickets for help on using tickets.