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: |
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 by , 13 years ago
Owner: | changed from | to
---|---|
Status: | new → accepted |
comment:2 by , 13 years ago
Milestone: | 0.5.0 → 0.5.1 |
---|
comment:3 by , 12 years ago
Type: | defect → enhancement |
---|
comment:4 by , 10 years ago
Milestone: | 0.5.1 → 0.5.2 |
---|
comment:5 by , 8 years ago
Milestone: | 0.6.1 |
---|