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
Userland Gate Mechanics
The userland consolidation operates a set of Mercurial repositories that work
together to manage the tools, source code, and build recipies. These
repositories are the integration repository, gate, and external mirror. This is
similiar to how the Solaris ON, SFW, and other gates operates, however there
are a few subtle differences. In ON and other consolidations, the integration
repository is that gate and contains the canonical source. Once a changeset
is committed, it becomes a part of the canonical source. In the case of ON,
the changeset is immediately pushed to the clone repository. SFW and other
consolidations push changes from their canonical gate to a clone repository
nightly. In the userland consolidation, developers will commit changes to the
integration gate. These changes will not be accepted until some basic
validation is performed. Once the validation completes successfully, the
changes are accepted and pushed into the canonical source gate.
Integration repository (ssh://ulhg@userland//nevada/incoming)
The integration gate is the Mercurial repository that all tools, source
code, and build recipies are committed to. Unlike ON, SFW, and other
Solaris gates this source code repository does not contains the canonical
source for the product. This repository is a staging area for change
integration and acceptance.
hg push to integration gate
|
v
lock gate
|
v
validate changeset(s) -> failed --> rollback changeset(s)
| |
v |
accepted |
| |
v v
push to clone -------------------> unlock gate
|
v
update bug db
|
v
notify committer
So, the basic flow works something like this: A user pushes a changeset
to the integration gate. Mercurial locks the gate to block any other
attempts to operate on the gate while it is validating the changeset.
At this point, validation is started in the background, a message is
displayed, and control is returned to the user. Validation continues
in the background. If validation completes successfully, the changeset(s)
are pushed to the clone, the gate is unlocked, the bug database is updated,
and the user is notified of the changeset acceptance. If the validation
fails, the changeset(s) are rolled back, the gate is unlocked, and the
user is notified of the failure.
Changeset validation will include the following:
multi-delta update check
commit comment validation
bugdb validation
future operations
source archive download
incremental build on all architectures
unit test on all architectures
package publication for all architectures
Canonical source repository (ssh://anon@userland//nevada/gate)
The clone gate is actually the mercurial repository that contains the
canonical tools, source code, and build recipies for the product. It
should always be in a stable, buildable state. When changes are pushed
to this gate, they are mirrored on the external mirror repository from
here.
clone update
|
v
push to external mirror
|
v
notify gatelings
External mirror repository (ssh://[email protected]//hg/userland/gate)
The external mirror is the mercurial repository that contains an externally
accessible copy of the canonical tools, source code, and build recipies for
the product. It should always be in a stable, buildable state.
external mirror update
|
v
notify gatelings
# vi:set fdm=marker expandtab ts=4: