changeset 285:7b6f8cf08b1f Dev_ML

Minor -- gave malloc its own lock and renamed TopLevelFn to BirthFn
author Sean Halle <seanhalle@yahoo.com>
date Wed, 12 Jun 2013 14:12:06 -0700
parents 72ffdb11ad8e
children b02b34681414
files AnimationMaster.c HW_Dependent_Primitives/PR__primitives.c HW_Dependent_Primitives/PR__primitives.h HW_Dependent_Primitives/PR__primitives_asm.s PR.c PR__PI.c PR__SS.c PR__WL.c PR__WL.h PR__int.c PR__int.h PR__structs.h Services_Offered_by_PR/Measurement_and_Stats/probes.c Services_Offered_by_PR/Memory_Handling/vmalloc.c Services_Offered_by_PR/Services_Language/PRServ_SS.c
diffstat 15 files changed, 135 insertions(+), 58 deletions(-) [+]
line diff
     1.1 --- a/AnimationMaster.c	Wed May 22 17:40:23 2013 -0700
     1.2 +++ b/AnimationMaster.c	Wed Jun 12 14:12:06 2013 -0700
     1.3 @@ -34,6 +34,9 @@
     1.4  inline void
     1.5  handleThrowException( PRServiceReq *langReq, PRLangEnv *protoLangEnv );
     1.6  
     1.7 +void
     1.8 +debug_print_req(AnimSlot *slot, PRReqst *req);
     1.9 +
    1.10  //===========================================================================
    1.11  
    1.12  /*Note: there used to be a coreController that was another animation 
    1.13 @@ -73,7 +76,6 @@
    1.14     if( slot->workIsDone )
    1.15      { slot->workIsDone = FALSE;
    1.16        slot->needsWorkAssigned = TRUE;
    1.17 -printf("top handle request: %d | reqType: %d\n", slot->coreSlotIsOn, (int32)req->reqType );fflush(stdin);
    1.18        
    1.19           //An Idle VP has no request to handle, so skip to assign..
    1.20        if( slot->slaveAssignedToSlot->typeOfVP != IdleVP && 
    1.21 @@ -86,6 +88,7 @@
    1.22              //process the request made by the slave (held inside slave struc)
    1.23           slave = slot->slaveAssignedToSlot;
    1.24           req = slave->request;
    1.25 +         debug_print_req(slot, req);
    1.26  
    1.27              //If the requesting slave is a slot slave, and request is not
    1.28              // task-end, then turn it into a free task slave & continue
    1.29 @@ -592,3 +595,27 @@
    1.30     (*protoLangEnv->makeSlaveReadyFn)( langReq->requestingSlv, PR_int__give_lang_env(protoLangEnv) );
    1.31   }
    1.32  
    1.33 +void
    1.34 +debug_print_req(AnimSlot *slot, PRReqst *req)
    1.35 + {
    1.36 +   if(dbgMaster)
    1.37 +       { printf("top handle request: %d | reqType: ", slot->coreSlotIsOn );
    1.38 +         switch(req->reqType)
    1.39 +          { case TaskCreate: printf("TaskCreate \n"); break;
    1.40 +            case TaskEnd: printf("TaskEnd \n"); break;
    1.41 +            case   SlvCreate: printf("SlvCreate \n"); break;
    1.42 +            case SlvDissipate: printf("SlvDissipate \n"); break;
    1.43 +            case Language: printf("Language \n"); break;
    1.44 +            case Service: printf("Service \n"); break;
    1.45 +            case Hardware: printf("Hardware \n"); break;
    1.46 +            case IO: printf("IO \n"); break;
    1.47 +            case OSCall: printf("OSCall \n"); break;
    1.48 +            case LangShutdown: printf("LangShutdown \n"); break;
    1.49 +            case ProcessEnd: printf("ProcessEnd \n"); break;
    1.50 +            case PRShutdown: printf("PRShutdown \n"); break;
    1.51 +          } 
    1.52 +         fflush(stdin);
    1.53 +       }
    1.54 + }
    1.55 +
    1.56 +
     2.1 --- a/HW_Dependent_Primitives/PR__primitives.c	Wed May 22 17:40:23 2013 -0700
     2.2 +++ b/HW_Dependent_Primitives/PR__primitives.c	Wed Jun 12 14:12:06 2013 -0700
     2.3 @@ -18,14 +18,14 @@
     2.4   * carefully that it's safe)
     2.5   */
     2.6  inline void
     2.7 -PR_int__reset_slaveVP_to_TopLvlFn( SlaveVP *slaveVP, TopLevelFnPtr fnPtr,
     2.8 +PR_int__reset_slaveVP_to_BirthFn( SlaveVP *slaveVP, BirthFnPtr fnPtr,
     2.9                                void    *dataParam)
    2.10   { void  *stackPtr;
    2.11  
    2.12  // Start of Hardware dependent part           
    2.13     
    2.14      //Set slave's instr pointer to a helper Fn that copies params from stack
    2.15 -   slaveVP->resumeInstrPtr  = (TopLevelFnPtr)&startUpTopLevelFn;
    2.16 +   slaveVP->resumeInstrPtr  = (BirthFnPtr)&startUpBirthFn;
    2.17     
    2.18      //fnPtr takes two params -- void *dataParam & void *animSlv
    2.19      // Stack grows *down*, so start it at highest stack addr, minus room
    2.20 @@ -81,7 +81,7 @@
    2.21     *((void**)stackPtr - 1) = (void*)fnPtr;        //what helper jmps to
    2.22     
    2.23      //Set slave's instr pointer to a helper Fn that copies params from stack
    2.24 -   slaveVP->resumeInstrPtr  = (TopLevelFnPtr)&jmpToOneParamFn;
    2.25 +   slaveVP->resumeInstrPtr  = (BirthFnPtr)&jmpToOneParamFn;
    2.26     
    2.27  // end of Hardware dependent part           
    2.28     
    2.29 @@ -123,7 +123,7 @@
    2.30     *((void**)stackPtr - 1) = (void*)fnPtr;        //what helper jmps to
    2.31     
    2.32      //Set slave's instr pointer to a helper Fn that copies params from stack
    2.33 -   slaveVP->resumeInstrPtr  = (TopLevelFnPtr)&jmpToTwoParamFn;
    2.34 +   slaveVP->resumeInstrPtr  = (BirthFnPtr)&jmpToTwoParamFn;
    2.35     
    2.36  // end of Hardware dependent part           
    2.37     
     3.1 --- a/HW_Dependent_Primitives/PR__primitives.h	Wed May 22 17:40:23 2013 -0700
     3.2 +++ b/HW_Dependent_Primitives/PR__primitives.h	Wed Jun 12 14:12:06 2013 -0700
     3.3 @@ -23,7 +23,7 @@
     3.4  masterSwitchToCoreCtlr(SlaveVP *nextSlave);
     3.5  
     3.6  void 
     3.7 -startUpTopLevelFn();
     3.8 +startUpBirthFn();
     3.9  
    3.10  void 
    3.11  jmpToOneParamFn();
     4.1 --- a/HW_Dependent_Primitives/PR__primitives_asm.s	Wed May 22 17:40:23 2013 -0700
     4.2 +++ b/HW_Dependent_Primitives/PR__primitives_asm.s	Wed Jun 12 14:12:06 2013 -0700
     4.3 @@ -14,8 +14,8 @@
     4.4  
     4.5  //Trick for 64 bit arch -- copies args from stack into regs, then does jmp to
     4.6  // the top-level function, which was pointed to by the stack-ptr
     4.7 -.globl startUpTopLevelFn
     4.8 -startUpTopLevelFn:
     4.9 +.globl startUpBirthFn
    4.10 +startUpBirthFn:
    4.11      movq    %rdi      , %rsi #get second argument from first argument of switchSlv
    4.12      movq    0x08(%rsp), %rdi #get first argument from stack
    4.13      movq    (%rsp)    , %rax #get top-level function's addr from stack
     5.1 --- a/PR.c	Wed May 22 17:40:23 2013 -0700
     5.2 +++ b/PR.c	Wed Jun 12 14:12:06 2013 -0700
     5.3 @@ -65,7 +65,7 @@
     5.4     PR_SS__create_topEnv();
     5.5     
     5.6    #ifdef DEBUG__TURN_ON_SEQUENTIAL_MODE
     5.7 -   printf( "\n\n Running in SEQUENTIAL mode \n\n" );
     5.8 +   printf( "\n\n Running in SEQUENTIAL mode -- NUM_CORES: %d \n\n", NUM_CORES );
     5.9        //Only difference between version with an OS thread pinned to each core and
    5.10        // the sequential version of PR is PR__init_Seq, this, and coreCtlr_Seq.
    5.11  
    5.12 @@ -100,7 +100,7 @@
    5.13   * 
    5.14   */
    5.15  PRProcess *
    5.16 -PR__create_process( TopLevelFnPtr seed_Fn, void *seedData )
    5.17 +PR__create_process( BirthFnPtr seed_Fn, void *seedData )
    5.18   { SlaveVP    *seedSlv;
    5.19     PRProcess  *process;
    5.20     PRLangEnv **langEnvs, **langEnvsList;
     6.1 --- a/PR__PI.c	Wed May 22 17:40:23 2013 -0700
     6.2 +++ b/PR__PI.c	Wed Jun 12 14:12:06 2013 -0700
     6.3 @@ -48,6 +48,14 @@
     6.4         }
     6.5      }
     6.6   }
     6.7 +/*Make slave ready, without having to know the lang env.. just the magic num
     6.8 + */
     6.9 +void
    6.10 +PR_PI__make_slave_ready_for_lang( SlaveVP *slave, int32 magicNum )
    6.11 + { void *langEnv;
    6.12 +   langEnv = PR_PI__give_lang_env_for_slave( slave, magicNum );
    6.13 +   PR_PI__make_slave_ready( slave, langEnv );
    6.14 + }
    6.15  
    6.16  /*Any langlet can transfer slaves over to be resumed in PRServ.. the resume Fn
    6.17   * is registered in the PRServ lang env during process creation.
     7.1 --- a/PR__SS.c	Wed May 22 17:40:23 2013 -0700
     7.2 +++ b/PR__SS.c	Wed Jun 12 14:12:06 2013 -0700
     7.3 @@ -402,7 +402,7 @@
     7.4     AnimSlot **animSlots;
     7.5        //create the shutdown processors, one for each core controller -- put them
     7.6        // directly into the slots
     7.7 -   PR_int__get_master_lock();
     7.8 +   PR_int__get_wrapper_lock();
     7.9     for( coreIdx = 0; coreIdx < NUM_CORES; coreIdx++ )
    7.10      {    //Note, this is running in the master
    7.11        shutDownSlv = PR_SS__create_shutdown_slave();
     8.1 --- a/PR__WL.c	Wed May 22 17:40:23 2013 -0700
     8.2 +++ b/PR__WL.c	Wed Jun 12 14:12:06 2013 -0700
     8.3 @@ -116,7 +116,7 @@
     8.4   
     8.5  inline
     8.6  void
     8.7 -PR_WL__send_create_task_req( TopLevelFn fn, void *initData, void *langReq, 
     8.8 +PR_WL__send_create_task_req( BirthFn fn, void *initData, void *langReq, 
     8.9       int32 *taskID, CreateHandler handler, SlaveVP *animSlv, int32 magicNumber)
    8.10   { PRReqst req;
    8.11   
     9.1 --- a/PR__WL.h	Wed May 22 17:40:23 2013 -0700
     9.2 +++ b/PR__WL.h	Wed Jun 12 14:12:06 2013 -0700
     9.3 @@ -40,7 +40,7 @@
     9.4  PR__start();
     9.5  
     9.6  PRProcess *
     9.7 -PR__create_process( TopLevelFnPtr seed_Fn, void *seedData );
     9.8 +PR__create_process( BirthFnPtr seed_Fn, void *seedData );
     9.9  
    9.10  void
    9.11  PR__end_seedVP( SlaveVP *seedSlv );
    10.1 --- a/PR__int.c	Wed May 22 17:40:23 2013 -0700
    10.2 +++ b/PR__int.c	Wed Jun 12 14:12:06 2013 -0700
    10.3 @@ -30,7 +30,7 @@
    10.4   */
    10.5  inline
    10.6  SlaveVP *
    10.7 -PR_int__create_slaveVP_helper( TopLevelFnPtr fnPtr, void *dataParam )
    10.8 +PR_int__create_slaveVP_helper( BirthFnPtr fnPtr, void *dataParam )
    10.9   { SlaveVP *newSlv;
   10.10     void    *stackLocs;
   10.11     
   10.12 @@ -46,10 +46,14 @@
   10.13        
   10.14     newSlv->numTimesAssignedToASlot  = 0;  
   10.15  
   10.16 -   newSlv->langDatas = NULL;
   10.17 -   newSlv->metaTasks     = NULL;
   10.18 +      
   10.19 +   newSlv->langDatas = 
   10.20 +      (PRLangData **)PR_int__make_collection_of_size( NUM_IN_COLLECTION );
   10.21 +           
   10.22 +   newSlv->metaTasks = 
   10.23 +      (PRMetaTask **) PR_int__make_collection_of_size( NUM_IN_COLLECTION );
   10.24  
   10.25 -   PR_int__reset_slaveVP_to_TopLvlFn( newSlv, fnPtr, dataParam );
   10.26 +   PR_int__reset_slaveVP_to_BirthFn( newSlv, fnPtr, dataParam );
   10.27     
   10.28     //============================= MEASUREMENT STUFF ========================
   10.29     #ifdef PROBES__TURN_ON_STATS_PROBES
   10.30 @@ -68,16 +72,10 @@
   10.31  
   10.32  inline
   10.33  SlaveVP *
   10.34 -PR_int__create_slaveVP( TopLevelFnPtr fnPtr, void *dataParam, PRProcess *process )
   10.35 +PR_int__create_slaveVP( BirthFnPtr fnPtr, void *dataParam, PRProcess *process )
   10.36   { SlaveVP *newSlv;
   10.37   
   10.38     newSlv = PR_int__create_slaveVP_helper( fnPtr, dataParam );
   10.39 -      
   10.40 -   newSlv->langDatas = 
   10.41 -      (PRLangData **)PR_int__make_collection_of_size( NUM_IN_COLLECTION );
   10.42 -           
   10.43 -   newSlv->metaTasks = 
   10.44 -      (PRMetaTask **) PR_int__make_collection_of_size( NUM_IN_COLLECTION );
   10.45     
   10.46     process->numLiveGenericSlvs += 1;
   10.47     
   10.48 @@ -441,7 +439,7 @@
   10.49                 //if work found, put into slot, and adjust flags and state
   10.50     slot->slaveAssignedToSlot = slave;
   10.51     slave->animSlotAssignedTo = slot;
   10.52 -   slot->needsWorkAssigned  = FALSE;
   10.53 +   slot->needsWorkAssigned   = FALSE;
   10.54  
   10.55    #ifdef HOLISTIC__TURN_ON_OBSERVE_UCC
   10.56        //have a slave to be assigned to the slot
   10.57 @@ -486,7 +484,7 @@
   10.58     slotSlv = _PRTopEnv->slotTaskSlvs[coreNum][slotNum];
   10.59  
   10.60       //point slave to task's function
   10.61 -   PR_int__reset_slaveVP_to_TopLvlFn( slotSlv, protoMetaTask->topLevelFn, protoMetaTask->initData );
   10.62 +   PR_int__reset_slaveVP_to_BirthFn( slotSlv, protoMetaTask->topLevelFn, protoMetaTask->initData );
   10.63     PR_int__insert_meta_task_into_slave( protoMetaTask, slotSlv );
   10.64     slotSlv->processSlaveIsIn = protoMetaTask->processTaskIsIn;
   10.65     PR_int__put_slave_into_slot( slotSlv, slot );
   10.66 @@ -696,7 +694,7 @@
   10.67      { protoLangEnv = PR_int__give_proto_lang_env_for_slave( slave, magicNum );
   10.68        if(protoLangEnv->langDataCreator == NULL) 
   10.69           PR_int__error("register a lang data creator");
   10.70 -         //This will call PR_PI__create_lang_data_in_slave
   10.71 +         //This will call PR_PI__create_lang_data_in_slave -- puts it into slave
   10.72        return (*protoLangEnv->langDataCreator)( slave );
   10.73      }
   10.74   }
   10.75 @@ -865,14 +863,46 @@
   10.76  PR_int__backoff_for_TooLongToGetLock( int32 numTriesToGetLock );
   10.77  
   10.78  inline void
   10.79 -PR_int__get_master_lock()
   10.80 - { int32 *addrOfMasterLock;
   10.81 +PR_int__get_wrapper_lock()
   10.82 + { int32 *addrOfWrapperLock;
   10.83   
   10.84    #ifdef DEBUG__TURN_ON_SEQUENTIAL_MODE
   10.85              return;
   10.86    #endif
   10.87  
   10.88 -   addrOfMasterLock = &(_PRTopEnv->masterLock);
   10.89 +   addrOfWrapperLock = &(_PRTopEnv->wrapperLock);
   10.90 +
   10.91 +   int numTriesToGetLock = 0;
   10.92 +   int gotLock = 0;
   10.93 +   
   10.94 +//            MEAS__Capture_Pre_Master_Lock_Point;
   10.95 +   while( !gotLock ) //keep going until get master lock
   10.96 +    { 
   10.97 +      numTriesToGetLock++;   //if too many, means too much contention
   10.98 +      if( numTriesToGetLock > NUM_TRIES_BEFORE_DO_BACKOFF )
   10.99 +       { PR_int__backoff_for_TooLongToGetLock( numTriesToGetLock );
  10.100 +       }
  10.101 +      if( numTriesToGetLock > MASTERLOCK_RETRIES_BEFORE_YIELD ) 
  10.102 +       { numTriesToGetLock = 0; 
  10.103 +         pthread_yield();
  10.104 +       }
  10.105 +   
  10.106 +         //try to get the lock
  10.107 +      gotLock = __sync_bool_compare_and_swap( addrOfWrapperLock,
  10.108 +                                                         UNLOCKED, LOCKED );
  10.109 +    }
  10.110 +//            MEAS__Capture_Post_Master_Lock_Point;
  10.111 + }
  10.112 +
  10.113 +inline void
  10.114 +PR_int__get_malloc_lock()
  10.115 + { int32 *addrOfMallocLock;
  10.116 + 
  10.117 +  #ifdef DEBUG__TURN_ON_SEQUENTIAL_MODE
  10.118 +            return;
  10.119 +  #endif
  10.120 +
  10.121 +   addrOfMallocLock = &(_PRTopEnv->mallocLock);
  10.122  
  10.123     int numTriesToGetLock = 0;
  10.124     int gotLock = 0;
  10.125 @@ -890,7 +920,7 @@
  10.126         }
  10.127     
  10.128           //try to get the lock
  10.129 -      gotLock = __sync_bool_compare_and_swap( addrOfMasterLock,
  10.130 +      gotLock = __sync_bool_compare_and_swap( addrOfMallocLock,
  10.131                                                           UNLOCKED, LOCKED );
  10.132      }
  10.133              MEAS__Capture_Post_Master_Lock_Point;
    11.1 --- a/PR__int.h	Wed May 22 17:40:23 2013 -0700
    11.2 +++ b/PR__int.h	Wed Jun 12 14:12:06 2013 -0700
    11.3 @@ -21,7 +21,7 @@
    11.4  
    11.5  inline
    11.6  void
    11.7 -PR_int__reset_slaveVP_to_TopLvlFn( SlaveVP *slaveVP, TopLevelFnPtr fnPtr,
    11.8 +PR_int__reset_slaveVP_to_BirthFn( SlaveVP *slaveVP, BirthFnPtr fnPtr,
    11.9                                void    *dataParam);
   11.10  
   11.11  inline
   11.12 @@ -39,11 +39,11 @@
   11.13  //===========================================================================
   11.14  inline
   11.15  SlaveVP *
   11.16 -PR_int__create_slaveVP_helper( TopLevelFnPtr fnPtr, void *dataParam );
   11.17 +PR_int__create_slaveVP_helper( BirthFnPtr fnPtr, void *dataParam );
   11.18  
   11.19  inline
   11.20  SlaveVP *
   11.21 -PR_int__create_slaveVP( TopLevelFnPtr fnPtr, void *dataParam, PRProcess *process );
   11.22 +PR_int__create_slaveVP( BirthFnPtr fnPtr, void *dataParam, PRProcess *process );
   11.23  
   11.24  SlaveVP *
   11.25  PR_int__get_recycled_slot_slave( );
   11.26 @@ -223,9 +223,16 @@
   11.27  PR_int__strDup( char *str );
   11.28  
   11.29  inline void
   11.30 -PR_int__get_master_lock();
   11.31 +PR_int__get_wrapper_lock();
   11.32  
   11.33 -#define PR_int__release_master_lock() _PRTopEnv->masterLock = UNLOCKED
   11.34 +inline void
   11.35 +PR_int__get_malloc_lock();
   11.36 +
   11.37 +#define PR_int__release_master_lock()  _PRTopEnv->masterLock  = UNLOCKED
   11.38 +
   11.39 +#define PR_int__release_wrapper_lock() _PRTopEnv->wrapperLock = UNLOCKED
   11.40 +
   11.41 +#define PR_int__release_malloc_lock()  _PRTopEnv->mallocLock  = UNLOCKED
   11.42  
   11.43  inline uint32_t
   11.44  PR_int__randomNumber();
    12.1 --- a/PR__structs.h	Wed May 22 17:40:23 2013 -0700
    12.2 +++ b/PR__structs.h	Wed Jun 12 14:12:06 2013 -0700
    12.3 @@ -43,8 +43,8 @@
    12.4  typedef void     (*LangMetaTaskFreer)  ( void * ); //lang meta task to free
    12.5  typedef void     (*MakeSlaveReadyFn)   ( SlaveVP *, void * ); //slave and langEnv
    12.6  typedef void     (*MakeTaskReadyFn)    ( void *, void * ); //langTask and langEnv
    12.7 -typedef void     (*TopLevelFnPtr)  ( void *, SlaveVP * ); //initData, animSlv
    12.8 -typedef void       TopLevelFn      ( void *, SlaveVP * ); //initData, animSlv
    12.9 +typedef void     (*BirthFnPtr)  ( void *, SlaveVP * ); //initData, animSlv
   12.10 +typedef void       BirthFn      ( void *, SlaveVP * ); //initData, animSlv
   12.11  typedef void     (*ResumeSlvFnPtr) ( SlaveVP *, void * );
   12.12        //=========== MEASUREMENT STUFF ==========
   12.13          MEAS__Insert_Counter_Handler
   12.14 @@ -121,17 +121,17 @@
   12.15  enum PRReqstType  //avoid starting enums at 0, for debug reasons
   12.16   {
   12.17     TaskCreate = 1,
   12.18 -   TaskEnd = 2,
   12.19 -   SlvCreate = 3,
   12.20 -   SlvDissipate = 4,
   12.21 -   Language = 5,
   12.22 -   Service = 6,       //To invoke a PR provided equivalent of a language request (ex: probe)
   12.23 -   Hardware = 7,
   12.24 -   IO = 8,
   12.25 -   OSCall = 9, 
   12.26 -   LangShutdown = 10,
   12.27 -   ProcessEnd = 11,
   12.28 -   PRShutdown = 12
   12.29 +   TaskEnd,
   12.30 +   SlvCreate,
   12.31 +   SlvDissipate,
   12.32 +   Language,
   12.33 +   Service,       //To invoke a PR provided equivalent of a language request (ex: probe)
   12.34 +   Hardware,
   12.35 +   IO,
   12.36 +   OSCall, 
   12.37 +   LangShutdown,
   12.38 +   ProcessEnd,
   12.39 +   PRShutdown
   12.40   };
   12.41  
   12.42  
   12.43 @@ -143,7 +143,7 @@
   12.44     int32              langMagicNumber;
   12.45     SlaveVP           *requestingSlave;
   12.46     
   12.47 -   TopLevelFnPtr      topLevelFn;
   12.48 +   BirthFnPtr      topLevelFn;
   12.49     void              *initData;
   12.50     int32             *ID;
   12.51     
   12.52 @@ -152,6 +152,7 @@
   12.53        // fn directly into the request..  might change to this for all requests
   12.54     RequestHandler    handler; //pointer to handler fn 
   12.55     CreateHandler     createHdlr; //special because returns something
   12.56 +   int32             createSuspendedGroup; //must be non-zero
   12.57     
   12.58     PRReqst *nextReqst;
   12.59   };
   12.60 @@ -263,6 +264,10 @@
   12.61     int8             falseSharePad1[256 - sizeof(void*)];
   12.62     int32            masterLock;          //offset to this field used in asm
   12.63     int8             falseSharePad2[256 - sizeof(int32)];
   12.64 +   int32            wrapperLock;         //offset to this field used in asm
   12.65 +   int8             falseSharePad3[256 - sizeof(int32)];
   12.66 +   int32            mallocLock;          //offset to this field used in asm
   12.67 +   int8             falseSharePad4[256 - sizeof(int32)];
   12.68        //============ below this, no fields are used in asm =============
   12.69  
   12.70        //Basic PR infrastructure
   12.71 @@ -373,7 +378,7 @@
   12.72     int32          *ID;              //is standard PR ID
   12.73     PRProcess      *processTaskIsIn;
   12.74     SlaveVP        *slaveAssignedTo; //not valid until task animated
   12.75 -   TopLevelFnPtr   topLevelFn;      //This is the Fn executes as the task
   12.76 +   BirthFnPtr   topLevelFn;      //This is the Fn executes as the task
   12.77     void           *initData;        //The data taken by the function
   12.78     LangMetaTaskFreer freer;
   12.79     bool32          goAheadAndFree;
    13.1 --- a/Services_Offered_by_PR/Measurement_and_Stats/probes.c	Wed May 22 17:40:23 2013 -0700
    13.2 +++ b/Services_Offered_by_PR/Measurement_and_Stats/probes.c	Wed Jun 12 14:12:06 2013 -0700
    13.3 @@ -163,11 +163,11 @@
    13.4  PR_impl__index_probe_by_its_name( int32 probeID, SlaveVP *animSlv )
    13.5   { IntervalProbe *probe;
    13.6  
    13.7 -   PR_int__get_master_lock();
    13.8 +   PR_int__get_wrapper_lock();
    13.9     probe = _PRTopEnv->intervalProbes[ probeID ];
   13.10  
   13.11     addValueIntoTable(probe->nameStr, probe, _PRTopEnv->probeNameHashTbl);
   13.12 -   PR_int__release_master_lock();
   13.13 +   PR_int__release_wrapper_lock();
   13.14   }
   13.15  
   13.16  
    14.1 --- a/Services_Offered_by_PR/Memory_Handling/vmalloc.c	Wed May 22 17:40:23 2013 -0700
    14.2 +++ b/Services_Offered_by_PR/Memory_Handling/vmalloc.c	Wed Jun 12 14:12:06 2013 -0700
    14.3 @@ -291,9 +291,9 @@
    14.4  PR_WL__malloc( int32 sizeRequested )
    14.5   { void *ret;
    14.6   
    14.7 -   PR_int__get_master_lock();
    14.8 +   PR_int__get_malloc_lock();
    14.9     ret = PR_int__malloc( sizeRequested );
   14.10 -   PR_int__release_master_lock();
   14.11 +   PR_int__release_malloc_lock();
   14.12     return ret;
   14.13   }
   14.14  
   14.15 @@ -354,9 +354,9 @@
   14.16  void
   14.17  PR_WL__free( void *ptrToFree )
   14.18   {
   14.19 -   PR_int__get_master_lock();
   14.20 +   PR_int__get_malloc_lock();
   14.21     PR_int__free( ptrToFree );
   14.22 -   PR_int__release_master_lock();
   14.23 +   PR_int__release_malloc_lock();
   14.24   }
   14.25  
   14.26  /*
    15.1 --- a/Services_Offered_by_PR/Services_Language/PRServ_SS.c	Wed May 22 17:40:23 2013 -0700
    15.2 +++ b/Services_Offered_by_PR/Services_Language/PRServ_SS.c	Wed Jun 12 14:12:06 2013 -0700
    15.3 @@ -12,7 +12,7 @@
    15.4  #include "Hash_impl/PrivateHash.h"
    15.5  
    15.6  #include "PRServ.h"
    15.7 -#include "PR_impl/Services_Offered_by_PR/Measurement_and_Stats/MEAS__Counter_Recording.h"
    15.8 +//#include "PR_impl/Services_Offered_by_PR/Measurement_and_Stats/MEAS__Counter_Recording.h"
    15.9  //==========================================================================
   15.10  
   15.11