Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

This branch is 1301 commits ahead, 108405 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

..
Failed to load latest commit information.
adosfs
altq
arch
compat
conf
crypto
ddb
dev
gnu/arch/i386/fpemul
isofs/cd9660
kern
lib
miscfs
msdosfs
net
netatalk
netccitt
netinet
netinet6
netipx
netiso
netnatm
netns
nfs
ntfs
scsi
stand
sys
ufs
uvm
xfs
Makefile
README.SMP

README.SMP

$OpenBSD: README.SMP,v 1.1.2.15 2004/06/13 08:16:45 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

  If this operation is done local to cvs.openbsd.org, it will last about 2.5
  minutes.

* Tag the trunk with the new synchronization tag.

  $ cvs -d cvs.openbsd.org:/cvs rtag -rHEAD $NEW_TAG src/sys

  This too takes 2.5 minutes local cvs time.

* 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 & MP_LOCKDEBUG 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.
Something went wrong with that request. Please try again.