id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,field_blocks,field_dependson,field_seealso 408,"ia32, amd64: Number of CPUs is limited to 8",Martin Decky,Martin Decky,"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; ",enhancement,accepted,minor,,helenos/kernel/ia32,mainline,,,,,,