[BACK]Return to README.SMP CVS log [TXT][DIR] Up to [local] / src / sys

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.