File: [local] / src / sys / Attic / README.SMP (download)
Revision 1.1.2.2, Fri Mar 29 23:33:46 2002 UTC (22 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.1.2.1: +22 -1 lines
Add notes about CVS bugs
|
The SMP branch is irregularily 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 hueristics
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.
* Tag the trunk with the new synchronization tag.
$ cvs -d cvs.openbsd.org:/cvs rtag -F -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
* 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 a GENERIC.MP kernel, fix every regression you can find.
* 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.
[ There are some bugs in cvs related to brach merges:
I) Readdition of files that have gone dead. They need to have
the timestamp in the Entries file changed to /dummy timestamp/
in order to be accepted by commit.
II) Under som circumstances cvs just bombs on a file leaving it
updated and locked in the repository. In that case something
like this is needed:
x=path/to/file/relative/to/sys
ssh cvs.openbsd.org "rcs -u /cvs/src/sys/$x,v"
rm $x
cvs -qd cvs.openbsd.org:/cvs up -dP -rSMP -kk $x
cvs -qd cvs.openbsd.org:/cvs up -dP -rSMP -kk $x
Readdition of directories is not working at all, they need to be
manually added. ]
* A nice check is to browse the output of:
$ cvs -q rdiff -u -r$NEW_TAG -rSMP
It should just by differences related to multiprocessor support.