Re: [OE-core] [PATCH] db: add debug_lock option to show diagnostic info

2015-07-07 Thread Robert Yang



On 07/07/2015 03:43 PM, Zhixiong Chi wrote:

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@windriver.com
---
  .../db/db/db-add-debug-lock-option.patch   | 144 +
  meta/recipes-support/db/db_6.0.30.bb   |   1 +
  2 files changed, 145 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 000..dff6642
--- /dev/null
+++ b/meta/recipes-support/db/db/db-add-debug-lock-option.patch
@@ -0,0 +1,144 @@
+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


Missing Upstream-Status and SOB (Signed off by).

// Robert


+@@ -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-dump185Build 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.ac2015-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

[OE-core] [PATCH] db: add debug_lock option to show diagnostic info

2015-07-07 Thread Zhixiong Chi
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@windriver.com
---
 .../db/db/db-add-debug-lock-option.patch   | 144 +
 meta/recipes-support/db/db_6.0.30.bb   |   1 +
 2 files changed, 145 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 000..dff6642
--- /dev/null
+++ b/meta/recipes-support/db/db/db-add-debug-lock-option.patch
@@ -0,0 +1,144 @@
+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-dump185Build 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.ac2015-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