Changeset: e6390b5ada54 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e6390b5ada54
Modified Files:
        monetdb5/mal/mal_dataflow.c
Branch: default
Log Message:

Just pick the oldest eligible instruction to continue


diffs (46 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
@@ -399,32 +399,24 @@ DFLOWworker(void *T)
 #ifdef HOTPOTATOE
        /* HOT potatoe choice */
        int last = 0, nxt = -1;
-       lng nxtclaim = -2;
 
        MT_lock_set(&flow->flowlock);
        for (last = fe->pc - flow->start; last >= 0 && (i = flow->nodes[last]) 
> 0; last = flow->edges[last]){
                if (flow->status[i].state == DFLOWpending && 
flow->status[i].blocks == 1) {
-                       /* find the one with the largest footprint */
-                       if( nxt == -1){
-                               nxt = i;
-                               nxtclaim = flow->status[i].argclaim;
-                       }
-                       if( flow->status[i].argclaim > nxtclaim){
-                               nxt = i;
-                               nxtclaim =  flow->status[i].argclaim;
-                       }
+                       /* just pick the oldest available */
+                       nxt = i;
+                       break;
                }
        }
        /* hot potatoe can not be removed, use alternative to proceed */
        if( nxt >= 0){
-               i = nxt;
-               flow->status[i].state = DFLOWrunning;
-               flow->status[i].blocks = 0;
-               flow->status[i].hotclaim = fe->hotclaim;
-               flow->status[i].argclaim += fe->hotclaim;
-               if( flow->status[i].maxclaim < fe->maxclaim)
-                       flow->status[i].maxclaim = fe->maxclaim;
-               fnxt = flow->status + i;
+               flow->status[nxt].state = DFLOWrunning;
+               flow->status[nxt].blocks = 0;
+               flow->status[nxt].hotclaim = fe->hotclaim;
+               flow->status[nxt].argclaim += fe->hotclaim;
+               if( flow->status[nxt].maxclaim < fe->maxclaim)
+                       flow->status[nxt].maxclaim = fe->maxclaim;
+               fnxt = flow->status + nxt;
        }
        MT_lock_unset(&flow->flowlock);
 #endif
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to