summaryrefslogtreecommitdiff
path: root/ghc/rts/parallel/ParallelRts.h
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2006-04-07 02:05:11 +0000
committerSimon Marlow <simonmar@microsoft.com>2006-04-07 02:05:11 +0000
commit0065d5ab628975892cea1ec7303f968c3338cbe1 (patch)
tree8e2afe0ab48ee33cf95009809d67c9649573ef92 /ghc/rts/parallel/ParallelRts.h
parent28a464a75e14cece5db40f2765a29348273ff2d2 (diff)
downloadhaskell-0065d5ab628975892cea1ec7303f968c3338cbe1.tar.gz
Reorganisation of the source tree
Most of the other users of the fptools build system have migrated to Cabal, and with the move to darcs we can now flatten the source tree without losing history, so here goes. The main change is that the ghc/ subdir is gone, and most of what it contained is now at the top level. The build system now makes no pretense at being multi-project, it is just the GHC build system. No doubt this will break many things, and there will be a period of instability while we fix the dependencies. A straightforward build should work, but I haven't yet fixed binary/source distributions. Changes to the Building Guide will follow, too.
Diffstat (limited to 'ghc/rts/parallel/ParallelRts.h')
-rw-r--r--ghc/rts/parallel/ParallelRts.h253
1 files changed, 0 insertions, 253 deletions
diff --git a/ghc/rts/parallel/ParallelRts.h b/ghc/rts/parallel/ParallelRts.h
deleted file mode 100644
index d421296d19..0000000000
--- a/ghc/rts/parallel/ParallelRts.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/* --------------------------------------------------------------------------
- Time-stamp: <Tue Mar 06 2001 00:25:50 Stardate: [-30]6285.08 hwloidl>
-
- Variables and functions specific to the parallel RTS (i.e. GUM or GranSim)
- ----------------------------------------------------------------------- */
-
-#ifndef PARALLEL_RTS_H
-#define PARALLEL_RTS_H
-
-#include "ParTicky.h"
-
-/* HWL HACK: compile time sanity checks; shouldn't be necessary at all */
-#if defined(PAR) && defined(GRAN)
-# error "Both PAR and GRAN defined"
-#endif
-
-#if defined(DEBUG)
-/* Paranoia debugging: we add an end-of-buffer marker to every pack buffer
- (only when sanity checking RTS is enabled, of course) */
-#define DEBUG_HEADROOM 1
-#define END_OF_BUFFER_MARKER 0x1111bbbb
-#define GARBAGE_MARKER 0x1111eeee
-#else
-#define DEBUG_HEADROOM 0
-#endif /* DEBUG */
-
-#if defined(GRAN) || defined(PAR)
-
-#if defined(GRAN)
-
-/* Statistics info */
-extern nat tot_packets, tot_packet_size, tot_cuts, tot_thunks;
-
-/* Pack.c */
-rtsPackBuffer *PackNearbyGraph(StgClosure* closure, StgTSO* tso,
- nat *packBufferSize, GlobalTaskId dest);
-rtsPackBuffer *PackOneNode(StgClosure* closure, StgTSO* tso,
- nat *packBufferSize);
-rtsPackBuffer *PackTSO(StgTSO *tso, nat *packBufferSize);
-rtsPackBuffer *PackStkO(StgPtr stko, nat *packBufferSize);
-void PackFetchMe(StgClosure *closure);
-
-/* Unpack.c */
-StgClosure* UnpackGraph(rtsPackBuffer* buffer);
-void InitPendingGABuffer(nat size);
-
-/* RBH.c */
-StgClosure *convertToRBH(StgClosure *closure);
-void convertFromRBH(StgClosure *closure);
-
-/* HLComms.c */
-rtsFetchReturnCode blockFetch(StgTSO* tso, PEs proc, StgClosure* bh);
-void blockThread(StgTSO *tso);
-
-#endif
-#if defined(PAR)
-
-/* Statistics info */
-
-/* global structure for collecting statistics */
-typedef struct GlobalParStats_ {
- /* GALA and LAGA table info */
- nat tot_mark_GA, tot_rebuild_GA, tot_free_GA,
- res_mark_GA, res_rebuild_GA, res_free_GA,
- cnt_mark_GA, cnt_rebuild_GA, cnt_free_GA,
- res_size_GA, tot_size_GA, local_alloc_GA, tot_global, tot_local;
-
- /* time spent managing the GAs */
- double time_mark_GA, time_rebuild_GA;
-
- /* spark queue stats */
- nat res_sp, tot_sp, cnt_sp, emp_sp;
- // nat tot_sq_len, tot_sq_probes, tot_sparks;
- /* thread queue stats */
- nat res_tp, tot_tp, cnt_tp, emp_tp;
- //nat tot_add_threads, tot_tq_len, non_end_add_threads;
-
- /* packet statistics */
- nat tot_packets, tot_packet_size, tot_thunks,
- res_packet_size, res_thunks,
- rec_packets, rec_packet_size, rec_thunks,
- rec_res_packet_size, rec_res_thunks;
- /* time spent packing stuff */
- double time_pack, time_unpack;
-
- /* thread stats */
- nat tot_threads_created;
-
- /* spark stats */
- //nat pruned_sparks, withered_sparks;
- nat tot_sparks_created, tot_sparks_ignored, tot_sparks_marked,
- res_sparks_created, res_sparks_ignored, res_sparks_marked; // , sparks_created_on_PE[MAX_PROC];
- double time_sparks;
-
- /* scheduling stats */
- nat tot_yields, tot_stackover, tot_heapover;
-
- /* message statistics */
- nat tot_fish_mess, tot_fetch_mess, tot_resume_mess, tot_schedule_mess;
- nat rec_fish_mess, rec_fetch_mess, rec_resume_mess, rec_schedule_mess;
-#if defined(DIST)
- nat tot_reval_mess;
- nat rec_reval_mess;
-#endif
-
- /* blocking queue statistics
- rtsTime tot_bq_processing_time;
- nat tot_bq_len, tot_bq_len_local, tot_awbq, tot_FMBQs;
- */
-
- /* specialised info on arrays (for GPH/Maple mainly) */
- nat tot_arrs, tot_arr_size;
-} GlobalParStats;
-
-extern GlobalParStats globalParStats;
-
-void globalParStat_exit(void);
-
-/* Pack.c */
-rtsBool InitPackBuffer(void);
-rtsPackBuffer *PackNearbyGraph(StgClosure* closure, StgTSO* tso,
- nat *packBufferSize, GlobalTaskId dest);
-
-/* Unpack.c */
-void CommonUp(StgClosure *src, StgClosure *dst);
-StgClosure *UnpackGraph(rtsPackBuffer *buffer, globalAddr **gamap,
- nat *nGAs);
-
-/* RBH.c */
-StgClosure *convertToRBH(StgClosure *closure);
-void convertToFetchMe(StgRBH *rbh, globalAddr *ga);
-
-/* HLComms.c */
-void blockFetch(StgBlockedFetch *bf, StgClosure *bh);
-void blockThread(StgTSO *tso);
-
-/* Global.c */
-void GALAdeprecate(globalAddr *ga);
-
-/* HLComms.c */
-nat pending_fetches_len(void);
-
-/* ParInit.c */
-void initParallelSystem(void);
-void shutdownParallelSystem(StgInt n);
-void synchroniseSystem(void);
-void par_exit(I_);
-
-#endif
-
-/* this routine should be moved to a more general module; currently in Pack.c
-StgInfoTable* get_closure_info(StgClosure* node,
- nat *size, nat *ptrs, nat *nonptrs, nat *vhs,
- char *info_hdr_ty);
-*/
-void doGlobalGC(void);
-
-//@node GC routines, Debugging routines, Spark handling routines
-//@subsection GC routines
-
-#if defined(PAR)
-/* HLComms.c */
-void freeRemoteGA(int pe, globalAddr *ga);
-void sendFreeMessages(void);
-void markPendingFetches(rtsBool major_gc);
-
-/* Global.c */
-void markLocalGAs(rtsBool full);
-void RebuildGAtables(rtsBool full);
-void RebuildLAGAtable(void);
-#endif
-
-//@node Debugging routines, Generating .gr profiles, GC routines
-//@subsection Debugging routines
-
-#if defined(PAR)
-void printGA (globalAddr *ga);
-void printGALA (GALA *gala);
-void printLAGAtable(void);
-
-rtsBool isOnLiveIndTable(globalAddr *ga);
-rtsBool isOnRemoteGATable(globalAddr *ga);
-void checkFreeGALAList(void);
-void checkFreeIndirectionsList(void);
-#endif
-
-//@node Generating .gr profiles, Index, Debugging routines
-//@subsection Generating .gr profiles
-
-#define STATS_FILENAME_MAXLEN 128
-
-/* Where to write the log file */
-//@cindex gr_file
-//@cindex gr_filename
-extern FILE *gr_file;
-extern char gr_filename[STATS_FILENAME_MAXLEN];
-
-//@cindex init_gr_stats
-//@cindex init_gr_simulation
-//@cindex end_gr_simulation
-void init_gr_stats (void);
-void init_gr_simulation(int rts_argc, char *rts_argv[],
- int prog_argc, char *prog_argv[]);
-void end_gr_simulation(void);
-
-// TODO: move fcts in here (as static inline)
-StgInfoTable* get_closure_info(StgClosure* node, nat *size, nat *ptrs, nat *nonptrs, nat *vhs, char *info_hdr_ty);
-rtsBool IS_BLACK_HOLE(StgClosure* node);
-StgClosure *IS_INDIRECTION(StgClosure* node) ;
-StgClosure *UNWIND_IND (StgClosure *closure);
-
-
-#endif /* defined(PAR) || defined(GRAN) */
-
-//@node Common macros, Index, Generating .gr profiles
-//@subsection Common macros
-
-#define LOOKS_LIKE_PTR(r) \
- (LOOKS_LIKE_STATIC_CLOSURE(r) || \
- ((HEAP_ALLOCED(r) && Bdescr((P_)r)->free != (void *)-1)))
-
-/* see Sanity.c for this kind of test; doing this in these basic fcts
- is paranoid (nuke it after debugging!)
-*/
-
-/* pathetic version of the check whether p can be a closure */
-#define LOOKS_LIKE_COOL_CLOSURE(p) 1
-
-//LOOKS_LIKE_GHC_INFO(get_itbl(p))
-
- /* Is it a static closure (i.e. in the data segment)? */ \
- /*
-#define LOOKS_LIKE_COOL_CLOSURE(p) \
- ((LOOKS_LIKE_STATIC(p)) ? \
- closure_STATIC(p) \
- : !closure_STATIC(p) && LOOKS_LIKE_PTR(p))
- */
-
-#endif /* PARALLEL_RTS_H */
-
-//@node Index, , Index
-//@subsection Index
-
-//@index
-//* IS_BLACK_HOLE:: @cindex\s-+IS_BLACK_HOLE
-//* IS_INDIRECTION:: @cindex\s-+IS_INDIRECTION
-//* end_gr_simulation:: @cindex\s-+end_gr_simulation
-//* get_closure_info:: @cindex\s-+get_closure_info
-//* gr_file:: @cindex\s-+gr_file
-//* gr_filename:: @cindex\s-+gr_filename
-//* init_gr_simulation:: @cindex\s-+init_gr_simulation
-//* unwindInd:: @cindex\s-+unwindInd
-//@end index