Changeset: 33a1b7bfcb28 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=33a1b7bfcb28
Modified Files:
monetdb5/mal/mal_dataflow.c
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_resource.c
monetdb5/mal/mal_resource.h
Branch: Feb2013
Log Message:
Make MALresource independent of cntxt and mb
diffs (87 lines):
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
@@ -328,13 +328,13 @@ DFLOWworker(void *t)
}
MT_lock_unset(&flow->flowlock, "MALworker");
+ q_enqueue(flow->done, fe);
if ( fnxt == 0) {
if (todo->last == 0)
profilerHeartbeatEvent("wait");
else
- MALresourceFairness(flow->cntxt, flow->mb,
usec);
+ MALresourceFairness(usec);
}
- q_enqueue(flow->done, fe);
}
GDKfree(GDKerrbuf);
GDKsetbuf(0);
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
@@ -562,7 +562,7 @@ str runMALsequence(Client cntxt, MalBlkP
//Ensure we spread system resources over multiple users as well.
//if ( cntxt->idx > 1 )
- //MALresourceFairness(cntxt,mb,0);
+ //MALresourceFairness(cntxt,mb,GDKusec()-
mb->starttime);
runtimeProfileBegin(cntxt, mb, stk, stkpc, &runtimeProfile, 1);
if (pci->recycle > 0)
stk->clk = GDKusec();
diff --git a/monetdb5/mal/mal_resource.c b/monetdb5/mal/mal_resource.c
--- a/monetdb5/mal/mal_resource.c
+++ b/monetdb5/mal/mal_resource.c
@@ -184,7 +184,7 @@ static MT_Lock runningLock
#endif
void
-MALresourceFairness(Client cntxt, MalBlkPtr mb, lng usec)
+MALresourceFairness(lng usec)
{
size_t rss;
unsigned int delay;
@@ -210,20 +210,11 @@ MALresourceFairness(Client cntxt, MalBlk
if ( rss < MEMORY_THRESHOLD * monet_memory)
return;
- if ( usec )
- /* worker reporting time spent ! */
- clk = usec / 1000;
- else {
- /* interpreter calling without timing */
- /* punish based on total duration of call */
- clk = (GDKusec() - mb->starttime)/1000;
- if ( clk <= TIMESLICE)
- /* use fake time for penalty */
- clk = DELAYUNIT;
- }
+ /* worker reporting time spent in usec! */
+ clk = usec / 1000;
if ( clk > DELAYUNIT ) {
- PARDEBUG mnstr_printf(GDKstdout, "#delay %d initial "LLFMT"n",
cntxt->idx, clk);
+ PARDEBUG mnstr_printf(GDKstdout, "#delay initial "LLFMT"n",
clk);
ATOMIC_DEC_int(running, runningLock, "MALresourceFairness");
while (clk > 0) {
/* speed up wake up when we have memory */
@@ -236,7 +227,7 @@ MALresourceFairness(Client cntxt, MalBlk
delay = (unsigned int) ( ((double)DELAYUNIT * running)
/ threads);
if (delay) {
if ( delayed++ == 0){
- mnstr_printf(GDKstdout, "#delay
%d initial %u["LLFMT"] memory "SZFMT"[%f]\n", cntxt->idx, delay, clk, rss,
MEMORY_THRESHOLD * monet_memory);
+ mnstr_printf(GDKstdout, "#delay
initial %u["LLFMT"] memory "SZFMT"[%f]\n", delay, clk, rss, MEMORY_THRESHOLD *
monet_memory);
mnstr_flush(GDKstdout);
}
MT_sleep_ms(delay);
diff --git a/monetdb5/mal/mal_resource.h b/monetdb5/mal/mal_resource.h
--- a/monetdb5/mal/mal_resource.h
+++ b/monetdb5/mal/mal_resource.h
@@ -31,6 +31,6 @@ mal_export int MALadmission(lng argclaim
#endif
mal_export lng getMemoryClaim(MalBlkPtr mb, MalStkPtr stk, int pc, int i, int
flag);
-mal_export void MALresourceFairness(Client cntxt, MalBlkPtr mb, lng usec);
+mal_export void MALresourceFairness(lng usec);
#endif /* _MAL_RESOURCE_H*/
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list