diff options
author | Brian Behlendorf <[email protected]> | 2012-03-20 16:00:17 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2012-03-23 12:25:17 -0700 |
commit | 1c5de20ae2511124613926e4f780572634818218 (patch) | |
tree | 66e14fa7c95491068117fa977b7c3fd38dd4c315 /config | |
parent | 99ea23c583b272470a21e0ac7caa1f485f6b1125 (diff) |
Add --enable-debug-dmu-tx configure option
Allow rigorous (and expensive) tx validation to be enabled/disabled
indepentantly from the standard zfs debugging. When enabled these
checks ensure that all txs are constructed properly and that a dbuf
is never dirtied without taking the correct tx hold.
This checking is particularly helpful when adding new dmu consumers
like Lustre. However, for established consumers such as the zpl
with no known outstanding tx construction problems this is just
overhead.
--enable-debug-dmu-tx - Enable/disable validation of each tx as
--disable-debug-dmu-tx it is constructed. By default validation
is disabled due to performance concerns.
Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'config')
-rw-r--r-- | config/rpm.am | 1 | ||||
-rw-r--r-- | config/zfs-build.m4 | 23 |
2 files changed, 24 insertions, 0 deletions
diff --git a/config/rpm.am b/config/rpm.am index d557f77b4..41107d5ee 100644 --- a/config/rpm.am +++ b/config/rpm.am @@ -69,6 +69,7 @@ rpm-common: --define "require_splobj $(SPL_OBJ)" \ --define "require_splver $(SPL_VERSION)" \ --define "$(DEBUG_ZFS) 1" \ + --define "$(DEBUG_DMU_TX) 1" \ --nodeps --rebuild $$rpmpkg || exit 1; \ cp $$rpmbuild/RPMS/*/* . || exit 1; \ $(RM) -R $$rpmbuild diff --git a/config/zfs-build.m4 b/config/zfs-build.m4 index c5983d3c3..6bfea5195 100644 --- a/config/zfs-build.m4 +++ b/config/zfs-build.m4 @@ -37,6 +37,29 @@ AC_DEFUN([ZFS_AC_DEBUG], [ AC_MSG_RESULT([$enable_debug]) ]) +AC_DEFUN([ZFS_AC_DEBUG_DMU_TX], [ + AC_ARG_ENABLE([debug-dmu-tx], + [AS_HELP_STRING([--enable-debug-dmu-tx], + [Enable dmu tx validation @<:@default=no@:>@])], + [], + [enable_debug_dmu_tx=no]) + + AS_IF([test "x$enable_debug_dmu_tx" = xyes], + [ + KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG_DMU_TX" + DEBUG_DMU_TX="_with_debug_dmu_tx" + AC_DEFINE([DEBUG_DMU_TX], [1], + [Define to 1 to enabled dmu tx validation]) + ], + [ + DEBUG_DMU_TX="_without_debug_dmu_tx" + ]) + + AC_SUBST(DEBUG_DMU_TX) + AC_MSG_CHECKING([whether dmu tx validation is enabled]) + AC_MSG_RESULT([$enable_debug_dmu_tx]) +]) + AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [ ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE ]) |