File: [local] / src / sys / Attic / README.SMP (download)
Revision 1.1.2.13, Thu Feb 19 10:59:30 2004 UTC (20 years, 3 months ago) by niklas
Branch: SMP
Changes since 1.1.2.12: +6 -45 lines
Oops! This time for real:
Remove all bug fixup instructions, and instead promote local cvs use!
|
$OpenBSD: README.SMP,v 1.1.2.13 2004/02/19 10:59:30 niklas Exp $
The SMP branch is irregularly updated from the trunk. To do this
you mainly need to carry out the following procedure:
* Determine the new synchronization tag to use. There are two used
alternately; SMP_SYNC_A and SMP_SYNC_B. You can use several heuristics
to find out which one was used last, and then use the other one.
For example, CVSROOT/history* files gives you information about tag
operations in lines matching '^T'. Call the tag you will be using
for $NEW_TAG and the other one $OLD_TAG.
* Remove every trace of the "old" new synchronization tag, note that cvs
rtag -F won't cut it, as it does not remove files that have been removed
since last time.
$ cvs -d cvs.openbsd.org:/cvs rtag -d $NEW_TAG src/sys
* Tag the trunk with the new synchronization tag.
$ cvs -d cvs.openbsd.org:/cvs rtag -rHEAD $NEW_TAG src/sys
* Have an SMP branch checkout available with -kk substitution done.
For example check out a fresh one:
$ cvs get -rSMP -kk src/sys
* Create and add directories that have been added to the trunk since
last synchronization. Say you have a clean standard trunk checkout in $STD
and your clean SMP checkout is in $SMP:
$ cd $STD/src/sys
$ find . -type d \! -name CVS \! -path "*/compile/*" |sort>/tmp/stddirs
$ cd $SMP/src/sys
$ find . -type d \! -name CVS \! -path "*/compile/*" |sort>/tmp/smpdirs
$ comm -23 /tmp/{std,smp}dirs |while read d; do
> mkdir $d
> cvs add $d
> done
* Go into src/sys and merge from the trunk (make sure that the repository
you use have the new tags from the tagging above, i.e. don't use a mirror
that has not been updated since that step):
$ cvs up -j$OLD_TAG -j$NEW_TAG -kk
* Find any conflicts, and resolve them, this command might help:
$ cvs -q up -dP -rSMP -kk 2>&1 | grep '^C '
* Build and test an i386 GENERIC.MP kernel as well as an alpha GENERIC,
fix every regression you can find.
* Cvs contains nasty bugs in its client/server invocation. Earlier this
documentation has contained bug fixup instructions for the remote cvs
use. However this is error-prone and slow. It's much better to do the
last step locally *on* cvs.openbsd.org. I.e. transfer your tree to commit
to cvs.openbsd.org and commit from there!
* Commit to the SMP branch in pieces to not lock too much of the sys tree
in the repository, Nice chunks are perhaps 100-300 files.
* A nice check is to browse the output of:
$ cvs -qd cvs.openbsd.org:/cvs rdiff -kk -u -r$NEW_TAG -rSMP src/sys
It should just be differences related to multiprocessor support.