Add flag to forcibly disable fallocate
Summary: see https://github.com/facebook/rocksdb/issues/977; there are issues with fallocate() on certain filesystems/kernel versions that can lead it to pre- allocating blocks but never freeing them, even if they're unused. Test Plan: verified build commands omit DROCKSDB_FALLOCATE_PRESENT when this env variable is set. without disabling it: $ ROCKSDB_NO_FBCODE=1 make -n env_test | grep -q DROCKSDB_FALLOCATE_PRESENT ; echo $? 0 with disabling it: $ ROCKSDB_NO_FBCODE=1 DISABLE_FALLOCATE=1 make -n env_test | grep -q DROCKSDB_FALLOCATE_PRESENT ; echo $? 1 Reviewers: kradhakrishnan, yhchiang, sdong Reviewed By: sdong Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D54069
This commit is contained in:
parent
92a9ccf1a6
commit
6a2b4fcb80
@ -189,6 +189,7 @@ if [ "$CROSS_COMPILE" = "true" -o "$FBCODE_BUILD" = "true" ]; then
|
|||||||
# Also don't need any compilation tests if compiling on fbcode
|
# Also don't need any compilation tests if compiling on fbcode
|
||||||
true
|
true
|
||||||
else
|
else
|
||||||
|
if ! test $ROCKSDB_DISABLE_FALLOCATE; then
|
||||||
# Test whether fallocate is available
|
# Test whether fallocate is available
|
||||||
$CXX $CFLAGS -x c++ - -o /dev/null 2>/dev/null <<EOF
|
$CXX $CFLAGS -x c++ - -o /dev/null 2>/dev/null <<EOF
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
@ -201,6 +202,7 @@ EOF
|
|||||||
if [ "$?" = 0 ]; then
|
if [ "$?" = 0 ]; then
|
||||||
COMMON_FLAGS="$COMMON_FLAGS -DROCKSDB_FALLOCATE_PRESENT"
|
COMMON_FLAGS="$COMMON_FLAGS -DROCKSDB_FALLOCATE_PRESENT"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Test whether Snappy library is installed
|
# Test whether Snappy library is installed
|
||||||
# http://code.google.com/p/snappy/
|
# http://code.google.com/p/snappy/
|
||||||
|
Loading…
Reference in New Issue
Block a user