summaryrefslogtreecommitdiff
path: root/src/libpcp_fault/README
diff options
context:
space:
mode:
Diffstat (limited to 'src/libpcp_fault/README')
-rw-r--r--src/libpcp_fault/README58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/libpcp_fault/README b/src/libpcp_fault/README
new file mode 100644
index 0000000..b6f3f18
--- /dev/null
+++ b/src/libpcp_fault/README
@@ -0,0 +1,58 @@
+libpcp_fault is a version of libpcp that has fault injection
+capabilities added and lock debug instrumentation.
+
+This library is NOT intended to be packaged or shipped,
+rather it is intended for use with the PCP QA suite.
+
+Normal builds do not descend into this directory.
+
+To build and use the library, cd into here, then
+
+ $ cd src
+ $ make
+ $ sudo make install
+ $ make clean
+
+To use the library in a test application,
+
+ #include <pcp/fault.h>
+
+ ...
+
+Then compile the code with -DPM_FAULT_INJECTION=1 and link with
+-lpcp_fault instead of -lpcp
+
+To use with an executable that is already linked, set $LD_PRELOAD
+in the environment to the full pathname of the installed
+libpcp_fault, e.g.
+
+ $ LD_PRELOAD=/usr/lib/libpcp_fault.so pminfo ...
+
+The mechanisms for defining fault injection points and controlling
+the triggering of fault injection is described in the brief "man"
+page found in the this directory. Review with
+
+ $ man ./pmfault.3
+
+Lock debugging is activated with -D options on the command line for
+standard PCP applications:
+
+ -D lock enables lock debug tracing, by default all lock and
+ unlock requests are traced with the source:lineno of
+ the caller and some symbolic reference to the lock
+ type ... lock recursion is reported by a [count=N]
+ note if the lock count is not 0 for a lock() and 1
+ for an unlock()
+
+ -D lock,appl0
+ restrict the tracing to the global libpcp lock
+
+ -D lock,appl1
+ restrict tracing to the per-context locks
+
+ -D lock,appl2
+ restrict tracing to the ipc channel lock for each
+ context
+
+One or more appl? flags may be specified. -D lock is equivalent to
+-D lock,appl0,appl1,appl2