Changeset: 105970184241 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=105970184241
Modified Files:
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_profiler.h
Branch: holindex
Log Message:

Export CPU load for use in holisitic indexing. Add appropriate functions.


diffs (119 lines):

diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -65,29 +65,6 @@ static int profileAll = 0;  /* all instr
 static int delayswitch = 0; /* to wait before sending the profile info */
 static int eventcounter = 0;
 
-#define PROFevent   0
-#define PROFtime    1
-#define PROFthread  2
-#define PROFpc      3
-#define PROFfunc    4
-#define PROFticks   5
-#define PROFcpu     6
-#define PROFmemory  7
-#define PROFreads   8
-#define PROFwrites  9
-#define PROFrbytes  10
-#define PROFwbytes  11
-#define PROFstmt    12
-#define PROFaggr    13
-#define PROFprocess 14
-#define PROFuser    15
-#define PROFstart   16
-#define PROFtype    17
-#define PROFdot     18
-#define PROFflow   19
-#define PROFping   20  /* heartbeat ping messages */
-#define PROFfootprint 21
-
 static struct {
        str name;               /* which logical counter is needed */
        int status;             /* trace it or not */
@@ -117,6 +94,12 @@ static struct {
        /*  21 */  { 0, 0}
 };
 
+int
+getProfileCounter(int idx){
+       return profileCounter[idx].status ==1;
+}
+
+
 /*
  * The counters can be set individually.
  */
@@ -1306,6 +1289,20 @@ static int getCPULoad(char cpuload[BUFSI
        }
        return 0;
 }
+// Give users the option to check for the system load between two heart beats
+double HeartbeatCPUload(void)
+{
+       return corestat[255].load;
+}
+void profilerGetCPUStat(lng *user, lng *nice, lng *sys, lng *idle, lng *iowait)
+{
+       (void) getCPULoad(0);
+       *user = corestat[255].user;
+       *nice = corestat[255].nice;
+       *sys = corestat[255].system;
+       *idle = corestat[255].idle;
+       *iowait = corestat[255].iowait;
+}
 
 void profilerHeartbeatEvent(str msg)
 {
diff --git a/monetdb5/mal/mal_profiler.h b/monetdb5/mal/mal_profiler.h
--- a/monetdb5/mal/mal_profiler.h
+++ b/monetdb5/mal/mal_profiler.h
@@ -57,8 +57,32 @@ typedef struct RECSTAT {
        int RPreset0;     /* Number of instructions evicted from RP by reset() 
due to updates*/
 } *RecPtr, RecStat;
 
+#define PROFevent   0
+#define PROFtime    1
+#define PROFthread  2
+#define PROFpc      3
+#define PROFfunc    4
+#define PROFticks   5
+#define PROFcpu     6
+#define PROFmemory  7
+#define PROFreads   8
+#define PROFwrites  9
+#define PROFrbytes  10
+#define PROFwbytes  11
+#define PROFstmt    12
+#define PROFaggr    13
+#define PROFprocess 14
+#define PROFuser    15
+#define PROFstart   16
+#define PROFtype    17
+#define PROFdot     18
+#define PROFflow   19
+#define PROFping   20  /* heartbeat ping messages */
+#define PROFfootprint 21
+
 mal_export str activateCounter(str name);
 mal_export str deactivateCounter(str name);
+mal_export int getProfileCounter(int idx);
 mal_export str openProfilerStream(stream *fd);
 mal_export str closeProfilerStream(void);
 
@@ -77,6 +101,7 @@ mal_export str stopProfiling(void);
 mal_export str cleanupProfiler(void);
 mal_export void initHeartbeat(void);
 mal_export void stopHeartbeat(void);
+mal_export double HeartbeatCPUload(void);
 
 mal_export int instrFilter(InstrPtr pci, str mod, str fcn);
 mal_export void setFilter(Module cntxt, str mod, str fcn);
@@ -101,6 +126,7 @@ mal_export lng getDiskReads(void);
 mal_export lng getDiskWrites(void);
 mal_export lng getUserTime(void);
 mal_export lng getSystemTime(void);
+mal_export void profilerGetCPUStat(lng *user, lng *nice, lng *sys, lng *idle, 
lng *iowait);
 mal_export void _initTrace(void);
 
 #endif
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to