git: hammer2 - dmsg stabilization
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun May 4 23:58:32 PDT 2014
commit 323c094767dccbbb77dce2d64e21411ef1a0e984
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sun May 4 23:52:24 2014 -0700
hammer2 - dmsg stabilization
This is a general stabilization pass testing xdisk resumption on various
communications failures (killing the local or remote hammer2 service demon).
* Simulate failures on recursive transactions in a bottom-up fashion
* bcmp() does not return an inequality (neg, zero, or positive). It
returns only 0 or 1. Change fs_label RBTREE test to strcmp()
* ref-count the state structure, use dmsg_state_hold()/dmsg_state_drop()
to control it. Fix at least one memory leak.
* Consolidate simulated transaction failure core into a helper
function dmsg_msg_simulate_failure().
* Clean up the tx state on the front-end after the msg has extracted
necessary information from it, instead of in the transmit thread.
This is so the state fields are updated synchronously and not delayed
by the transmit queue.
* Change xdisk's error test to avoid accidently failing a BIO due to
a communications issue (verses an actual IO error on the remote physical
disk).
* Remove some invalid assertions, add assertions.
Summary of changes:
lib/libdmsg/dmsg.h | 10 +-
lib/libdmsg/msg.c | 334 +++++++++++++++++++++++++++++----------------
lib/libdmsg/msg_lnk.c | 2 +-
sys/dev/disk/xdisk/xdisk.c | 29 ++--
sys/kern/kern_dmsg.c | 4 +
sys/sys/dmsg.h | 1 +
6 files changed, 250 insertions(+), 130 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/323c094767dccbbb77dce2d64e21411ef1a0e984
--
DragonFly BSD source repository
More information about the Commits
mailing list