doc/gate-mechanics.txt
author Boris Chiu <Boris.Chiu@oracle.COM>
Wed, 29 Feb 2012 22:39:04 +0000
changeset 715 eed3ed08f692
parent 41 50cc241a2b9a
child 3836 56af60eb6020
permissions -rw-r--r--
6926434 ib_read_bw, ib_read_lat: OFED utilities sometimes hang when using "-e" (event) flag 6996726 "rds-stress --show-perfdata" option is broken. 7003185 rds-stress man page needs cleanup 7005654 qperf: 32bit only: qperf fails in all RC/UD streaming tests 7024095 set_nodedesc.sh: heading whitespace of HCA specific desc string is ignored if '-N' not specified 7043392 OFED 1.5.3: test_verbs: 'resize CQ' test failed on tavor 7043758 OFED 1.5.3: test_verbs: core dump while during async test on tavor with snv_166 7044543 ibsysstat server process fails to get cpu info 7046730 ibstatus needs to clean up after itself 7050802 OFED 1.5.3: ib_send_bw/ib_send_lat doesn't work with '-g' option 7061241 OFED 1.5.3 ib_read_lat/ib_read_bw don't work between tavor and hermon 7087339 modify solaris changes to libmlx4 to use returned inline size from hermon driver 7090343 solaris_set_nodedesc: the -N option does not work 7091277 /usr/man/man3/ibnd_debug.3 and ibnd_destroy_fabric.3 refer to non-existence ibnd_discover_fabric.3 7091649 OFED 1.5.3: ibdiagnet: "-vlr -r" shows file open failure messages on Solaris 7093499 ib_rdma_lat, ib_read_lat, ib_write_lat and other IB verb latency tools should use gethrtime 7095000 mem leak in libibvers ibv_read_sysfs_file() 7095879 resize cq in libmlx4 incorrect 7095943 rdma_lat & rdma_bw core dump on non ib system 7099692 Add man pages for OFUV perftest utilities 7108873 definitions in sol_uverbs_ioctl.h & sol_umad_ioctl.h are duplicated in solaris_compatibility.c 7119924 ibportstate: operations enable, disable, and reset should only be allowed on switch ports 7120891 ibv_devinfo should report a valid active_mtu instead of 'Unknown' 7141996 sol_uverbs should provide ioctl calls to get GIDs and PKEYs for libibverbs (userland changes) 7144445 setnodedesc.sh -v white space issue 7146479 qperf --cpu_affinity doesn't match with solaris cpu no. 7146482 qperf -cm1 sometimes failed with "rdma_listen failed" message
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     1
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     2
                Userland Gate Mechanics
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     3
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     4
The userland consolidation operates a set of Mercurial repositories that work
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     5
together to manage the tools, source code, and build recipies.  These
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     6
repositories are the integration repository, gate, and external mirror.  This is
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     7
similiar to how the Solaris ON, SFW, and other gates operates, however there
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     8
are a few subtle differences.  In ON and other consolidations, the integration
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     9
repository is that gate and contains the canonical source.  Once a changeset
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    10
is committed, it becomes a part of the canonical source.  In the case of ON,
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    11
the changeset is immediately pushed to the clone repository.  SFW and other
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    12
consolidations push changes from their canonical gate to a clone repository
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    13
nightly.  In the userland consolidation, developers will commit changes to the
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    14
integration gate.  These changes will not be accepted until some basic
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    15
validation is performed.  Once the validation completes successfully, the
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    16
changes are accepted and pushed into the canonical source gate.
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    17
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    18
Integration repository (ssh://ulhg@userland//nevada/incoming)
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    19
	The integration gate is the Mercurial repository that all tools, source
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    20
    code, and build recipies are committed to.  Unlike ON, SFW, and other
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    21
    Solaris gates this source code repository does not contains the canonical
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    22
    source for the product.  This repository is a staging area for change
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    23
    integration and acceptance.
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    24
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    25
	    hg push to integration gate
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    26
	        |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    27
	        v
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    28
	    lock gate
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    29
	        |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    30
	        v
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    31
	    validate changeset(s) -> failed --> rollback changeset(s) 
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    32
	        |                                   |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    33
	        v                                   |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    34
	    accepted                                |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    35
	        |                                   |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    36
	        v                                   v
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    37
	    push to clone -------------------> unlock gate
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    38
	                                            |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    39
	                                            v
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    40
	                                       update bug db
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    41
	                                            |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    42
	                                            v
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    43
	                                       notify committer
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    44
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    45
    So, the basic flow works something like this:  A user pushes a changeset
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    46
    to the integration gate.  Mercurial locks the gate to block any other
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    47
    attempts to operate on the gate while it is validating the changeset.
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    48
    At this point, validation is started in the background, a message is
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    49
    displayed, and control is returned to the user.  Validation continues
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    50
    in the background.  If validation completes successfully, the changeset(s)
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    51
    are pushed to the clone, the gate is unlocked, the bug database is updated,
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    52
    and the user is notified of the changeset acceptance.  If the validation
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    53
    fails, the changeset(s) are rolled back, the gate is unlocked, and the
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    54
    user is notified of the failure.
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    55
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    56
    Changeset validation will include the following:
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    57
        multi-delta update check
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    58
        commit comment validation
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    59
        bugdb validation
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    60
      future operations
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    61
        source archive download
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    62
        incremental build on all architectures
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    63
        unit test on all architectures
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    64
        package publication for all architectures
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    65
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    66
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    67
Canonical source repository (ssh://anon@userland//nevada/gate)
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    68
    The clone gate is actually the mercurial repository that contains the
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    69
    canonical tools, source code, and build recipies for the product.  It
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    70
    should always be in a stable, buildable state.  When changes are pushed
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    71
    to this gate, they are mirrored on the external mirror repository from
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    72
    here.
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    73
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    74
        clone update
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    75
            |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    76
            v
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    77
        push to external mirror
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    78
            |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    79
            v
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    80
        notify gatelings
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    81
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    82
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    83
External mirror repository (ssh://[email protected]//hg/userland/gate)
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    84
    The external mirror is the mercurial repository that contains an externally
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    85
    accessible copy of the canonical tools, source code, and build recipies for
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    86
    the product.  It should always be in a stable, buildable state.
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    87
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    88
        external mirror update
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    89
            |
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    90
            v
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    91
        notify gatelings
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    92
50cc241a2b9a add basic overview of incoming/gate/mirror operation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    93
# vi:set fdm=marker expandtab ts=4: