Thank you very much. Let me know when the fix becomes available.
Regarding the booting process with gPXE, this is the kernel panic that I
see:
######> Kernel panic on cpu0 due to a bad memory access while loading
from address 0x3ee99000. <######
cs =0x8 eip=0x801295e9 efl=0x210292 err=0x0
ds =0x10 es =0x10 fs =0x10 gs =0x10
eax=0x1 ebx=0x3ee99000 ecx=0x1 edx=0x1
esi=0x8000303c edi=0x80b1de68 ebp=0x80b1ddd4 esp=0x80b1dd7c
0x80b1dc48: generic/src/debug/stacktrace.o:stack_trace()+0x00000013
0x80b1dc78: generic/src/debug/panic.o:panic_common()+0x000000d3
0x80b1dcb8: arch/ia32/src/mm/page.o:page_arch_init()
0x80b1dd28: generic/src/interrupt/interrupt.o:exc_dispatch()+0x000000fb
0x80b1dd54: arch/ia32/src/asm.o:int_14()+0x00000062
0x80b1ddd4: generic/src/lib/elf.o:elf_load()+0x00000011
0x80b1de24:
generic/src/proc/program.o:program_create_from_image()+0x0000003a
0x80b1df94: generic/src/main/kinit.o:kinit()+0x00000196
0x80b1dff4: generic/src/proc/thread.o:cushion()+0x00000059
generic/src/lib/func.o:halt()+0x0000005a->generic/src/console/kconsole.o:kconsole_check_poll()
generic/src/lib/func.o:halt()+0x0000005a<-generic/src/console/kconsole.o:kconsole_check_poll()
cpu0:halted
Thanks,
Amadeo
On 01/16/2012 12:32 PM, Martin Decky wrote:
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.
Yes, Jakub, you are right. We used to use a broadcast IPI to wake up the
CPUs previously and therefore we were not limited by limitations of the
Flat Model of APIC. But now the observation suggests that the number of
CPUs we can wake up on IA-32 and AMD64 is indeed limited to 8.
Amadeo, if you see 8 CPUs as active and the rest as "not active" when
you run the "cpus" command from the kernel console, then it is not a
problem of enumeration but it is this implicit limitation of the current
implementation.
We'll try to fix this ..
M.D.
_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel
_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel