Follow us on Google+ Follow us on Facebook Follow us on Twitter

Opened 6 years ago

Last modified 16 months 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:

Description

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 Changed 6 years ago by Martin Decky

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

comment:2 Changed 5 years ago by Jakub Jermář

Milestone: 0.5.00.5.1

comment:3 Changed 4 years ago by Jakub Jermář

Type: defectenhancement

comment:4 Changed 3 years ago by Jakub Jermář

Milestone: 0.5.10.5.2

comment:5 Changed 16 months ago by Jakub Jermář

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