summaryrefslogtreecommitdiff
path: root/sys/amd64/amd64/mpboot.S
Commit message (Collapse)AuthorAgeFilesLines
* Unifdef VM86.Jonathan Lemon1999-06-011-5/+1
| | | | | | | Reviewed by: silence on on -current Notes: svn path=/head/; revision=47678
* Enable vmspace sharing on SMP. Major changes are,Luoqi Chen1999-04-281-3/+3
| | | | | | | | | | | | | | | | | | | | - %fs register is added to trapframe and saved/restored upon kernel entry/exit. - Per-cpu pages are no longer mapped at the same virtual address. - Each cpu now has a separate gdt selector table. A new segment selector is added to point to per-cpu pages, per-cpu global variables are now accessed through this new selector (%fs). The selectors in gdt table are rearranged for cache line optimization. - fask_vfork is now on as default for both UP and SMP. - Some aio code cleanup. Reviewed by: Alan Cox <alc@cs.rice.edu> John Dyson <dyson@iquest.net> Julian Elischer <julian@whistel.com> Bruce Evans <bde@zeta.org.au> David Greenman <dg@root.com> Notes: svn path=/head/; revision=46129
* Let BSP wait until all APs are initialized.Tor Egge1999-04-101-1/+19
| | | | Notes: svn path=/head/; revision=45562
* PC-98 doesn't have CMOS ram.KATO Takenori1998-10-101-2/+2
| | | | Notes: svn path=/head/; revision=40173
* Maintain a mapping from irq number to (ioapic number, int pin) tuple,Tor Egge1998-09-061-1/+7
| | | | | | | | | | | | | | | and use this when masking/unmasking interrupts. Maintain a mapping from (iopaic number, int pin) tuple to irq number, and use this when configuring devices and programming the ioapics. Previous code assumed that irq number was equal to int pin number, and that the ioapic number was 0. Don't let an AP enter _cpu_switch before all local apics are initialized. Notes: svn path=/head/; revision=38888
* Convert the VM86 option from a global option to an option only dependedPeter Wemm1997-10-101-1/+3
| | | | | | | | on by the files that use it. Changing the VM86 option now only causes a recompile of a dozen files or so rather than the entire kernel. Notes: svn path=/head/; revision=30265
* Turn on CR4_VME on the AP's the same as the BSP. Note that we do notPeter Wemm1997-09-221-1/+13
| | | | | | | | | | [yet] probe the AP's for their cpuid/capabilities etc, so this is a fudge at best. Problem noted by: Jonathan Lemon <jlemon@americantv.com> Notes: svn path=/head/; revision=29702
* Clean up the SMP AP bootstrap and eliminate the wretched idle procs.Peter Wemm1997-08-261-41/+10
| | | | | | | | | | | | | | | | | | | | | | | - We now have enough per-cpu idle context, the real idle loop has been revived (cpu's halt now with nothing to do). - Some preliminary support for running some operations outside the global lock (eg: zeroing "free but not yet zeroed pages") is present but appears to cause problems. Off by default. - the smp_active sysctl now behaves differently. It's merely a 'true/false' option. Setting smp_active to zero causes the AP's to halt in the idle loop and stop scheduling processes. - bootstrap is a lot safer. Instead of sharing a statically compiled in stack a number of times (which has caused lots of problems) and then abandoning it, we use the idle context to boot the AP's directly. This should help >2 cpu support since the bootlock stuff was in doubt. - print physical apic id in traps.. helps identify private pages getting out of sync. (You don't want to know how much hair I tore out with this!) More cleanup to follow, this is more of a checkpoint than a 'finished' thing. Notes: svn path=/head/; revision=28808
* s/.align/.p2align/ so that we get the same results when building elfPeter Wemm1997-08-251-3/+3
| | | | | | | objects (the tools are a bit better) Notes: svn path=/head/; revision=28717
* Preliminary support for per-cpu data pages.Peter Wemm1997-06-221-6/+5
| | | | | | | | | | | | | | | | | | | This eliminates a lot of #ifdef SMP type code. Things like _curproc reside in a data page that is unique on each cpu, eliminating the expensive macros like: #define curproc (SMPcurproc[cpunumber()]) There are some unresolved bootstrap and address space sharing issues at present, but Steve is waiting on this for other work. There is still some strictly temporary code present that isn't exactly pretty. This is part of a larger change that has run into some bumps, this part is standalone so it should be safe. The temporary code goes away when the full idle cpu support is finished. Reviewed by: fsmp, dyson Notes: svn path=/head/; revision=26812
* Man the liferafts! Here comes the long awaited SMP -> -current merge!Peter Wemm1997-04-261-0/+317
There are various options documented in i386/conf/LINT, there is more to come over the next few days. The kernel should run pretty much "as before" without the options to activate SMP mode. There are a handful of known "loose ends" that need to be fixed, but have been put off since the SMP kernel is in a moderately good condition at the moment. This commit is the result of the tinkering and testing over the last 14 months by many people. A special thanks to Steve Passe for implementing the APIC code! Notes: svn path=/head/; revision=25164