Changeset: 26425febd009 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/26425febd009
Branch: default
Log Message:

Merge with Sep2022 branch.


diffs (truncated from 2128 to 300 lines):

diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -47779,6 +47779,11 @@ pattern profiler.openstream():void
 CMDopenProfilerStream;
 Start profiling the events, send to output stream
 profiler
+openstream
+pattern profiler.openstream(X_0:str):void 
+CMDopenProfilerStream;
+Start profiling the events, send to output stream
+profiler
 setheartbeat
 unsafe command profiler.setheartbeat(X_0:int):void 
 CMDsetHeartbeat;
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -36204,6 +36204,11 @@ pattern profiler.openstream():void
 CMDopenProfilerStream;
 Start profiling the events, send to output stream
 profiler
+openstream
+pattern profiler.openstream(X_0:str):void 
+CMDopenProfilerStream;
+Start profiling the events, send to output stream
+profiler
 setheartbeat
 unsafe command profiler.setheartbeat(X_0:int):void 
 CMDsetHeartbeat;
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1078,7 +1078,6 @@ const char *ioRef;
 bool isExceptionVariable(const char *nme);
 int isIdentifier(str s);
 int isLoopBarrier(MalBlkPtr mb, int pc);
-int isNotUsedIn(InstrPtr p, int start, int a);
 int isOptimizerPipe(const char *name);
 const char *iteratorRef;
 const char *jitRef;
@@ -1101,7 +1100,6 @@ const char *lookupRef;
 str mal2str(MalBlkPtr mb, int first, int last);
 int malAtomSize(int size, const char *name);
 str malBootstrap(char *modules[], bool embedded);
-str malCommandCall(MalStkPtr stk, InstrPtr pci);
 str malEmbeddedBoot(int workerlimit, int memorylimit, int querytimeout, int 
sessionlimit, bool with_mapi_server);
 void malEmbeddedReset(void);
 _Noreturn void malEmbeddedStop(int status);
@@ -1111,7 +1109,6 @@ str malIncludeModules(Client c, char *mo
 str malIncludeString(Client c, const char *name, str mal, int listing, MALfcn 
address);
 int malLibraryEnabled(const char *name);
 char *malLibraryHowToEnable(const char *name);
-int malProfileMode;
 const char *malRef;
 void mal_atom_reset(void);
 ClientRec *mal_clients;
@@ -1211,7 +1208,7 @@ const char *not_uniqueRef;
 const char *nth_valueRef;
 const char *ntileRef;
 const char *oidRef;
-str openProfilerStream(Client cntxt);
+str openProfilerStream(Client cntxt, str s);
 const char *openRef;
 str operatorName(int i);
 void opt_pipes_reset(void);
@@ -1240,10 +1237,12 @@ const char *printRef;
 void printSignature(stream *fd, Symbol s, int flg);
 void printStack(stream *f, MalBlkPtr mb, MalStkPtr s);
 const char *prodRef;
-void profilerEvent(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, 
int start);
+void profilerEvent(MalEvent *me, NonMalEvent *nme);
 void profilerGetCPUStat(lng *user, lng *nice, lng *sys, lng *idle, lng 
*iowait);
 void profilerHeartbeatEvent(char *alter);
+int profilerMode;
 const char *profilerRef;
+int profilerStatus;
 const char *projectRef;
 const char *projectdeltaRef;
 const char *projectionRef;
@@ -1325,6 +1324,7 @@ void runtimeProfileBegin(Client cntxt, M
 void runtimeProfileExit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci, RuntimeProfile prof);
 void runtimeProfileFinish(Client cntxt, MalBlkPtr mb, MalStkPtr stk);
 void runtimeProfileInit(Client cntxt, MalBlkPtr mb, MalStkPtr stk);
+oid runtimeProfileSetTag(Client cntxt);
 const char *sampleRef;
 const char *schedulerRef;
 const char *selectNotNilRef;
diff --git a/gdk/ChangeLog.Sep2022 b/gdk/ChangeLog.Sep2022
--- a/gdk/ChangeLog.Sep2022
+++ b/gdk/ChangeLog.Sep2022
@@ -2,7 +2,7 @@
 # This file is updated with Maddlog
 
 * Fri Jul 29 2022 Sjoerd Mullender <sjo...@acm.org>
-- The abort_on_error paramter of all GDK-level functions has been removed.
+- The abort_on_error parameter of all GDK-level functions has been removed.
   Errors (e.g. overflow) now also results in an error.
 
 * Wed Jul 13 2022 Sjoerd Mullender <sjo...@acm.org>
diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h
--- a/monetdb5/mal/mal.h
+++ b/monetdb5/mal/mal.h
@@ -158,7 +158,6 @@ typedef struct {
        /* inline statistics */
        lng clock;                                      /* when the last call 
was started */
        lng ticks;                                      /* total micro seconds 
spent in last call */
-       int calls;                                      /* number of calls made 
to this instruction */
        lng totticks;                           /* total time spent on this 
instruction. */
        lng wbytes;                                     /* number of bytes 
produced in last instruction */
        /* the core admin */
diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c
--- a/monetdb5/mal/mal_client.c
+++ b/monetdb5/mal/mal_client.c
@@ -183,7 +183,9 @@ MCresetProfiler(stream *fdout)
        if (fdout != maleventstream)
                return;
        MT_lock_set(&mal_profileLock);
-       maleventstream = 0;
+       maleventstream = NULL;
+       profilerStatus = 0;
+       profilerMode = 0;
        MT_lock_unset(&mal_profileLock);
 }
 
@@ -207,6 +209,13 @@ MCexitClient(Client c)
                c->fdout = NULL;
                c->fdin = NULL;
        }
+       assert(c->query == NULL);
+       if(profilerStatus > 0) {
+               lng Tend = GDKusec();
+               profilerEvent(NULL,
+                                         &(struct NonMalEvent)
+                                         {CLIENT_END, c, Tend,  NULL, NULL, 0, 
Tend-(c->session)});
+       }
        setClientContext(NULL);
 }
 
@@ -292,7 +301,6 @@ MCinitClient(oid user, bstream *fin, str
 
        MT_lock_set(&mal_contextLock);
        c = MCnewClient();
-
        if (c) {
                Client c_old = setClientContext(c);
                (void) c_old;
@@ -300,6 +308,10 @@ MCinitClient(oid user, bstream *fin, str
                c = MCinitClientRecord(c, user, fin, fout);
        }
        MT_lock_unset(&mal_contextLock);
+
+       profilerEvent(NULL,
+                                 &(struct NonMalEvent)
+                                 {CLIENT_START, c, c->session,  NULL, NULL, 0, 
0});
        return c;
 }
 
diff --git a/monetdb5/mal/mal_dataflow.c b/monetdb5/mal/mal_dataflow.c
--- a/monetdb5/mal/mal_dataflow.c
+++ b/monetdb5/mal/mal_dataflow.c
@@ -447,7 +447,7 @@ DFLOWworker(void *T)
 #endif
 
                        q_enqueue(flow->done, fe);
-                       if ( fnxt == 0 && malProfileMode) {
+                       if ( fnxt == 0 && profilerStatus) {
                                profilerHeartbeatEvent("wait");
                        }
                }
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -29,8 +29,8 @@ setqptimeout(lng usecs)
        qptimeout = usecs;
 }
 
-inline
-ptr getArgReference(MalStkPtr stk, InstrPtr pci, int k)
+inline ptr
+getArgReference(MalStkPtr stk, InstrPtr pci, int k)
 {
        /* the C standard says: "A pointer to a union object, suitably
         * converted, points to each of its members (or if a member is a
@@ -39,39 +39,47 @@ ptr getArgReference(MalStkPtr stk, Instr
        return (ptr) &stk->stk[pci->argv[k]].val;
 }
 
-str malCommandCall(MalStkPtr stk, InstrPtr pci)
+static str
+malCommandCall(MalStkPtr stk, InstrPtr pci)
 {
        str ret= MAL_SUCCEED;
 
        switch (pci->argc) {
-       case 0: ret = (*pci->fcn)();
+       case 0:
+               ret = (*pci->fcn)();
                break;
-       case 1: ret = (*pci->fcn)(
+       case 1:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0));
                break;
-       case 2: ret = (*pci->fcn)(
+       case 2:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1));
                break;
-       case 3: ret = (*pci->fcn)(
+       case 3:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1),
                        getArgReference(stk, pci, 2));
                break;
-       case 4: ret = (*pci->fcn)(
+       case 4:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1),
                        getArgReference(stk, pci, 2),
                        getArgReference(stk, pci, 3));
                break;
-       case 5: ret = (*pci->fcn)(
+       case 5:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1),
                        getArgReference(stk, pci, 2),
                        getArgReference(stk, pci, 3),
                        getArgReference(stk, pci, 4));
                break;
-       case 6: ret = (*pci->fcn)(
+       case 6:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1),
                        getArgReference(stk, pci, 2),
@@ -79,7 +87,8 @@ str malCommandCall(MalStkPtr stk, InstrP
                        getArgReference(stk, pci, 4),
                        getArgReference(stk, pci, 5));
                break;
-       case 7: ret = (*pci->fcn)(
+       case 7:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1),
                        getArgReference(stk, pci, 2),
@@ -88,7 +97,8 @@ str malCommandCall(MalStkPtr stk, InstrP
                        getArgReference(stk, pci, 5),
                        getArgReference(stk, pci, 6));
                break;
-       case 8: ret = (*pci->fcn)(
+       case 8:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1),
                        getArgReference(stk, pci, 2),
@@ -98,7 +108,8 @@ str malCommandCall(MalStkPtr stk, InstrP
                        getArgReference(stk, pci, 6),
                        getArgReference(stk, pci, 7));
                break;
-       case 9: ret = (*pci->fcn)(
+       case 9:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1),
                        getArgReference(stk, pci, 2),
@@ -109,7 +120,8 @@ str malCommandCall(MalStkPtr stk, InstrP
                        getArgReference(stk, pci, 7),
                        getArgReference(stk, pci, 8));
                break;
-       case 10: ret = (*pci->fcn)(
+       case 10:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1),
                        getArgReference(stk, pci, 2),
@@ -121,7 +133,8 @@ str malCommandCall(MalStkPtr stk, InstrP
                        getArgReference(stk, pci, 8),
                        getArgReference(stk, pci, 9));
                break;
-       case 11: ret = (*pci->fcn)(
+       case 11:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1),
                        getArgReference(stk, pci, 2),
@@ -134,7 +147,8 @@ str malCommandCall(MalStkPtr stk, InstrP
                        getArgReference(stk, pci, 9),
                        getArgReference(stk, pci, 10));
                break;
-       case 12: ret = (*pci->fcn)(
+       case 12:
+               ret = (*pci->fcn)(
                        getArgReference(stk, pci, 0),
                        getArgReference(stk, pci, 1),
                        getArgReference(stk, pci, 2),
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to