Subject: CVS commit: syssrc
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 04/20/2001 19:22:35
Module Name:	syssrc
Committed By:	thorpej
Date:		Fri Apr 20 16:22:35 UTC 2001

Modified Files:
	syssrc/sys/arch/alpha/alpha: ipifuncs.c pmap.c
	syssrc/sys/arch/alpha/include: intr.h pmap.h

Log Message:
pmap_asn_alloc(): In a multiprocessor configuration, it's possible
to arrive here referencing the kernel_lev1map without having the
RESERVED ASN -- another CPU may have caused pmap_lev1map_destroy()
to be called, and that routine only invalidates the ASN for the
CPU that called it.  So, in the MULTIPROCESSOR case, simply assign
the RESERVED ASN if we reference the kernel_lev1map rather than
asserting that we already have the RESERVED ASN.  Thanks to Bill
Sommerfeld for helping me track down the problem.

Also add a new IPI that causes a CPU to re-activate its address
space if the pmap it's using changes level 1 maps (this probably
won't happen very often, but it's correct to have it).

This makes Alpha MP kernels boot multiuser.  In fact, this commit
is being made from my dual-CPU AlphaServer 1200 running an MP kernel.


To generate a diff of this commit:
cvs rdiff -r1.25 -r1.26 syssrc/sys/arch/alpha/alpha/ipifuncs.c
cvs rdiff -r1.158 -r1.159 syssrc/sys/arch/alpha/alpha/pmap.c
cvs rdiff -r1.44 -r1.45 syssrc/sys/arch/alpha/include/intr.h
cvs rdiff -r1.38 -r1.39 syssrc/sys/arch/alpha/include/pmap.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.