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