Commit graph

22 commits

Author SHA1 Message Date
Mikael Ronstrom
5f2bfccec4 merge updates of build_mccge.sh and check-cpu 2010-09-16 10:04:10 +02:00
Mikael Ronstrom
0876ef0513 Updated build_mccge.sh and added support for more cpu's in check-cpu 2010-09-16 08:53:58 +02:00
Davi Arnaut
76382d2746 Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Post-merge fix: remove --with-debug=full, it was only used for safemalloc.

BUILD/compile-pentium-mysqlfs-debug:
  Remove build script for a feature that is long gone.
2010-08-06 09:59:38 -03:00
Davi Arnaut
03ff26c759 Remove leftovers from old versions of the code. 2010-07-13 14:34:32 -03:00
Davi Arnaut
f56dd32bf7 Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Essentially, the problem is that safemalloc is excruciatingly
slow as it checks all allocated blocks for overrun at each
memory management primitive, yielding a almost exponential
slowdown for the memory management functions (malloc, realloc,
free). The overrun check basically consists of verifying some
bytes of a block for certain magic keys, which catches some
simple forms of overrun. Another minor problem is violation
of aliasing rules and that its own internal list of blocks
is prone to corruption.

Another issue with safemalloc is rather the maintenance cost
as the tool has a significant impact on the server code.
Given the magnitude of memory debuggers available nowadays,
especially those that are provided with the platform malloc
implementation, maintenance of a in-house and largely obsolete
memory debugger becomes a burden that is not worth the effort
due to its slowness and lack of support for detecting more
common forms of heap corruption.

Since there are third-party tools that can provide the same
functionality at a lower or comparable performance cost, the
solution is to simply remove safemalloc. Third-party tools
can provide the same functionality at a lower or comparable
performance cost. 

The removal of safemalloc also allows a simplification of the
malloc wrappers, removing quite a bit of kludge: redefinition
of my_malloc, my_free and the removal of the unused second
argument of my_free. Since free() always check whether the
supplied pointer is null, redudant checks are also removed.

Also, this patch adds unit testing for my_malloc and moves
my_realloc implementation into the same file as the other
memory allocation primitives.

client/mysqldump.c:
  Pass my_free directly as its signature is compatible with the
  callback type -- which wasn't the case for free_table_ent.
2010-07-08 18:20:08 -03:00
Konstantin Osipov
69f8e58821 Apply:
3413 Davi Arnaut	2010-06-03
     Don't enable safemalloc for valgrind builds, it's too slow.
to trunk-runtime.
2010-06-07 18:52:44 +04:00
Davi Arnaut
745d2141ba Don't enable safemalloc for valgrind builds, it's too slow. 2010-06-03 09:54:37 -03:00
Marko Mäkelä
963b19861f Merge a change from mysql-5.1-innodb:
TO DO: Enable this in CMake-based builds.

------------------------------------------------------------
revno: 3474
revision-id: marko.makela@oracle.com-20100520104042-ma2nsscqdvwoph8k
parent: marko.makela@oracle.com-20100519081618-h38q02qxuvcowbtk
committer: Marko Mäkelä <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Thu 2010-05-20 13:40:42 +0300
message:
  Bug#53593: Add some instrumentation to improve Valgrind sensitivity

  BUILD/*: Add valgrind_configs=--with-valgrind.
  BUILD/*: Remove -USAFEMALLOC from valgrind_flags.

  configure.in: Add AC_ARG_WITH(valgrind) and HAVE_VALGRIND.

  include/my_sys.h: Define a number of MEM_ wrappers for VALGRIND_ functions.
  include/my_sys.h: Make TRASH do MEM_UNDEFINED().

  include/m_string.h: Remove unused macro bzero_if_purify(A,B).

  _mymalloc(): Declare MEM_UNDEFINED() on the allocated memory.

  _myfree(): Declare MEM_NOACCESS() on the freed memory.

  storage/innobase/include/univ.i: Enable UNIV_DEBUG_VALGRIND based on
  HAVE_VALGRIND rather than HAVE_purify.

  Possible things to do:
   * In my_global.h, remove the defined(HAVE_purify) condition
     from the _WIN32 uint3korr().
   * In my_global.h *int*korr(), use | instead of +
     in order to keep the Valgrind V bits accurate
   * Consider replacing HAVE_purify with HAVE_VALGRIND
   * Use VALGRIND_CREATE_BLOCK, VALGRIND_DISCARD in mem_root and similar places
2010-05-20 14:43:06 +03:00
Marko Mäkelä
98406ba452 Bug#53593: Add some instrumentation to improve Valgrind sensitivity
BUILD/*: Add valgrind_configs=--with-valgrind.
BUILD/*: Remove -USAFEMALLOC from valgrind_flags.

configure.in: Add AC_ARG_WITH(valgrind) and HAVE_VALGRIND.

include/my_sys.h: Define a number of MEM_ wrappers for VALGRIND_ functions.
include/my_sys.h: Make TRASH do MEM_UNDEFINED().

include/m_string.h: Remove unused macro bzero_if_purify(A,B).

_mymalloc(): Declare MEM_UNDEFINED() on the allocated memory.

_myfree(): Declare MEM_NOACCESS() on the freed memory.

storage/innobase/include/univ.i: Enable UNIV_DEBUG_VALGRIND based on
HAVE_VALGRIND rather than HAVE_purify.

Possible things to do:
 * In my_global.h, remove the defined(HAVE_purify) condition
   from the _WIN32 uint3korr().
 * In my_global.h *int*korr(), use | instead of +
   in order to keep the Valgrind V bits accurate
 * Consider replacing HAVE_purify with HAVE_VALGRIND
 * Use VALGRIND_CREATE_BLOCK, VALGRIND_DISCARD in mem_root and similar places
2010-05-20 13:40:42 +03:00
Mikael Ronstrom
268be88457 Fixed --fast flag on Linux to use -O3 2009-12-08 11:14:51 +01:00
Mikael Ronstrom
8755de32ab Fixed a few bugs in hex string generation, in call to val_str for partition expressions, also made code reusable for DEFAULT handling to fix BUG#48464 by introducing function get_cs_converted_string_value, added partition_utf8 test case for UTF8 outputs 2009-11-02 14:49:26 +01:00
Mikael Ronstrom
d0d52e9f11 WL#4444 Added TRUNCATE partition support, fixes bug#19405 and bug #35111 2009-09-10 11:15:39 +02:00
Mikael Ronstrom
c944d29dd1 Fixed missing - in build script 2009-03-11 22:17:48 +01:00
Mikael Ronstrom
254baff232 Fixed some issues with build script and 64-bit handling,
couldn't use both --cpu=x86_64 and --64, also ignored
setting --32 and --64 on Linux
2009-02-21 11:03:49 +01:00
Mikael Ronstrom
0421ec5553 Fixing bug in developer usage of script 2009-02-12 09:46:39 +01:00
Mikael Ronstrom
757a6cd1ad Workaround for DTrace-related bugs.
Bumped up version number to 0.2.1
2009-02-10 15:26:39 +01:00
Mikael Ronstrom
9bfa4fe48d Many updates to build script 2009-02-06 14:20:06 +01:00
Mikael Ronstrom
4a4d4e09a8 Fixed bug in check-cpu script for SPARC and Solaris
Changed defaults on Solaris and Forte to be CC and cc instead of cc-5.0
2009-02-03 13:09:35 +01:00
Mikael Ronstrom
f735f75833 Add support for building with tcmalloc support instead
of standard malloc.
2008-12-20 15:46:31 +01:00
Mikael Ronstrom
657cdfd7bf Edited the help text to indicate changes to supported
platforms and emphasize the fact that gcc is the default
compiler on all platforms.

Make it possible to say --compiler=SunStudio instead of
--compiler=forte

Fix a bug that lost an important flag for C++ builds.
2008-12-19 12:34:02 +01:00
Mikael Ronstrom
481083d6ca Made it possible to set CC and CXX on commandline before calling script
for those cases when gcc, cc-5.0, icpc or icc isn't in the path.

Fixed handling of 32 and 64 bits.

Downgraded Solaris builds on Forte to use -xO2 rather than -xO3.

Made it possible to build 64-bits on Mac OS X

Fixed some bugs in setting CC, CXX, ASFLAGS, LDFLAGS

Fixed bugs relating to use of SunStudio/Forte in check-cpu

Reorganized code a bit

Removed the use of --with-fast-mutexes since they aren't really
fast, rather slow.

Added -static-libgcc when using gcc

Added optimising compilation flags on BSD

Added use of curses library on Solaris

Removed the use of MY_ATOMIC_MODE_RWLOCKS which removed use of
atomic instructions

Added support for Forte on Solaris/x86
2008-12-19 11:46:28 +01:00
unknown
f1dd83ea58 WL#3834: New build script for system admins and developers
especially for MySQL Cluster Carrier Grade Edition


BUILD/build_mccge.sh:
  BitKeeper file /home/mikael/mysql_clones/mysql-5.1-engines/BUILD/build_mccge.sh
BUILD/check-cpu:
  Added comments
  Added support for Core 2 cpu's
  Fixed some bad styles for scripts
  Fixed some copy-paste bug
  Added support for i386 from Mac OS X
  Added support for Itanium
  Added support for Sparc
  Added support for GCC 4.2+
  Fixed some issues with later change of cpu_arg
  Removed some broken, unnecessarily complex parts
  to find native compiler flags
2008-02-08 00:12:34 +01:00