diff options
| author | Simon Marlow <simonmar@microsoft.com> | 2006-04-07 02:05:11 +0000 | 
|---|---|---|
| committer | Simon Marlow <simonmar@microsoft.com> | 2006-04-07 02:05:11 +0000 | 
| commit | 0065d5ab628975892cea1ec7303f968c3338cbe1 (patch) | |
| tree | 8e2afe0ab48ee33cf95009809d67c9649573ef92 /ghc/rts/parallel/ParallelRts.h | |
| parent | 28a464a75e14cece5db40f2765a29348273ff2d2 (diff) | |
| download | haskell-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.h | 253 | 
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  | 
