Commit cb3cb473 authored by Simon Marlow's avatar Simon Marlow

Remove PAR/GRAN code from the storage manager

parent 432376bd
......@@ -398,10 +398,6 @@ thread_TSO (StgTSO *tso)
if ( tso->why_blocked == BlockedOnMVar
|| tso->why_blocked == BlockedOnBlackHole
|| tso->why_blocked == BlockedOnException
#if defined(PAR)
|| tso->why_blocked == BlockedOnGA
|| tso->why_blocked == BlockedOnGA_NoSend
#endif
) {
thread_(&tso->block_info.closure);
}
......@@ -703,10 +699,6 @@ update_fwd( bdescr *blocks )
bd = blocks;
#if defined(PAR)
barf("update_fwd: ToDo");
#endif
// cycle through all the blocks in the step
for (; bd != NULL; bd = bd->link) {
p = bd->start;
......@@ -735,10 +727,6 @@ update_fwd_compact( bdescr *blocks )
free_bd = blocks;
free = free_bd->start;
#if defined(PAR)
barf("update_fwd: ToDo");
#endif
// cycle through all the blocks in the step
for (; bd != NULL; bd = bd->link) {
p = bd->start;
......@@ -818,10 +806,6 @@ update_bkwd_compact( step *stp )
free = free_bd->start;
free_blocks = 1;
#if defined(PAR)
barf("update_bkwd: ToDo");
#endif
// cycle through all the blocks in the step
for (; bd != NULL; bd = bd->link) {
p = bd->start;
......
......@@ -287,9 +287,6 @@ evacuate_large(StgPtr p)
REGPARM1 StgClosure *
evacuate(StgClosure *q)
{
#if defined(PAR)
StgClosure *to;
#endif
bdescr *bd = NULL;
step *stp;
const StgInfoTable *info;
......@@ -634,43 +631,6 @@ loop:
}
}
#if defined(PAR)
case RBH:
{
//StgInfoTable *rip = get_closure_info(q, &size, &ptrs, &nonptrs, &vhs, str);
to = copy(q,BLACKHOLE_sizeW(),stp);
//ToDo: derive size etc from reverted IP
//to = copy(q,size,stp);
debugTrace(DEBUG_gc, "evacuate: RBH %p (%s) to %p (%s)",
q, info_type(q), to, info_type(to));
return to;
}
case BLOCKED_FETCH:
ASSERT(sizeofW(StgBlockedFetch) >= MIN_PAYLOD_SIZE);
to = copy(q,sizeofW(StgBlockedFetch),stp);
debugTrace(DEBUG_gc, "evacuate: %p (%s) to %p (%s)",
q, info_type(q), to, info_type(to));
return to;
# ifdef DIST
case REMOTE_REF:
# endif
case FETCH_ME:
ASSERT(sizeofW(StgBlockedFetch) >= MIN_PAYLOAD_SIZE);
to = copy(q,sizeofW(StgFetchMe),stp);
debugTrace(DEBUG_gc, "evacuate: %p (%s) to %p (%s)",
q, info_type(q), to, info_type(to)));
return to;
case FETCH_ME_BQ:
ASSERT(sizeofW(StgBlockedFetch) >= MIN_PAYLOAD_SIZE);
to = copy(q,sizeofW(StgFetchMeBlockingQueue),stp);
debugTrace(DEBUG_gc, "evacuate: %p (%s) to %p (%s)",
q, info_type(q), to, info_type(to)));
return to;
#endif
case TREC_HEADER:
return copy(q,sizeofW(StgTRecHeader),stp);
......@@ -927,15 +887,6 @@ selector_loop:
case SE_CAF_BLACKHOLE:
case SE_BLACKHOLE:
case BLACKHOLE:
#if defined(PAR)
case RBH:
case BLOCKED_FETCH:
# ifdef DIST
case REMOTE_REF:
# endif
case FETCH_ME:
case FETCH_ME_BQ:
#endif
// not evaluated yet
break;
......
......@@ -28,15 +28,6 @@
#include "ParTicky.h" // ToDo: move into Rts.h
#include "RtsSignals.h"
#include "STM.h"
#if defined(GRAN) || defined(PAR)
# include "GranSimRts.h"
# include "ParallelRts.h"
# include "FetchMe.h"
# if defined(DEBUG)
# include "Printer.h"
# include "ParallelDebug.h"
# endif
#endif
#include "HsFFI.h"
#include "Linker.h"
#if defined(RTS_GTK_FRONTPANEL)
......@@ -235,9 +226,6 @@ GarbageCollect ( rtsBool force_major_gc )
mutlist_OTHERS = 0;
#endif
// Init stats and print par specific (timing) info
PAR_TICKY_PAR_START();
// attribute any costs to CCS_GC
#ifdef PROFILING
prev_CCS = CCCS;
......@@ -273,9 +261,6 @@ GarbageCollect ( rtsBool force_major_gc )
#endif
// check stack sanity *before* GC (ToDo: check all threads)
#if defined(GRAN)
// ToDo!: check sanity IF_DEBUG(sanity, checkTSOsSanity());
#endif
IF_DEBUG(sanity, checkFreeListSanity());
/* Initialise the static object lists
......@@ -466,7 +451,6 @@ GarbageCollect ( rtsBool force_major_gc )
}
for (g = RtsFlags.GcFlags.generations-1; g > N; g--) {
IF_PAR_DEBUG(verbose, printMutableList(&generations[g]));
scavenge_mutable_list(&generations[g]);
evac_gen = g;
for (st = generations[g].n_steps-1; st >= 0; st--) {
......@@ -485,21 +469,6 @@ GarbageCollect ( rtsBool force_major_gc )
evac_gen = 0;
GetRoots(mark_root);
#if defined(PAR)
/* And don't forget to mark the TSO if we got here direct from
* Haskell! */
/* Not needed in a seq version?
if (CurrentTSO) {
CurrentTSO = (StgTSO *)MarkRoot((StgClosure *)CurrentTSO);
}
*/
// Mark the entries in the GALA table of the parallel system
markLocalGAs(major_gc);
// Mark all entries on the list of pending fetches
markPendingFetches(major_gc);
#endif
/* Mark the weak pointer list, and prepare to detect dead weak
* pointers.
*/
......@@ -614,12 +583,6 @@ GarbageCollect ( rtsBool force_major_gc )
}
}
#if defined(PAR)
// Reconstruct the Global Address tables used in GUM
rebuildGAtables(major_gc);
IF_DEBUG(sanity, checkLAGAtable(rtsTrue/*check closures, too*/));
#endif
// Now see which stable names are still alive.
gcStablePtrTable();
......@@ -1057,8 +1020,6 @@ GarbageCollect ( rtsBool force_major_gc )
#endif
RELEASE_SM_LOCK;
//PAR_TICKY_TP();
}
/* -----------------------------------------------------------------------------
......
......@@ -128,10 +128,6 @@ scavengeTSO (StgTSO *tso)
if ( tso->why_blocked == BlockedOnMVar
|| tso->why_blocked == BlockedOnBlackHole
|| tso->why_blocked == BlockedOnException
#if defined(PAR)
|| tso->why_blocked == BlockedOnGA
|| tso->why_blocked == BlockedOnGA_NoSend
#endif
) {
tso->block_info.closure = evacuate(tso->block_info.closure);
}
......@@ -563,60 +559,6 @@ scavenge(step *stp)
break;
}
#if defined(PAR)
case RBH:
{
#if 0
nat size, ptrs, nonptrs, vhs;
char str[80];
StgInfoTable *rip = get_closure_info(p, &size, &ptrs, &nonptrs, &vhs, str);
#endif
StgRBH *rbh = (StgRBH *)p;
(StgClosure *)rbh->blocking_queue =
evacuate((StgClosure *)rbh->blocking_queue);
failed_to_evac = rtsTrue; // mutable anyhow.
debugTrace(DEBUG_gc, "scavenge: RBH %p (%s) (new blocking_queue link=%p)",
p, info_type(p), (StgClosure *)rbh->blocking_queue);
// ToDo: use size of reverted closure here!
p += BLACKHOLE_sizeW();
break;
}
case BLOCKED_FETCH:
{
StgBlockedFetch *bf = (StgBlockedFetch *)p;
// follow the pointer to the node which is being demanded
(StgClosure *)bf->node =
evacuate((StgClosure *)bf->node);
// follow the link to the rest of the blocking queue
(StgClosure *)bf->link =
evacuate((StgClosure *)bf->link);
debugTrace(DEBUG_gc, "scavenge: %p (%s); node is now %p; exciting, isn't it",
bf, info_type((StgClosure *)bf),
bf->node, info_type(bf->node)));
p += sizeofW(StgBlockedFetch);
break;
}
#ifdef DIST
case REMOTE_REF:
#endif
case FETCH_ME:
p += sizeofW(StgFetchMe);
break; // nothing to do in this case
case FETCH_ME_BQ:
{
StgFetchMeBlockingQueue *fmbq = (StgFetchMeBlockingQueue *)p;
(StgClosure *)fmbq->blocking_queue =
evacuate((StgClosure *)fmbq->blocking_queue);
debugTrace(DEBUG_gc, "scavenge: %p (%s) exciting, isn't it",
p, info_type((StgClosure *)p)));
p += sizeofW(StgFetchMeBlockingQueue);
break;
}
#endif
case TVAR_WATCH_QUEUE:
{
StgTVarWatchQueue *wq = ((StgTVarWatchQueue *) p);
......@@ -978,55 +920,6 @@ linear_scan:
break;
}
#if defined(PAR)
case RBH:
{
#if 0
nat size, ptrs, nonptrs, vhs;
char str[80];
StgInfoTable *rip = get_closure_info(p, &size, &ptrs, &nonptrs, &vhs, str);
#endif
StgRBH *rbh = (StgRBH *)p;
bh->blocking_queue =
(StgTSO *)evacuate((StgClosure *)bh->blocking_queue);
failed_to_evac = rtsTrue; // mutable anyhow.
debugTrace(DEBUG_gc, "scavenge: RBH %p (%s) (new blocking_queue link=%p)",
p, info_type(p), (StgClosure *)rbh->blocking_queue));
break;
}
case BLOCKED_FETCH:
{
StgBlockedFetch *bf = (StgBlockedFetch *)p;
// follow the pointer to the node which is being demanded
(StgClosure *)bf->node =
evacuate((StgClosure *)bf->node);
// follow the link to the rest of the blocking queue
(StgClosure *)bf->link =
evacuate((StgClosure *)bf->link);
debugTrace(DEBUG_gc, "scavenge: %p (%s); node is now %p; exciting, isn't it",
bf, info_type((StgClosure *)bf),
bf->node, info_type(bf->node)));
break;
}
#ifdef DIST
case REMOTE_REF:
#endif
case FETCH_ME:
break; // nothing to do in this case
case FETCH_ME_BQ:
{
StgFetchMeBlockingQueue *fmbq = (StgFetchMeBlockingQueue *)p;
(StgClosure *)fmbq->blocking_queue =
evacuate((StgClosure *)fmbq->blocking_queue);
debugTrace(DEBUG_gc, "scavenge: %p (%s) exciting, isn't it",
p, info_type((StgClosure *)p)));
break;
}
#endif /* PAR */
case TVAR_WATCH_QUEUE:
{
StgTVarWatchQueue *wq = ((StgTVarWatchQueue *) p);
......@@ -1351,57 +1244,6 @@ scavenge_one(StgPtr p)
break;
}
#if defined(PAR)
case RBH:
{
#if 0
nat size, ptrs, nonptrs, vhs;
char str[80];
StgInfoTable *rip = get_closure_info(p, &size, &ptrs, &nonptrs, &vhs, str);
#endif
StgRBH *rbh = (StgRBH *)p;
(StgClosure *)rbh->blocking_queue =
evacuate((StgClosure *)rbh->blocking_queue);
failed_to_evac = rtsTrue; // mutable anyhow.
debugTrace(DEBUG_gc, "scavenge: RBH %p (%s) (new blocking_queue link=%p)",
p, info_type(p), (StgClosure *)rbh->blocking_queue));
// ToDo: use size of reverted closure here!
break;
}
case BLOCKED_FETCH:
{
StgBlockedFetch *bf = (StgBlockedFetch *)p;
// follow the pointer to the node which is being demanded
(StgClosure *)bf->node =
evacuate((StgClosure *)bf->node);
// follow the link to the rest of the blocking queue
(StgClosure *)bf->link =
evacuate((StgClosure *)bf->link);
debugTrace(DEBUG_gc,
"scavenge: %p (%s); node is now %p; exciting, isn't it",
bf, info_type((StgClosure *)bf),
bf->node, info_type(bf->node)));
break;
}
#ifdef DIST
case REMOTE_REF:
#endif
case FETCH_ME:
break; // nothing to do in this case
case FETCH_ME_BQ:
{
StgFetchMeBlockingQueue *fmbq = (StgFetchMeBlockingQueue *)p;
(StgClosure *)fmbq->blocking_queue =
evacuate((StgClosure *)fmbq->blocking_queue);
debugTrace(DEBUG_gc, "scavenge: %p (%s) exciting, isn't it",
p, info_type((StgClosure *)p)));
break;
}
#endif
case TVAR_WATCH_QUEUE:
{
StgTVarWatchQueue *wq = ((StgTVarWatchQueue *) p);
......
......@@ -361,15 +361,6 @@ newCAF(StgClosure* caf)
}
RELEASE_SM_LOCK;
#ifdef PAR
/* If we are PAR or DIST then we never forget a CAF */
{ globalAddr *newGA;
//debugBelch("<##> Globalising CAF %08x %s",caf,info_type(caf));
newGA=makeGlobal(caf,rtsTrue); /*given full weight*/
ASSERT(newGA);
}
#endif /* PAR */
}
// An alternate version of newCaf which is used for dynamically loaded
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment