aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Squyres <jsquyres@cisco.com>2006-10-17 22:33:15 +0000
committerRoland Dreier <rolandd@cisco.com>2006-11-09 11:36:33 -0800
commit8280a953b1f687218eaca34dc97dff05541bbe30 (patch)
tree3256fa9c4c3cf7eaf13fbe3fad965da9e95a4804
parentf188bf878fca16e1fb1a7eaa839ea9f238ea94a2 (diff)
downloadlibibverbs-8280a953b1f687218eaca34dc97dff05541bbe30.tar.gz
Add README notes about Valgrind memcheck support
Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--README33
1 files changed, 33 insertions, 0 deletions
diff --git a/README b/README
index 8688efd..063a334 100644
--- a/README
+++ b/README
@@ -60,6 +60,39 @@ via the file /etc/security/limits.conf. More configuration may be
necessary if you are logging in via OpenSSH and your sshd is
configured to use privilege separation.
+Valgrind support
+----------------
+
+When running applications that use libibverbs under the Valgrind
+memory-checking debugger, Valgrind will falsely report "read from
+uninitialized" for memory that was initialized by the kernel drivers.
+Specifically, Valgrind cannot see when kernel drivers write to
+userspace memory, so when the process reads from that memory, Valgrind
+incorrectly assumes that the memory contents are uninitialized, and
+therefore raises a warning.
+
+libibverbs can be built with specific support for the Valgrind
+memory-checking debugger by specifying the --with-valgrind command
+line argument to configure. This flag enables code in libibverbs to
+tell Valgrind "this memory may look uninitialized, but it's really
+OK," which therefore suppresses the incorrect "read from
+uninitialized" warnings. This code adds trivial overhead to the
+critical performance path, so it is disabled by default. The intent
+is that production users can use a "normal" build of libibverbs and
+developers can use the "valgrind debug" build by simply switching
+their LD_LIBRARY_PATH and/or OPENIB_DRIVER_PATH environment variables.
+
+Libibverbs needs some header files from Valgrind in order to compile
+this support; it is important to use the header files from the same
+version of Valgrind that will be used at run time. You may need to
+specify the directory where Valgrind's header files are installed as
+an argument to --with-valgrind. For example
+
+ ./configure --with-valgrind=/opt/valgrind
+
+will make the libibverbs build look for valgrind headers in
+/opt/valgrind/include
+
Reporting bugs
==============