| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
3413 Davi Arnaut 2010-06-03
Don't enable safemalloc for valgrind builds, it's too slow.
to trunk-runtime.
|
|\
| |
| |
| | |
Due to a BZR bug, that merge was done by the following command:
bzr merge -r 'revid:tor.didriksen@sun.com-20100527074248-6qtv0p1ugy6o1hjo..' <mysql-trunk-bugfixing path>
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
(make relies GNU extentions). The patch was partially
backport from 6.0.
Original comment:
bug#30708: make relies GNU extensions. Now that we no longer use
BitKeeper we can safely remove the SCCS handling with no loss of
functionality.
|
| |
|
|\
| |
| |
| | |
back into the development branches.
|
| |
| |
| |
| |
| |
| | |
The "cmake" way still shows issues in our release build environment.
Block it temporarily, but in a way that can easily be undone.
This change is to be reverted once the problems are solved.
|
|/
|
|
|
|
|
|
|
| |
Reason for the error was that ./configure wrapper script was not
safe for VPATH builds used by "make distcheck", specifically it expected configure.am to be in the current directory.
Fix changes configure wrapper to resolve script names relative
to configure script path.
Also, use $top_srcdir/configure.am instead of configure.am in dist-hook to be more VPATH friendly.
|
|
|
|
|
|
|
|
|
|
| |
configure wrapper.
The bug was that ./configure was passing paramers to subscripts as $@, and to handle embedded spaces it needs
to be quoted as "$@".
This resulting into a bug when ./configure was called e.g with CFLAGS='-m64 -Xstrconst'..
Additionally, fixed cmake/configure.pl did not handle environment variables passed on the command line.
this is fixed in this push
|
|\ |
|
| |
| |
| |
| | |
Part V: performance schema implementation
|
|\ \
| |/ |
|
| |\ |
|
| | | |
|
|\ \ \
| | |/
| |/| |
|
| |/ |
|
|/ |
|
|
|
|
| |
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
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | | |
This fixes the regression introduced in 5.1 that prevents 64 bit builds on Intel while still keeping the core2 hack operational so the cluster can build.
|
|/ / |
|
|\ \
| |/
| |
| |
| |
| |
| | |
bzr branch mysql-5.1-performance-version mysql-trunk # Summit
cd mysql-trunk
bzr merge mysql-5.1-innodb_plugin # which is 5.1 + Innodb plugin
bzr rm innobase # remove the builtin
Next step: build, test fixes.
|
| |\ |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
couldn't use both --cpu=x86_64 and --64, also ignored
setting --32 and --64 on Linux
|
|\ \ \
| |/ /
| | |
| | | |
14.01.13 2009)
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | | |
on Solaris box; force GNU make in compile-dist; remove unportable "grep -q" from configure.in
|
| | | |
|
| | |
| | |
| | |
| | | |
Bumped up version number to 0.2.1
|
| | | |
|
| | |
| | |
| | | |
Changed defaults on Solaris and Forte to be CC and cc instead of cc-5.0
|
| | |
| | |
| | | |
of standard malloc.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \ |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The convert_constant_item function converts a constant to integer using
field for condition like 'field = a_constant'. In some cases the
convert_constant_item is called for a subquery when outer select is already
being executed, so convert_constant_item saves field's value to prevent its
corruption. For EXPLAIN and at the prepare phase field's value isn't
initialized yet, thus when convert_constant_item tries to restore saved
value it fails assertion.
Now the convert_constant_item doesn't save/restore field's value if it's
haven't been read yet. Outer constant values are always saved.
|
| |
| |
| |
| |
| | |
Link with mtmalloc on Solaris as it is done in our release builds.
Replace deprecated flag with the newer option as already done in
other scripts.
|
|\ \
| |/ |
|
| |
| |
| |
| | |
more clever gcc version checking.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Post-merge fix: Add those files which are new in version 5.1
This is the 5.1 version of the fix for
Bug #34291 compile-amd64-debug-max-no-ndb missing
|
|\ \
| |/
| |
| | |
into trift2.:/MySQL/M51/bug34291-5.1
|