Suppress valgrind "unimplemented functionality" error
Summary: Add ROCKSDB_VALGRIND_RUN macro and suppress false-positive "unimplemented functionality" throw by valgrind for steam hints. Another approach would be add a valgrind suppress file. Valgrind is suppose to print the suppression when given "--gen-suppressions=all" param, which is suppose to be the content for the suppression file. But it doesn't print. Closes https://github.com/facebook/rocksdb/pull/3174 Differential Revision: D6338786 Pulled By: yiwu-arbug fbshipit-source-id: 3559efa5f3b92d40d09ad6ac82bc7b59f86c75aa
This commit is contained in:
parent
54b43563be
commit
bbcd3b0bd2
7
Makefile
7
Makefile
@ -237,6 +237,11 @@ ifdef COMPILE_WITH_UBSAN
|
|||||||
PLATFORM_CXXFLAGS += -fsanitize=undefined -DROCKSDB_UBSAN_RUN
|
PLATFORM_CXXFLAGS += -fsanitize=undefined -DROCKSDB_UBSAN_RUN
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef ROCKSDB_VALGRIND_RUN
|
||||||
|
PLATFORM_CCFLAGS += -DROCKSDB_VALGRIND_RUN
|
||||||
|
PLATFORM_CXXFLAGS += -DROCKSDB_VALGRIND_RUN
|
||||||
|
endif
|
||||||
|
|
||||||
ifndef DISABLE_JEMALLOC
|
ifndef DISABLE_JEMALLOC
|
||||||
ifdef JEMALLOC
|
ifdef JEMALLOC
|
||||||
PLATFORM_CXXFLAGS += -DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE
|
PLATFORM_CXXFLAGS += -DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE
|
||||||
@ -870,7 +875,7 @@ ubsan_crash_test:
|
|||||||
$(MAKE) clean
|
$(MAKE) clean
|
||||||
|
|
||||||
valgrind_test:
|
valgrind_test:
|
||||||
DISABLE_JEMALLOC=1 $(MAKE) valgrind_check
|
ROCKSDB_VALGRIND_RUN=1 DISABLE_JEMALLOC=1 $(MAKE) valgrind_check
|
||||||
|
|
||||||
valgrind_check: $(TESTS)
|
valgrind_check: $(TESTS)
|
||||||
$(MAKE) DRIVER="$(VALGRIND_VER) $(VALGRIND_OPTS)" gen_parallel_tests
|
$(MAKE) DRIVER="$(VALGRIND_VER) $(VALGRIND_OPTS)" gen_parallel_tests
|
||||||
|
3
env/io_posix.cc
vendored
3
env/io_posix.cc
vendored
@ -865,6 +865,8 @@ uint64_t PosixWritableFile::GetFileSize() { return filesize_; }
|
|||||||
|
|
||||||
void PosixWritableFile::SetWriteLifeTimeHint(Env::WriteLifeTimeHint hint) {
|
void PosixWritableFile::SetWriteLifeTimeHint(Env::WriteLifeTimeHint hint) {
|
||||||
#ifdef OS_LINUX
|
#ifdef OS_LINUX
|
||||||
|
// Suppress Valgrind "Unimplemented functionality" error.
|
||||||
|
#ifndef ROCKSDB_VALGRIND_RUN
|
||||||
if (hint == write_hint_) {
|
if (hint == write_hint_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -872,6 +874,7 @@ void PosixWritableFile::SetWriteLifeTimeHint(Env::WriteLifeTimeHint hint) {
|
|||||||
write_hint_ = hint;
|
write_hint_ = hint;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
Status PosixWritableFile::InvalidateCache(size_t offset, size_t length) {
|
Status PosixWritableFile::InvalidateCache(size_t offset, size_t length) {
|
||||||
|
Loading…
Reference in New Issue
Block a user