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
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to