From owner-svn-soc-all@FreeBSD.ORG Thu Jun 28 20:01:27 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id D55471065675 for ; Thu, 28 Jun 2012 20:01:25 +0000 (UTC) (envelope-from gmiller@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Thu, 28 Jun 2012 20:01:25 +0000 Date: Thu, 28 Jun 2012 20:01:25 +0000 From: gmiller@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120628200125.D55471065675@hub.freebsd.org> Cc: Subject: socsvn commit: r238502 - in soc2012/gmiller/locking-head: . lib/libwitness X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jun 2012 20:01:28 -0000 Author: gmiller Date: Thu Jun 28 20:01:25 2012 New Revision: 238502 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=238502 Log: r238483@FreeBSD-dev: root | 2012-06-20 00:39:33 -0500 Merge headers into witness.h and add a witness mutex to protect graph data structure. Added: soc2012/gmiller/locking-head/lib/libwitness/witness.h - copied, changed from r238347, soc2012/gmiller/locking-head/lib/libwitness/lists.h Deleted: soc2012/gmiller/locking-head/lib/libwitness/graph.h soc2012/gmiller/locking-head/lib/libwitness/lists.h Modified: soc2012/gmiller/locking-head/ (props changed) soc2012/gmiller/locking-head/lib/libwitness/graph.c soc2012/gmiller/locking-head/lib/libwitness/lists.c soc2012/gmiller/locking-head/lib/libwitness/wrappers.c Modified: soc2012/gmiller/locking-head/lib/libwitness/graph.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libwitness/graph.c Thu Jun 28 20:00:11 2012 (r238501) +++ soc2012/gmiller/locking-head/lib/libwitness/graph.c Thu Jun 28 20:01:25 2012 (r238502) @@ -25,7 +25,9 @@ * */ -#include "graph.h" +#include "witness.h" + +struct graph_node *root = NULL; int insert_edge(struct graph_node *from, struct graph_node *to) Modified: soc2012/gmiller/locking-head/lib/libwitness/lists.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libwitness/lists.c Thu Jun 28 20:00:11 2012 (r238501) +++ soc2012/gmiller/locking-head/lib/libwitness/lists.c Thu Jun 28 20:01:25 2012 (r238502) @@ -25,12 +25,7 @@ * */ -#include - -#include -#include - -#include "lists.h" +#include "witness.h" _Thread_local SLIST_HEAD(lock_head, lock_entry) lock_head = SLIST_HEAD_INITIALIZER(lock_head); Copied and modified: soc2012/gmiller/locking-head/lib/libwitness/witness.h (from r238347, soc2012/gmiller/locking-head/lib/libwitness/lists.h) ============================================================================== --- soc2012/gmiller/locking-head/lib/libwitness/lists.h Tue Jun 26 18:55:06 2012 (r238347, copy source) +++ soc2012/gmiller/locking-head/lib/libwitness/witness.h Thu Jun 28 20:01:25 2012 (r238502) @@ -25,10 +25,23 @@ * */ +#include + +#include +#include +#include + struct lock_entry { SLIST_ENTRY(lock_entry) lock_next; void *lock; }; +struct graph_node { +}; + +extern pthread_mutex_t witness_mtx; + void add_lock(void *lock); void remove_lock(void *lock); + +int insert_edge(struct graph_node *from, struct graph_node *to); Modified: soc2012/gmiller/locking-head/lib/libwitness/wrappers.c ============================================================================== --- soc2012/gmiller/locking-head/lib/libwitness/wrappers.c Thu Jun 28 20:00:11 2012 (r238501) +++ soc2012/gmiller/locking-head/lib/libwitness/wrappers.c Thu Jun 28 20:01:25 2012 (r238502) @@ -25,23 +25,22 @@ * */ -#include - -#include -#include - -#include "lists.h" +#include "witness.h" int _pthread_mutex_lock(pthread_mutex_t *mutex); int _pthread_mutex_unlock(pthread_mutex_t *mutex); +pthread_mutex_t witness_mtx = PTHREAD_MUTEX_INITIALIZER; + int pthread_mutex_lock(pthread_mutex_t *mutex) { int ret; ret = _pthread_mutex_lock(mutex); - add_lock(mutex); + if (mutex != &witness_mtx) { + add_lock(mutex); + } return ret; } @@ -52,7 +51,9 @@ int ret; ret = _pthread_mutex_unlock(mutex); - remove_lock(mutex); + if (mutex != &witness_mtx) { + remove_lock(mutex); + } return ret; }