diff options
author | dyson <dyson@FreeBSD.org> | 1997-07-17 19:45:01 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1997-07-17 19:45:01 +0000 |
commit | 53c148264d968cb4285b431e58a308c802d9dbf4 (patch) | |
tree | a38a4666e42ee32754d43796f5206cc250aecd99 /sys/kern | |
parent | 964800d988ed83575feb7f85503e1e40fa3c4cd6 (diff) | |
download | FreeBSD-src-53c148264d968cb4285b431e58a308c802d9dbf4.zip FreeBSD-src-53c148264d968cb4285b431e58a308c802d9dbf4.tar.gz |
Hopefully fix a few problems that could cause hangs in SMP mode.
1) Make sure that the region mapped by a 4MB page is
properly aligned.
2) Don't turn on the PG_G flag in locore for SMP. I plan
to do that later in startup anyway.
3) Make sure the 2nd processor has PSE enabled, so that 4MB
pages don't hose it.
We don't use PG_G yet on SMP -- there is work to be done to make that
work correctly. It isn't that important anyway...
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/subr_smp.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index 157c218..7b74a36 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mp_machdep.c,v 1.14 1997/07/13 00:42:14 smp Exp smp $ + * $Id: mp_machdep.c,v 1.27 1997/07/13 01:22:43 fsmp Exp $ */ #include "opt_smp.h" @@ -395,6 +395,8 @@ init_secondary(void) load_cr0(0x8005003b); /* XXX! */ PTD[0] = 0; + pmap_set_opt((unsigned *)PTD); + invltlb(); } @@ -1542,6 +1544,8 @@ start_all_aps(u_int boot_addr) outb(CMOS_REG, BIOS_RESET); outb(CMOS_DATA, mpbiosreason); + pmap_set_opt_bsp(); + /* number of APs actually started */ return mp_ncpus - 1; } |