Re: [Maria-developers] [Merge] lp:~maria-captains/maria/maria-xtradb into lp:maria

2009-06-10 Thread Kristian Nielsen
Kristian Nielsen  writes:

> I got some good progress on this. I re-did the merge using the merge-into bzr
> plugin (advise from bzr developers). This should allow us to merge directly
> from the lp:percona-xtradb tree into lp:maria in the future.

I just tested this, and it seems to work ok.

I was able to merge latest XtraDB with just `bzr merge lp:parcona-xtradb`.
And merging that into latest MariaDB also worked fine with just `bzr merge`.

There were a number of conflicts in the merges. But I think that is only
expected, and unavoidable in fact. Eg. when same problem was fixed in
different ways in the different trees, or changes to InnoDB plugin files
removed in MariaDB tree. Nothing serious, and we can reduce some of this by
cooperating closely between XtraDB and MariaDB (and Sun and Oracle if they are
willing).

 - Kristian.

___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


[Maria-developers] bzr commit into MariaDB 5.1, with Maria 1.5:maria branch (knielsen:2703)

2009-06-10 Thread knielsen
#At lp:maria

 2703 kniel...@knielsen-hq.org  2009-06-10
  Fix XtraDB to build with atomic operations, for good performance.
  
  The root of the problem is that ./configure mixed together two different 
things. One is the
  availability of GCC atomic operation intrinsics. The other is the 
selection of which
  primitives to use for my_atomic implementation.
  
  Then at some point a hack was made to not use GCC intrinsics in my_atomic 
to work around
  some test failures. But because the two things are mixed in ./configure, 
this as a side
  effect also makes GCC intrinsics unavailable for XtraDB.
  
  Fixed by splitting this in two in configure, so that we have 
HAVE_GCC_ATOMIC_BUILTINS for
  GCC intrinsics availability and MY_ATOMIC_MODE_GCC_BUILTINS for use in 
my_atomic.
  modified:
configure.in
include/atomic/nolock.h

=== modified file 'configure.in'
--- a/configure.in  2009-04-23 13:06:16 +
+++ b/configure.in  2009-06-10 09:13:53 +
@@ -1726,6 +1726,30 @@ then
   fi
 fi
 
+AC_CACHE_CHECK([whether the compiler provides atomic builtins],
+  [mysql_cv_gcc_atomic_builtins], [AC_TRY_RUN([
+  int main()
+  {
+int foo= -10; int bar= 10;
+if (!__sync_fetch_and_add(&foo, bar) || foo)
+  return -1;
+bar= __sync_lock_test_and_set(&foo, bar);
+if (bar || foo != 10)
+  return -1;
+bar= __sync_val_compare_and_swap(&bar, foo, 15);
+if (bar)
+  return -1;
+return 0;
+  }
+], [mysql_cv_gcc_atomic_builtins=yes],
+   [mysql_cv_gcc_atomic_builtins=no],
+   [mysql_cv_gcc_atomic_builtins=no])])
+
+if test "x$mysql_cv_gcc_atomic_builtins" = xyes; then
+  AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
+   [Define to 1 if compiler provides atomic builtins.])
+fi
+
 AC_ARG_WITH([atomic-ops],
AC_HELP_STRING([--with-atomic-ops=rwlocks|smp|up],
[Implement atomic operations using pthread rwlocks or atomic CPU
@@ -1739,28 +1763,9 @@ case "$with_atomic_ops" in
   [Use pthread rwlocks for atomic ops]) ;;
   "smp") ;;
   "")
-AC_CACHE_CHECK([whether the compiler provides atomic builtins],
-   [mysql_cv_gcc_atomic_builtins], [AC_TRY_RUN([
-  int main()
-  {
-int foo= -10; int bar= 10;
-if (!__sync_fetch_and_add(&foo, bar) || foo)
-  return -1;
-bar= __sync_lock_test_and_set(&foo, bar);
-if (bar || foo != 10)
-  return -1;
-bar= __sync_val_compare_and_swap(&bar, foo, 15);
-if (bar)
-  return -1;
-return 0;
-  }
-], [mysql_cv_gcc_atomic_builtins=yes_but_disabled],
-   [mysql_cv_gcc_atomic_builtins=no],
-   [mysql_cv_gcc_atomic_builtins=no])])
-
-if test "x$mysql_cv_gcc_atomic_builtins" = xyes; then
-  AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
-[Define to 1 if compiler provides atomic builtins.])
+if test "x$mysql_cv_gcc_atomic_builtins" = xyes_but_disabled; then
+  AC_DEFINE([MY_ATOMIC_MODE_GCC_BUILTINS], [1],
+[Use GCC atomic builtins for atomic ops])
 fi
;;
*) AC_MSG_ERROR(["$with_atomic_ops" is not a valid value for 
--with-atomic-ops]) ;;

=== modified file 'include/atomic/nolock.h'
--- a/include/atomic/nolock.h   2008-02-05 15:47:11 +
+++ b/include/atomic/nolock.h   2009-06-10 09:13:53 +
@@ -14,7 +14,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
 #if defined(__i386__) || defined(_MSC_VER) || \
-defined(__x86_64__) || defined(HAVE_GCC_ATOMIC_BUILTINS)
+defined(__x86_64__) || defined(MY_ATOMIC_MODE_GCC_BUILTINS)
 
 #  ifdef MY_ATOMIC_MODE_DUMMY
 #define LOCK_prefix ""
@@ -22,7 +22,7 @@
 #define LOCK_prefix "lock"
 #  endif
 
-#  ifdef HAVE_GCC_ATOMIC_BUILTINS
+#  ifdef MY_ATOMIC_MODE_GCC_BUILTINS
 #include "gcc_builtins.h"
 #  elif __GNUC__
 #include "x86-gcc.h"


___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] bzr commit into MariaDB 5.1, with Maria 1.5:maria branch (knielsen:2703)

2009-06-10 Thread Kristian Nielsen
Hi Serg,

We discussed something like this on IRC some time ago. What do you think of
this change? It keeps the use of GCC stuff for maria/my_atomic disabled, while
still letting other parts (ie. XtraDB) check for GCC intrinsics availability.

 - Kristian.

kniel...@knielsen-hq.org writes:

> #At lp:maria
>
>  2703 kniel...@knielsen-hq.org2009-06-10
>   Fix XtraDB to build with atomic operations, for good performance.
>   
>   The root of the problem is that ./configure mixed together two 
> different things. One is the
>   availability of GCC atomic operation intrinsics. The other is the 
> selection of which
>   primitives to use for my_atomic implementation.
>   
>   Then at some point a hack was made to not use GCC intrinsics in 
> my_atomic to work around
>   some test failures. But because the two things are mixed in 
> ./configure, this as a side
>   effect also makes GCC intrinsics unavailable for XtraDB.
>   
>   Fixed by splitting this in two in configure, so that we have 
> HAVE_GCC_ATOMIC_BUILTINS for
>   GCC intrinsics availability and MY_ATOMIC_MODE_GCC_BUILTINS for use in 
> my_atomic.
>   modified:
> configure.in
> include/atomic/nolock.h
>
> === modified file 'configure.in'
> --- a/configure.in2009-04-23 13:06:16 +
> +++ b/configure.in2009-06-10 09:13:53 +
> @@ -1726,6 +1726,30 @@ then
>fi
>  fi
>  
> +AC_CACHE_CHECK([whether the compiler provides atomic builtins],
> +[mysql_cv_gcc_atomic_builtins], [AC_TRY_RUN([
> +  int main()
> +  {
> +int foo= -10; int bar= 10;
> +if (!__sync_fetch_and_add(&foo, bar) || foo)
> +  return -1;
> +bar= __sync_lock_test_and_set(&foo, bar);
> +if (bar || foo != 10)
> +  return -1;
> +bar= __sync_val_compare_and_swap(&bar, foo, 15);
> +if (bar)
> +  return -1;
> +return 0;
> +  }
> +], [mysql_cv_gcc_atomic_builtins=yes],
> +   [mysql_cv_gcc_atomic_builtins=no],
> +   [mysql_cv_gcc_atomic_builtins=no])])
> +
> +if test "x$mysql_cv_gcc_atomic_builtins" = xyes; then
> +  AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
> + [Define to 1 if compiler provides atomic builtins.])
> +fi
> +
>  AC_ARG_WITH([atomic-ops],
>   AC_HELP_STRING([--with-atomic-ops=rwlocks|smp|up],
>   [Implement atomic operations using pthread rwlocks or atomic CPU
> @@ -1739,28 +1763,9 @@ case "$with_atomic_ops" in
>[Use pthread rwlocks for atomic ops]) ;;
>"smp") ;;
>"")
> -AC_CACHE_CHECK([whether the compiler provides atomic builtins],
> -   [mysql_cv_gcc_atomic_builtins], [AC_TRY_RUN([
> -  int main()
> -  {
> -int foo= -10; int bar= 10;
> -if (!__sync_fetch_and_add(&foo, bar) || foo)
> -  return -1;
> -bar= __sync_lock_test_and_set(&foo, bar);
> -if (bar || foo != 10)
> -  return -1;
> -bar= __sync_val_compare_and_swap(&bar, foo, 15);
> -if (bar)
> -  return -1;
> -return 0;
> -  }
> -], [mysql_cv_gcc_atomic_builtins=yes_but_disabled],
> -   [mysql_cv_gcc_atomic_builtins=no],
> -   [mysql_cv_gcc_atomic_builtins=no])])
> -
> -if test "x$mysql_cv_gcc_atomic_builtins" = xyes; then
> -  AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1,
> -[Define to 1 if compiler provides atomic builtins.])
> +if test "x$mysql_cv_gcc_atomic_builtins" = xyes_but_disabled; then
> +  AC_DEFINE([MY_ATOMIC_MODE_GCC_BUILTINS], [1],
> +[Use GCC atomic builtins for atomic ops])
>  fi
> ;;
> *) AC_MSG_ERROR(["$with_atomic_ops" is not a valid value for 
> --with-atomic-ops]) ;;
>
> === modified file 'include/atomic/nolock.h'
> --- a/include/atomic/nolock.h 2008-02-05 15:47:11 +
> +++ b/include/atomic/nolock.h 2009-06-10 09:13:53 +
> @@ -14,7 +14,7 @@
> Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
> */
>  
>  #if defined(__i386__) || defined(_MSC_VER) || \
> -defined(__x86_64__) || defined(HAVE_GCC_ATOMIC_BUILTINS)
> +defined(__x86_64__) || defined(MY_ATOMIC_MODE_GCC_BUILTINS)
>  
>  #  ifdef MY_ATOMIC_MODE_DUMMY
>  #define LOCK_prefix ""
> @@ -22,7 +22,7 @@
>  #define LOCK_prefix "lock"
>  #  endif
>  
> -#  ifdef HAVE_GCC_ATOMIC_BUILTINS
> +#  ifdef MY_ATOMIC_MODE_GCC_BUILTINS
>  #include "gcc_builtins.h"
>  #  elif __GNUC__
>  #include "x86-gcc.h"
>
>
> ___
> Mailing list: https://launchpad.net/~maria-developers
> Post to : maria-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~maria-developers
> More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp