pcp
[Top] [All Lists]

How should we approach the loading of the IB pmda as a LOCAL context DSO

To: pcp@xxxxxxxxxxx
Subject: How should we approach the loading of the IB pmda as a LOCAL context DSO?
From: Corneliu Boac <cboac@xxxxxxx>
Date: Wed, 24 Mar 2010 11:50:25 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100228 SUSE/3.0.3-1.1.1 Thunderbird/3.0.3
Hello PCP group:

I have ran into a PCP bug: the cluster pmda failed to load the ib pmda dso.
How should we approach the loading of the IB pmda as a LOCAL context DSO?
Should we just permanently add it to the dsotab like in the following patch,
or should we rethink the dsotab and allow it to grow dynamically via a new API?
===========================================================================
diff -uprBw pcp-3.1.1.sgi.orig/src/libpcp/src/GNUmakefile pcp-3.1.1.sgi/src/libpcp/src/GNUmakefile
--- pcp-3.1.1.sgi.orig/src/libpcp/src/GNUmakefile	2010-02-25 15:07:18.000000000 -0600
+++ pcp-3.1.1.sgi/src/libpcp/src/GNUmakefile	2010-03-24 09:47:08.000000000 -0500
@@ -91,11 +91,8 @@ else
 kernel_pmda_dso	= $(TARGET_OS)
 endif
 
-ifeq ($(HAVE_IBDEV),1)
+# the pmdacluster needs the ib entry into the dsotab (even if HAVE_IBDEV is not defined by default)
 infiniband_pmda_dso = ib
-else
-infiniband_pmda_dso =
-endif
 
 dsotbl.h:	$(TOPDIR)/src/pmns/stdpmid 
 	echo '/* This file is automatically generated by build' > $@
===========================================================================


After I apply this patch the libpcp/src/dsotbl.h looks like this:
---------------------------------------------------------------------------
/* This file is automatically generated by build
 *
 * It contains list of DSO, supported by the CONTEXT_LOCAL
 */
static __pmDSO dsotab[] = {
#define  LINUX_DSO 60
	{ 60, "linux/pmda_linux.so", "linux_init" },
#define  IB_DSO 91
	{ 91, "ib/pmda_ib.so", "ib_init" },
#define  MMV_DSO 70
	{ 70, "mmv/pmda_mmv.so", "mmv_init" },
#define  SAMPLE_DSO 30
	{ 30, "sample/pmda_sample.so", "sample_init" },
};
static int	numdso = (sizeof(dsotab)/sizeof(dsotab[0]));
---------------------------------------------------------------------------


Thank you,
Cornel
-- 
Corneliu Boac - Software Engineer
Silicon Graphics International
2750 Blue Water Road
Eagan, MN 55121
Phone: (651)683-7900
E-mail: cboac@xxxxxxx

<Prev in Thread] Current Thread [Next in Thread>