From: Zhixiong Chi <zhixiong.chi@windriver.com>
To: <liezhi.yang@windriver.com>, <openembedded-core@lists.openembedded.org>
Subject: [PATCH][V2] db: add debug_lock option to show diagnostic info
Date: Tue, 7 Jul 2015 16:17:49 +0800 [thread overview]
Message-ID: <1436257069-1908-1-git-send-email-zhixiong.chi@windriver.com> (raw)
Add debug_lock option to show lock diagnostic information instead of
outputing directly.
We can enable it with using "./configure ... --enable-debug_lock".
Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
---
.../db/db/db-add-debug-lock-option.patch | 151 +++++++++++++++++++++
meta/recipes-support/db/db_6.0.30.bb | 1 +
2 files changed, 152 insertions(+)
create mode 100644 meta/recipes-support/db/db/db-add-debug-lock-option.patch
diff --git a/meta/recipes-support/db/db/db-add-debug-lock-option.patch b/meta/recipes-support/db/db/db-add-debug-lock-option.patch
new file mode 100644
index 0000000..72bdb84
--- /dev/null
+++ b/meta/recipes-support/db/db/db-add-debug-lock-option.patch
@@ -0,0 +1,151 @@
+Summary: db: add debug_lock option to show diagnostic info
+
+add debug_lock into configure to show diagnostic info
+
+Upstream-Status: Submitted
+
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+Index: db-6.0.30/dist/config.hin
+===================================================================
+--- db-6.0.30.orig/dist/config.hin 2015-07-07 15:25:16.737736844 +0800
++++ db-6.0.30/dist/config.hin 2015-07-07 15:31:44.097735878 +0800
+@@ -21,6 +21,9 @@
+ /* Define to 1 if you want a version that logs write operations. */
+ #undef DEBUG_WOP
+
++/* Define to 1 if you want a version that logs write/read lock operations. */
++#undef DEBUG_LOCK
++
+ /* Define to 1 if you want a version with run-time diagnostic checking. */
+ #undef DIAGNOSTIC
+
+Index: db-6.0.30/dist/configure
+===================================================================
+--- db-6.0.30.orig/dist/configure 2015-07-07 15:25:16.737736844 +0800
++++ db-6.0.30/dist/configure 2015-07-07 15:34:45.841735425 +0800
+@@ -862,6 +862,7 @@
+ enable_debug
+ enable_debug_rop
+ enable_debug_wop
++enable_debug_lock
+ enable_diagnostic
+ enable_dump185
+ enable_java
+@@ -1556,6 +1557,7 @@
+ --enable-debug Build a debugging version.
+ --enable-debug_rop Build a version that logs read operations.
+ --enable-debug_wop Build a version that logs write operations.
++ --enable-debug_lock Build a version that logs write/read lock operations.
+ --enable-diagnostic Build a version with run-time diagnostics.
+ --enable-dump185 Build db_dump185(1) to dump 1.85 databases.
+ --enable-java Build Java API.
+@@ -3323,6 +3325,18 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $db_cv_debug_wop" >&5
+ $as_echo "$db_cv_debug_wop" >&6; }
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-debug_lock option specified" >&5
++$as_echo_n "checking if --enable-debug_lock option specified... " >&6; }
++# Check whether --enable-debug_lock was given.
++if test "${enable_debug_lock+set}" = set; then :
++ enableval=$enable_debug_lock; db_cv_debug_lock="$enable_debug_lock"
++else
++ db_cv_debug_lock="no"
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $db_cv_debug_lock" >&5
++$as_echo "$db_cv_debug_lock" >&6; }
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-diagnostic option specified" >&5
+ $as_echo_n "checking if --enable-diagnostic option specified... " >&6; }
+ # Check whether --enable-diagnostic was given.
+@@ -3835,6 +3849,11 @@
+
+
+ fi
++if test "$db_cv_debug_lock" = "yes"; then
++ $as_echo "#define DEBUG_LOCK 1" >>confdefs.h
++
++
++fi
+ if test "$db_cv_umrw" = "yes"; then
+ $as_echo "#define UMRW 1" >>confdefs.h
+
+Index: db-6.0.30/dist/configure.ac
+===================================================================
+--- db-6.0.30.orig/dist/configure.ac 2015-07-07 15:25:16.737736844 +0800
++++ db-6.0.30/dist/configure.ac 2015-07-07 15:35:12.465735359 +0800
+@@ -134,6 +134,11 @@
+ AH_TEMPLATE(DEBUG_WOP,
+ [Define to 1 if you want a version that logs write operations.])
+ fi
++if test "$db_cv_debug_lock" = "yes"; then
++ AC_DEFINE(DEBUG_LOCK)
++ AH_TEMPLATE(DEBUG_LOCK,
++ [Define to 1 if you want a version that logs write/read lock operations.])
++fi
+ if test "$db_cv_umrw" = "yes"; then
+ AC_DEFINE(UMRW)
+ AH_TEMPLATE(UMRW,
+Index: db-6.0.30/src/common/db_err.c
+===================================================================
+--- db-6.0.30.orig/src/common/db_err.c 2015-07-07 15:25:16.737736844 +0800
++++ db-6.0.30/src/common/db_err.c 2015-07-07 15:36:45.329735127 +0800
+@@ -648,6 +648,32 @@
+ }
+
+ /*
++ * __db_lock_msg --
++ * Standard DB lock stat message routine.
++ *
++ * PUBLIC: void __db_lock_msg __P((const ENV *, const char *, ...))
++ * PUBLIC: __attribute__ ((__format__ (__printf__, 2, 3)));
++ */
++void
++#ifdef STDC_HEADERS
++__db_lock_msg(const ENV *env, const char *fmt, ...)
++#else
++__db_lock_msg(env, fmt, va_alist)
++ const ENV *env;
++ const char *fmt;
++ va_dcl
++#endif
++{
++ DB_ENV *dbenv;
++
++ dbenv = env == NULL ? NULL : env->dbenv;
++#if defined(DEBUG_LOCK)
++ DB_REAL_MSG(dbenv, fmt);
++#endif
++}
++
++
++/*
+ * __db_repmsg --
+ * Replication system message routine.
+ *
+Index: db-6.0.30/src/lock/lock_failchk.c
+===================================================================
+--- db-6.0.30.orig/src/lock/lock_failchk.c 2015-07-07 15:25:16.737736844 +0800
++++ db-6.0.30/src/lock/lock_failchk.c 2015-07-07 15:37:03.169735082 +0800
+@@ -80,7 +80,7 @@
+ * Discard the locker and its read locks.
+ */
+ if (!SH_LIST_EMPTY(&lip->heldby)) {
+- __db_msg(env, DB_STR_A("2053",
++ __db_lock_msg(env, DB_STR_A("2053",
+ "Freeing read locks for locker %#lx: %s",
+ "%#lx %s"), (u_long)lip->id,
+ dbenv->thread_id_string(
+Index: db-6.0.30/src/mutex/mut_failchk.c
+===================================================================
+--- db-6.0.30.orig/src/mutex/mut_failchk.c 2015-07-07 15:25:16.737736844 +0800
++++ db-6.0.30/src/mutex/mut_failchk.c 2015-07-07 15:37:30.897735013 +0800
+@@ -60,7 +60,7 @@
+ dbenv, mutexp->pid, unused, DB_MUTEX_PROCESS_ONLY))
+ continue;
+
+- __db_msg(env, DB_STR_A("2017",
++ __db_lock_msg(env, DB_STR_A("2017",
+ "Freeing mutex %lu for process: %s", "%lu %s"), (u_long)i,
+ dbenv->thread_id_string(dbenv, mutexp->pid, unused, buf));
+
diff --git a/meta/recipes-support/db/db_6.0.30.bb b/meta/recipes-support/db/db_6.0.30.bb
index 9eae5c7..6e2600c 100644
--- a/meta/recipes-support/db/db_6.0.30.bb
+++ b/meta/recipes-support/db/db_6.0.30.bb
@@ -19,6 +19,7 @@ SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz"
SRC_URI += "file://arm-thumb-mutex_db5.patch;patchdir=.. \
file://fix-parallel-build.patch \
file://Makefile-let-libso_target-depend-on-bt_rec.patch \
+ file://db-add-debug-lock-option.patch;patchdir=.. \
"
SRC_URI[md5sum] = "ad28eb86ad3203b5422844db179c585b"
--
1.9.1
next reply other threads:[~2015-07-07 8:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-07 8:17 Zhixiong Chi [this message]
2015-07-07 8:19 ` [PATCH][V2] db: add debug_lock option to show diagnostic info Zhixiong Chi
2015-07-10 22:29 ` Burton, Ross
2015-07-14 6:02 ` Zhixiong Chi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1436257069-1908-1-git-send-email-zhixiong.chi@windriver.com \
--to=zhixiong.chi@windriver.com \
--cc=liezhi.yang@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.