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

Annotation of src/sys/README.SMP, Revision 1.1.2.13

1.1.2.11  niklas      1: $OpenBSD$
1.1.2.8   ho          2:
1.1.2.5   niklas      3: The SMP branch is irregularly updated from the trunk.  To do this
1.1.2.13! niklas      4: you mainly need to carry out the following procedure:
1.1.2.1   niklas      5:
                      6: * Determine the new synchronization tag to use.  There are two used
1.1.2.4   niklas      7:   alternately; SMP_SYNC_A and SMP_SYNC_B.  You can use several heuristics
1.1.2.1   niklas      8:   to find out which one was used last, and then use the other one.
                      9:   For example, CVSROOT/history* files gives you information about tag
                     10:   operations in lines matching '^T'.  Call the tag you will be using
                     11:   for $NEW_TAG and the other one $OLD_TAG.
                     12:
1.1.2.7   ho         13: * Remove every trace of the "old" new synchronization tag, note that cvs
                     14:   rtag -F won't cut it, as it does not remove files that have been removed
                     15:   since last time.
1.1.2.3   niklas     16:
1.1.2.7   ho         17:   $ cvs -d cvs.openbsd.org:/cvs rtag -d $NEW_TAG src/sys
1.1.2.3   niklas     18:
1.1.2.1   niklas     19: * Tag the trunk with the new synchronization tag.
                     20:
1.1.2.3   niklas     21:   $ cvs -d cvs.openbsd.org:/cvs rtag -rHEAD $NEW_TAG src/sys
1.1.2.1   niklas     22:
                     23: * Have an SMP branch checkout available with -kk substitution done.
                     24:   For example check out a fresh one:
                     25:
                     26:   $ cvs get -rSMP -kk src/sys
                     27:
1.1.2.3   niklas     28: * Create and add directories that have been added to the trunk since
                     29:   last synchronization.  Say you have a clean standard trunk checkout in $STD
                     30:   and your clean SMP checkout is in $SMP:
                     31:
                     32:   $ cd $STD/src/sys
                     33:   $ find . -type d \! -name CVS \! -path "*/compile/*" |sort>/tmp/stddirs
                     34:   $ cd $SMP/src/sys
                     35:   $ find . -type d \! -name CVS \! -path "*/compile/*" |sort>/tmp/smpdirs
                     36:   $ comm -23 /tmp/{std,smp}dirs |while read d; do
                     37:   >   mkdir $d
                     38:   >   cvs add $d
                     39:   > done
                     40:
1.1.2.1   niklas     41: * Go into src/sys and merge from the trunk (make sure that the repository
                     42:   you use have the new tags from the tagging above, i.e. don't use a mirror
                     43:   that has not been updated since that step):
                     44:
                     45:   $ cvs up -j$OLD_TAG -j$NEW_TAG -kk
                     46:
                     47: * Find any conflicts, and resolve them, this command might help:
                     48:
                     49:   $ cvs -q up -dP -rSMP -kk 2>&1 | grep '^C '
                     50:
1.1.2.3   niklas     51: * Build and test an i386 GENERIC.MP kernel as well as an alpha GENERIC,
                     52:   fix every regression you can find.
1.1.2.1   niklas     53:
1.1.2.13! niklas     54: * Cvs contains nasty bugs in its client/server invocation.  Earlier this
        !            55:   documentation has contained bug fixup instructions for the remote cvs
        !            56:   use.  However this is error-prone and slow.  It's much better to do the
        !            57:   last step locally *on* cvs.openbsd.org.  I.e. transfer your tree to commit
        !            58:   to cvs.openbsd.org and commit from there!
1.1.2.2   niklas     59:
1.1.2.3   niklas     60: * Commit to the SMP branch in pieces to not lock too much of the sys tree
                     61:   in the repository, Nice chunks are perhaps 100-300 files.
1.1.2.2   niklas     62:
                     63: * A nice check is to browse the output of:
                     64:
1.1.2.6   niklas     65:   $ cvs -qd cvs.openbsd.org:/cvs rdiff -kk -u -r$NEW_TAG -rSMP src/sys
1.1.2.3   niklas     66:
1.1.2.4   niklas     67:   It should just be differences related to multiprocessor support.