-
Notifications
You must be signed in to change notification settings - Fork 6
Dschatz
dschatzberg edited this page Apr 23, 2012
·
5 revisions
determining some early configuration for io apic requires either mp tables or ACPI. Talked to Matt and he recommended MP tables.
decided to go with ACPI, its got features we may use later anyhow. Looking specifically at ACPICA.
ACPICA is kind of a mess. I am trying now to just take the components directory and it looks like I only have to modify: acenv.h to include acebbos.h which will configure stuff (I'll base this off of aclinux.h).
Then it should compile, to link will require all the OS dependent code. I'll base that off the unix_xf.c os specific layer. Stub it all out as best I can and see what happens.
Discussion about redoing events and multicore bringup.
- Event space is shared amongst all the cores
- Events can be allocated out of the global pool of events
- Some events (IRQ related as well as synchronous interrupts like faults and exceptions) are not allocatable and well defined by the platform.
- We can route IRQs (and therefore the associated event) to cores
- We can trigger an event on a core (using IPIs, this is a bit more complex on bluegene)
- The mapping between EBBId + EBBFuncNum and Event is global
- Synchronous interrupts are not handled in this case
Multicore bringup
- First core comes up to app
- additional cores can be added dynamically by the application, specify event to occur on that core (one call or two calls? Probably two, can initialize several cores (perhaps in parallel) then broadcast event)
- When core is initialized, lrt bringup occurs (mem, trans + non-lrt trans, eventmgr). Necessary EBBs should already be bound so reps will come up lazily.