Set num_cores early in boot
authorBarret Rhoden <brho@cs.berkeley.edu>
Sun, 6 Nov 2016 16:21:02 +0000 (11:21 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 29 Nov 2016 16:27:40 +0000 (11:27 -0500)
commit079986b1499209e4803a505928618e855e0a44fa
treec580db52fd5cfbddc51c5827f7c95912571291a5
parentf20d41b22b6b605a2e0299bb9cd371f2b168060e
Set num_cores early in boot

The memory allocator will need to know the number of cores in the
system when it is initialized.  In the future, it may also need to know
the number of NUMA domains.  Determining the number of cores is somewhat
arch-specific.  We can do it with ACPI on x86, and on any other platform
that supports it.

Our ACPI code relies on the memory allocator and does a lot more than
determine the number of cores, so we have a simple helper that just
looks at the ACPI tables, finds the XSDT, then finds the MADT, then
counts the local apics.  We'll use this as num_cores (possibly an
overestimate).  The topology code will make sure we didn't
underestimate later in boot.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/arch/x86/topology.c
kern/drivers/dev/acpi.c
kern/include/acpi.h
kern/src/init.c