Better document --enable-ivsalloc.
This commit is contained in:
parent
22588dda6e
commit
03eea4fb8b
7
INSTALL
7
INSTALL
@ -124,9 +124,10 @@ any of the following arguments (not a definitive list) to 'configure':
|
|||||||
option documentation for usage details.
|
option documentation for usage details.
|
||||||
|
|
||||||
--enable-ivsalloc
|
--enable-ivsalloc
|
||||||
Enable validation code, which verifies that pointers reside within
|
Enable validation code for malloc_usable_size() and sallocx(), which
|
||||||
jemalloc-owned chunks before dereferencing them. This incurs a minor
|
verifies that pointers reside within jemalloc-owned extents before
|
||||||
performance hit.
|
dereferencing metadata. This incurs a minor performance hit, and causes
|
||||||
|
the functions to return 0 for failed lookups.
|
||||||
|
|
||||||
--enable-prof
|
--enable-prof
|
||||||
Enable heap profiling and leak detection functionality. See the "opt.prof"
|
Enable heap profiling and leak detection functionality. See the "opt.prof"
|
||||||
|
@ -1061,12 +1061,19 @@ ivsalloc(tsdn_t *tsdn, const void *ptr)
|
|||||||
{
|
{
|
||||||
extent_t *extent;
|
extent_t *extent;
|
||||||
|
|
||||||
/* Return 0 if ptr is not within a chunk managed by jemalloc. */
|
/*
|
||||||
|
* Return 0 if ptr is not within an extent managed by jemalloc. This
|
||||||
|
* function has two extra costs relative to isalloc():
|
||||||
|
* - The extent_lookup() call cannot claim to be a dependent lookup,
|
||||||
|
* which induces rtree lookup load dependencies.
|
||||||
|
* - The lookup may fail, so there is an extra branch to check for
|
||||||
|
* failure.
|
||||||
|
* */
|
||||||
extent = extent_lookup(tsdn, ptr, false);
|
extent = extent_lookup(tsdn, ptr, false);
|
||||||
if (extent == NULL)
|
if (extent == NULL)
|
||||||
return (0);
|
return (0);
|
||||||
assert(extent_active_get(extent));
|
assert(extent_active_get(extent));
|
||||||
/* Only arena chunks should be looked up via interior pointers. */
|
/* Only slab members should be looked up via interior pointers. */
|
||||||
assert(extent_addr_get(extent) == ptr || extent_slab_get(extent));
|
assert(extent_addr_get(extent) == ptr || extent_slab_get(extent));
|
||||||
|
|
||||||
return (isalloc(tsdn, extent, ptr));
|
return (isalloc(tsdn, extent, ptr));
|
||||||
|
@ -195,7 +195,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* JEMALLOC_IVSALLOC enables ivsalloc(), which verifies that pointers reside
|
* JEMALLOC_IVSALLOC enables ivsalloc(), which verifies that pointers reside
|
||||||
* within jemalloc-owned chunks before dereferencing them.
|
* within jemalloc-owned extents before dereferencing them.
|
||||||
*/
|
*/
|
||||||
#undef JEMALLOC_IVSALLOC
|
#undef JEMALLOC_IVSALLOC
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user