Moved much timer, signal, etc code into common.
authorJosh Yelon <jyelon@uiuc.edu>
Mon, 15 Jul 1996 20:59:22 +0000 (20:59 +0000)
committerJosh Yelon <jyelon@uiuc.edu>
Mon, 15 Jul 1996 20:59:22 +0000 (20:59 +0000)
src/arch/cm5/machine.c
src/arch/exemplar/machine.c
src/arch/ncube2/machine.c
src/arch/net/machine.c
src/arch/paragon/machine.c
src/arch/sim/machine.c
src/arch/sp1/machine.c
src/arch/t3d/machine.c
src/arch/tcp/machine.c
src/arch/uth/machine.c

index 261ffed71718c0623e73ec4bf3057272c3c60c39..6c064b3bf74d6fd47c69a4e4849454401fac6326 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 2.11  1996-04-18 22:40:35  sanjeev
+ * Revision 2.12  1996-07-15 20:59:22  jyelon
+ * Moved much timer, signal, etc code into common.
+ *
+ * Revision 2.11  1996/04/18 22:40:35  sanjeev
  * CmiFreeSendFn uses CMMD_send_async
  *
  * Revision 2.8  1995/11/08 23:32:31  sanjeev
@@ -78,16 +81,40 @@ CpvDeclare(int, Cmi_numpes) ;
 /**************************  TIMER FUNCTIONS **************************/
 #define TIMER_ID 1
 
+double CmiWallTimer()
+{
+  double t ;
+  
+  CMMD_node_timer_stop(TIMER_ID) ;     
+  t = CMMD_node_timer_busy(TIMER_ID) ;  /* returns time in sec */
+  CMMD_node_timer_start(TIMER_ID) ;     /* restart immediately */      
+  return t ;
+}
+
+double CmiCpuTimer()
+{
+  double t ;
+  
+  CMMD_node_timer_stop(TIMER_ID) ;     
+  t = CMMD_node_timer_busy(TIMER_ID) ;  /* returns time in sec */
+  CMMD_node_timer_start(TIMER_ID) ;     /* restart immediately */      
+  return t ;
+}
 
 double CmiTimer()
 {
-       double t ;
+  double t ;
+  
+  CMMD_node_timer_stop(TIMER_ID) ;     
+  t = CMMD_node_timer_busy(TIMER_ID) ;  /* returns time in sec */
+  CMMD_node_timer_start(TIMER_ID) ;     /* restart immediately */      
+  return t ;
+}
 
-       CMMD_node_timer_stop(TIMER_ID) ;        
-       t = CMMD_node_timer_busy(TIMER_ID) ;  /* returns time in sec */
-       CMMD_node_timer_start(TIMER_ID) ;     /* restart immediately */ 
-       
-       return t ;
+double CmiTimerInit()
+{
+  CMMD_node_timer_clear(TIMER_ID);
+  CMMD_node_timer_start(TIMER_ID);
 }
 
 /********************* MESSAGE RECEIVE FUNCTIONS ******************/
@@ -470,9 +497,7 @@ char **argv;
                Cmi_dim++ ;
 
        /* Initialize timers */
-       CMMD_node_timer_clear(TIMER_ID) ;
-       CMMD_node_timer_start(TIMER_ID) ;
-
+       CmiTimerInit();
        user_main(argc, argv);
 }
 
index f2725ace35080cf00223095d82b31b1f4b890e7b..ea06c5fc6557b405a6f62df24b215ec6eb646b83 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 2.19  1995-11-09 22:00:55  gursoy
+ * Revision 2.20  1996-07-15 20:59:22  jyelon
+ * Moved much timer, signal, etc code into common.
+ *
+ * Revision 2.19  1995/11/09 22:00:55  gursoy
  * fixed varsize related bug (CmiFreeSend...)
  *
  * Revision 2.18  1995/10/27  21:45:35  jyelon
@@ -112,20 +115,6 @@ static int requested_npe;
 static void mycpy();
 static void threadInit();
 
-
-
-double CmiTimer()
-{
-    return (double) 0.0;
-}
-
-
-static void CmiTimerInit()
-{
-}
-
-
-
 void *CmiAlloc(size)
 int size;
 {
index 2432f97e8821b402448100da074d202a7246fb02..6afc2e7fed3729a3fb93179746083de308a3bb9e 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 2.12  1995-11-13 22:51:32  gursoy
+ * Revision 2.13  1996-07-15 20:59:22  jyelon
+ * Moved much timer, signal, etc code into common.
+ *
+ * Revision 2.12  1995/11/13 22:51:32  gursoy
  * fixed a syntax error
  *
  * Revision 2.11  1995/11/08  23:36:13  gursoy
@@ -114,18 +117,24 @@ free( ((char *)blk) - 8);
 
 double CmiTimer()
 {
-    return ( (amicclk() - uclockinitvalue) / 1000000.0 );
+  return ( (amicclk() - uclockinitvalue) / 1000000.0 );
 }
 
+double CmiWallTimer()
+{
+  return ( (amicclk() - uclockinitvalue) / 1000000.0 );
+}
 
-
+double CmiCpuTimer()
+{
+  return ( (amicclk() - uclockinitvalue) / 1000000.0 );
+}
 
 static void CmiTimerInit()
 {
-     uclockinitvalue = amicclk();
+  uclockinitvalue = amicclk();
 }
 
-
 int CmiAsyncMsgSent(c)
 CmiCommHandle c ;
 {
index 1f877c18fc832687c2ab1bf62d5bfcd6021fcda6..1f2f76dda3173fcb63e69236cbc6fc70495079ff 100644 (file)
@@ -56,43 +56,29 @@ int  CmiScanf();
 #include <sys/time.h>
 #include <varargs.h>
 
-#ifdef CMK_HAVE_STRINGS_H
+#if CMK_STRINGS_USE_STRINGS_H
 #include <strings.h>
 #endif
 
-#ifdef CMK_HAVE_STRING_H
+#if CMK_STRINGS_USE_STRING_H
 #include <string.h>
 #endif
 
-#ifdef CMK_TIMER_USE_TIMES
+#if CMK_TIMER_USE_TIMES
 #include <sys/times.h>
 #endif
 
-#ifdef CMK_JUST_DECLARE_STRING_FNS
+#if CMK_STRINGS_USE_OWN_DECLARATIONS
 char *strchr(), *strrchr(), *strdup();
 #endif
 
-#ifdef CMK_RSH_IS_A_COMMAND
+#if CMK_RSH_IS_A_COMMAND
 #define RSH_CMD "rsh"
 #endif
-#ifdef CMK_RSH_USE_REMSH
+#if CMK_RSH_USE_REMSH
 #define RSH_CMD "remsh"
 #endif
 
-#ifdef CMK_STRERROR_USE_SYS_ERRLIST
-extern char *sys_errlist[];
-#define strerror(i) (sys_errlist[i])
-#endif
-
-#ifdef CMK_SIGHOLD_USE_SIGMASK
-int sighold(sig) int sig;
-{ if (sigblock(sigmask(sig)) < 0) return -1;
-  else return 0; }
-int sigrelse(sig) int sig;
-{ if (sigsetmask(sigblock(0)&(~sigmask(sig))) < 0) return -1;
-  else return 0; }
-#endif
-
 static void KillEveryone();
 static void KillEveryoneCode();
 
@@ -288,117 +274,6 @@ static void outlog_output(buf) char *buf;
   }
 }
 
-/**************************************************************************
- *
- * enable_async (enables signal-driven IO on a single descriptor)
- *
- **************************************************************************/
-
-#ifdef CMK_ASYNC_USE_FIOASYNC_AND_FIOSETOWN
-#include <sys/filio.h>
-static void enable_async(fd)
-int fd;
-{
-  int pid = getpid();
-  int async = 1;
-  if ( ioctl(fd, FIOSETOWN, &pid) < 0  ) {
-    CmiError("setting socket owner: %s\n", strerror(errno)) ;
-    KillEveryoneCode(65788) ;
-  }
-  if ( ioctl(fd, FIOASYNC, &async) < 0 ) {
-    CmiError("setting socket async: %s\n", strerror(errno)) ;
-    KillEveryoneCode(94458) ;
-  }
-}
-#endif
-
-#ifdef CMK_ASYNC_USE_FIOASYNC_AND_SIOCSPGRP
-#include <sys/filio.h>
-static void enable_async(fd)
-int fd;
-{
-  int pid = -getpid();
-  int async = 1;
-  if ( ioctl(fd, SIOCSPGRP, &pid) < 0  ) {
-    CmiError("setting socket owner: %s\n", strerror(errno)) ;
-    KillEveryoneCode(65788) ;
-  }
-  if ( ioctl(fd, FIOASYNC, &async) < 0 ) {
-    CmiError("setting socket async: %s\n", strerror(errno)) ;
-    KillEveryoneCode(94458) ;
-  }
-}
-#endif
-
-#ifdef CMK_ASYNC_USE_FIOSSAIOSTAT_AND_FIOSSAIOOWN
-#include <sys/ioctl.h>
-static void enable_async(fd)
-int fd;
-{
-  int pid = getpid();
-  int async = 1;
-  if ( ioctl(fd, FIOSSAIOOWN, &pid) < 0  ) {
-    CmiError("setting socket owner: %s\n", strerror(errno)) ;
-    KillEveryoneCode(65788) ;
-  }
-  if ( ioctl(fd, FIOSSAIOSTAT, &async) < 0 ) {
-    CmiError("setting socket async: %s\n", strerror(errno)) ;
-    KillEveryoneCode(94458) ;
-  }
-}
-#endif
-
-#ifdef CMK_ASYNC_USE_F_SETFL_AND_F_SETOWN
-static void enable_async(fd)
-int fd;
-{
-  if ( fcntl(fd, F_SETOWN, getpid()) < 0 ) {
-    CmiError("setting socket owner: %s\n", strerror(errno)) ;
-    KillEveryoneCode(8789) ;
-  }
-  if ( fcntl(fd, F_SETFL, FASYNC) < 0 ) {
-    CmiError("setting socket async: %s\n", strerror(errno)) ;
-    KillEveryoneCode(28379) ;
-  }
-}
-#endif
-
-#ifdef CMK_SIGNAL_USE_SIGACTION
-static void jsignal(sig, handler)
-int sig;
-void (*handler)();
-{
-  struct sigaction in, out ;
-  in.sa_handler = handler;
-  sigemptyset(&in.sa_mask);
-  in.sa_flags = 0;
-  sigaction(sig, &in, &out);
-}
-#endif
-
-#ifdef CMK_SIGNAL_USE_SIGACTION_WITH_RESTART
-static void jsignal(sig, handler)
-int sig;
-void (*handler)();
-{
-  struct sigaction in, out ;
-  in.sa_handler = handler ;
-  sigemptyset(&in.sa_mask);
-  in.sa_flags = SA_RESTART; 
-  if(sigaction(sig, &in, &out) == -1)
-      KillEveryone("sigaction failed.");
-}
-#endif
-
-#ifdef CMK_SIGNAL_IS_A_BUILTIN
-static void jsignal(sig, handler)
-int sig;
-void (*handler)();
-{
-  signal(sig, handler) ;
-}
-#endif
-
 /**************************************************************************
  *
  * SKT - socket routines
@@ -485,7 +360,7 @@ unsigned int *pfd;
 
   optlen = 4;
   /*  getsockopt(skt, SOL_SOCKET , SO_RCVBUF , (char *) &optval, &optlen); */
-  optval = DGRAM_BUF_SIZE;
+  optval = CMK_DGRAM_BUF_SIZE;
   if (setsockopt(skt, SOL_SOCKET , SO_RCVBUF , (char *) &optval, optlen) < 0)
     {perror("setting socket rcv bufer size");
      KillEveryoneCode(35782); }
@@ -550,102 +425,6 @@ unsigned int ip; int port; int seconds;
   return fd;
 }
 
-/******************************************************************************
- *
- * CmiTimer
- *
- *****************************************************************************/
-
-#ifdef CMK_TIMER_USE_TIMES
-
-static double  clocktick;
-static int     inittime_wallclock;
-static int     inittime_virtual;
-
-static void CmiTimerInit()
-{
-  struct tms temp;
-  inittime_wallclock = times(&temp);
-  inittime_virtual = temp.tms_utime + temp.tms_stime;
-  clocktick = 1.0 / (sysconf(_SC_CLK_TCK));
-}
-
-double CmiTimerWallClock()
-{
-  struct tms temp;
-  double currenttime;
-  int now;
-
-  now = times(&temp);
-  currenttime = (now - inittime_wallclock) * clocktick;
-  return (currenttime);
-}
-
-double CmiTimerVirtual()
-{
-  struct tms temp;
-  double currenttime;
-  int now;
-
-  times(&temp);
-  now = temp.tms_stime + temp.tms_utime;
-  currenttime = (now - inittime_virtual) * clocktick;
-  return (currenttime);
-}
-
-double CmiTimer()
-{
-  return CmiTimerVirtual();
-}
-
-#endif
-
-#ifdef CMK_TIMER_USE_GETRUSAGE
-
-static double inittime_wallclock;
-static double inittime_virtual;
-
-static void CmiTimerInit()
-{
-  struct timeval tv;
-  struct rusage ru;
-  gettimeofday(&tv);
-  inittime_wallclock = (tv.tv_sec * 1.0) + (tv.tv_usec*0.000001);
-  getrusage(0, &ru); 
-  inittime_virtual =
-    (ru.ru_utime.tv_sec * 1.0)+(ru.ru_utime.tv_usec * 0.000001) +
-    (ru.ru_stime.tv_sec * 1.0)+(ru.ru_stime.tv_usec * 0.000001);
-}
-
-double CmiTimerVirtual()
-{
-  struct rusage ru;
-  double currenttime;
-
-  getrusage(0, &ru);
-  currenttime =
-    (ru.ru_utime.tv_sec * 1.0)+(ru.ru_utime.tv_usec * 0.000001) +
-    (ru.ru_stime.tv_sec * 1.0)+(ru.ru_stime.tv_usec * 0.000001);
-  return currenttime - inittime_virtual;
-}
-
-double CmiTimerWallClock()
-{
-  struct timeval tv;
-  double currenttime;
-
-  gettimeofday(&tv);
-  currenttime = (tv.tv_sec * 1.0) + (tv.tv_usec * 0.000001);
-  return currenttime - inittime_wallclock;
-}
-
-double CmiTimer()
-{
-  return CmiTimerVirtual();
-}
-
-#endif
-
 /*****************************************************************************
  *
  * Readonly Data
@@ -1124,7 +903,7 @@ typedef unsigned char BYTE;
 /* In bytes.  Make sure this is greater than zero! */
 /* Works out to be about 2018 bytes. */
 
-# define MAXDSIZE (CMK_MAX_DGRAM_SIZE - sizeof(DATA_HDR))
+# define MAXDSIZE (CMK_DGRAM_MAX_SIZE - sizeof(DATA_HDR))
 
 /* Format of the header sent with each fragment. */
 typedef struct DATA_HDR
@@ -1251,7 +1030,7 @@ static void send_ack(packet,penum)
    implementation are as follows:
 
    1) The sends are not synchronous, i.e. every pack is not acknowledged before
-      the next packet is sent. Instead, packets are sent until WINDOW_SIZE 
+      the next packet is sent. Instead, packets are sent until CMK_DGRAM_WINDOW_SIZE 
       packets remain unacknowledged.
 
    2) An ack packet with sequence number N acknowledges all packets upto and
@@ -1290,8 +1069,8 @@ static void SendWindowInit()
 
   for (i = 0; i < numpe; i++) {
     if (i != mype) {
-       send_window[i]=(WindowElement *)CmiAlloc(WINDOW_SIZE*sizeof(WindowElement));
-      for (j = 0; j < WINDOW_SIZE; j++) {
+       send_window[i]=(WindowElement *)CmiAlloc(CMK_DGRAM_WINDOW_SIZE*sizeof(WindowElement));
+      for (j = 0; j < CMK_DGRAM_WINDOW_SIZE; j++) {
         send_window[i][j].packet = NULL;
         send_window[i][j].seq_num = 0;
         send_window[i][j].send_time = 0.0;
@@ -1362,7 +1141,7 @@ int destpe;
   send_window[destpe][last_window_index[destpe]].send_time = CmiNow;
   packet->seq_num = next_seq_num[destpe];
   next_seq_num[destpe]++;
-  last_window_index[destpe] = (last_window_index[destpe] + 1) % WINDOW_SIZE;
+  last_window_index[destpe] = (last_window_index[destpe] + 1) % CMK_DGRAM_WINDOW_SIZE;
   cur_window_size[destpe]++;
   return 1;
 }
@@ -1376,8 +1155,8 @@ int destpe;
   unsigned int act_size;
   int i;
 
-  CmiNow = CmiTimerWallClock();
-  while (cur_window_size[destpe] < WINDOW_SIZE &&
+  CmiNow = CmiWallTimer();
+  while (cur_window_size[destpe] < CMK_DGRAM_WINDOW_SIZE &&
      ((packet = GetTransmitPacket(destpe)) != NULL))
   {
     AddToSendWindow(packet, destpe);
@@ -1403,7 +1182,7 @@ DATA_HDR *ack;
 int sourcepe;
 {
   int i, index, found, count;
-  DATA_HDR *PacketsToBeFreed[WINDOW_SIZE];
+  DATA_HDR *PacketsToBeFreed[CMK_DGRAM_WINDOW_SIZE];
 
   if (cur_window_size[sourcepe] == 0)  /* empty window */
     return;
@@ -1414,7 +1193,7 @@ int sourcepe;
   while (count < cur_window_size[sourcepe] && !found) 
   {
     found = (send_window[sourcepe][index].seq_num == ack->seq_num);
-    index = (index + 1) % WINDOW_SIZE;
+    index = (index + 1) % CMK_DGRAM_WINDOW_SIZE;
     count++;
   }
   if (found) {
@@ -1425,7 +1204,7 @@ int sourcepe;
     {
       PacketsToBeFreed[i] = send_window[sourcepe][index].packet;
       send_window[sourcepe][index].packet = NULL;
-      index = (index + 1) % WINDOW_SIZE;
+      index = (index + 1) % CMK_DGRAM_WINDOW_SIZE;
     }
     first_window_index[sourcepe] = index;
     cur_window_size[sourcepe] -= count;
@@ -1447,7 +1226,7 @@ static int RetransmitPackets()
   DATA_HDR *packet;
   int sending=0;
 
-  CmiNow = CmiTimerWallClock();
+  CmiNow = CmiWallTimer();
   for (i = 0; i < CpvAccess(Cmi_numpes); i++) {
     index = first_window_index[i];
     if (cur_window_size[i] > 0) {
@@ -1505,8 +1284,8 @@ static RecvWindowInit()
   needack = (int *) CmiAlloc(numpe * sizeof(int));
   for (i = 0; i < numpe; i++) {
     if (i != mype) {
-      recv_window[i]=(WindowElement *)CmiAlloc(WINDOW_SIZE*sizeof(WindowElement));
-      for (j = 0; j < WINDOW_SIZE; j++) {
+      recv_window[i]=(WindowElement *)CmiAlloc(CMK_DGRAM_WINDOW_SIZE*sizeof(WindowElement));
+      for (j = 0; j < CMK_DGRAM_WINDOW_SIZE; j++) {
         recv_window[i][j].packet = NULL;
         recv_window[i][j].seq_num = 0;
         recv_window[i][j].send_time = 0.0;
@@ -1544,13 +1323,13 @@ static int AddToReceiveWindow(packet, sourcepe)
 {
   int index;
   unsigned int seq_num = packet->seq_num;
-  unsigned int last_seq_num = expected_seq_num[sourcepe] + WINDOW_SIZE - 1;
+  unsigned int last_seq_num = expected_seq_num[sourcepe] + CMK_DGRAM_WINDOW_SIZE - 1;
 
   /* 
      Note that seq_num cannot be > last_seq_num.
-     Otherwise,  > last_seq_num - WINDOW_SIZE has been ack'd.
+     Otherwise,  > last_seq_num - CMK_DGRAM_WINDOW_SIZE has been ack'd.
      If that were the case, 
-     expected_seq_num[sourcepe] > > last_seq_num - WINDOW_SIZE,
+     expected_seq_num[sourcepe] > > last_seq_num - CMK_DGRAM_WINDOW_SIZE,
      which is a contradiction
    */
 
@@ -1563,7 +1342,7 @@ static int AddToReceiveWindow(packet, sourcepe)
     }
     else {
       index = (next_window_index[sourcepe] + 
-      seq_num - expected_seq_num[sourcepe]) % WINDOW_SIZE;
+      seq_num - expected_seq_num[sourcepe]) % CMK_DGRAM_WINDOW_SIZE;
       /* put needack and NumUseless++ here ??? */
       if (recv_window[sourcepe][index].packet) 
         CmiFree(packet);
@@ -1596,7 +1375,7 @@ static DATA_HDR *ExtractNextPacket(sourcepe)
     recv_window[sourcepe][index].packet = NULL;
     needack[sourcepe] = 1;
     expected_seq_num[sourcepe]++;
-    next_window_index[sourcepe]=(next_window_index[sourcepe] + 1) % WINDOW_SIZE;
+    next_window_index[sourcepe]=(next_window_index[sourcepe] + 1) % CMK_DGRAM_WINDOW_SIZE;
   }
   return packet;
 }
@@ -1683,8 +1462,8 @@ static int data_getone()
   int AddToReceiveWindow();
   int n;
 
-  recv_buf = (msgspace *)CmiAlloc(CMK_MAX_DGRAM_SIZE);
-  do n=recvfrom(data_skt,(char *)recv_buf,CMK_MAX_DGRAM_SIZE,0,(struct sockaddr *)&src,&srclen);
+  recv_buf = (msgspace *)CmiAlloc(CMK_DGRAM_MAX_SIZE);
+  do n=recvfrom(data_skt,(char *)recv_buf,CMK_DGRAM_MAX_SIZE,0,(struct sockaddr *)&src,&srclen);
   while ((n<0)&&(errno==EINTR));
   if (n<0) { KillEveryone(strerror(errno)); }
   kind = (recv_buf->hd.rem_size)?SEND:ACK;
@@ -1729,7 +1508,7 @@ static int dgram_scan()
   return gotsend;
 }
 
-#ifdef CMK_ASYNC_DOESNT_WORK_USE_TIMER_INSTEAD
+#if CMK_ASYNC_DOESNT_WORK_USE_TIMER_INSTEAD
 
 static int ticker_countup = 0;
 
@@ -1772,7 +1551,7 @@ static void InterruptHandler()
 static void InterruptInit()
 {
   if (Cmi_enableinterrupts) {
-    jsignal(SIGALRM, InterruptHandler);
+    CmiSignal(SIGALRM, InterruptHandler);
     ticker_reset();
   }
 }
@@ -1799,8 +1578,8 @@ static void InterruptHandler()
 static void InterruptInit()
 {
   if (Cmi_enableinterrupts) {
-    jsignal(SIGIO, InterruptHandler);
-    enable_async(data_skt);
+    CmiSignal(SIGIO, InterruptHandler);
+    CmiEnableAsyncIO(data_skt);
   }
 }
 
@@ -1828,7 +1607,7 @@ static int netSend(destPE, size, msg)
   } 
   
   for(;pktnum<(numfrag-1);pktnum++) {
-    hd = (DATA_HDR *)CmiAlloc(CMK_MAX_DGRAM_SIZE);
+    hd = (DATA_HDR *)CmiAlloc(CMK_DGRAM_MAX_SIZE);
     hd->pktidx = pktnum;
     hd->rem_size = size;
     hd->PeNum = CpvAccess(Cmi_mype);
@@ -1877,7 +1656,7 @@ static int netSendV(destPE, n, sizes, msgs)
   tmpsrc = msgs[0];
 
   for(;pktnum<(numfrag-1);pktnum++) {
-    hd = (DATA_HDR *)CmiAlloc(CMK_MAX_DGRAM_SIZE);
+    hd = (DATA_HDR *)CmiAlloc(CMK_DGRAM_MAX_SIZE);
     hd->pktidx = pktnum;
     hd->rem_size = size;
     hd->PeNum = CpvAccess(Cmi_mype);
index c50c055cd2bcf74b306dbce507eaaf097d2e0f7e..125ee2f74ceb2dc6087827ab720d8ae96775a7bb 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 1.1  1995-11-15 18:17:30  gursoy
+ * Revision 1.2  1996-07-15 20:59:22  jyelon
+ * Moved much timer, signal, etc code into common.
+ *
+ * Revision 1.1  1995/11/15 18:17:30  gursoy
  * Initial revision
  *
  * Revision 2.8  1995/11/08  23:29:00  gursoy
@@ -99,41 +102,34 @@ unsigned int utimerinit[2] ;
 
 double CmiTimer()
 {
-/* Code below by Sanjeev : 10/24/95 */
-/* HWHZ is defined as 10000000 in /usr/iparagon/current/paragon/include/nx.h */
-/* However, to make the mclock and hwclock timings tally, I need to put in
-   the 50000000 constant below : that makes them exactly the same, except
-   of course, hwclock gives more precision */
-
-   unsigned int tim[2] ;
-   double t ;
-   hwclock(tim) ;
+   unsigned int tim[2]; double t;
  
-   t = (double)(tim[0]-utimerinit[0])/50000000.0 ;
-
-   return t ;
-
-/* NOTE : mclock returns time in milliseconds */
-/*    return ( (mclock() - clockinitvalue) / 1000.0 ); */
+   hwclock(tim);
+   return (double)(tim[0]-utimerinit[0])/50000000.0;
 }
 
+double CmiWallTimer()
+{
+   unsigned int tim[2]; double t;
+   hwclock(tim);
+   return (double)(tim[0]-utimerinit[0])/50000000.0;
+}
 
-
+double CmiCpuTimer()
+{
+   unsigned int tim[2]; double t;
+   hwclock(tim);
+   return (double)(tim[0]-utimerinit[0])/50000000.0;
+}
 
 static void CmiTimerInit()
 {
    hwclock(utimerinit) ;
-
-   /* clockinitvalue = mclock();       */
 }
 
 
-
-
-
-
-
 /********************* MESSAGE RECEIVE FUNCTIONS ******************/
 
 void *CmiGetNonLocal()
index f7a3c2fca084623414b1a16c07c4416646081ef6..ef3d6a356d3bafb0bf86cff9c1aa18270cf6af76 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 1.8  1995-11-08 23:40:58  gursoy
+ * Revision 1.9  1996-07-15 20:59:22  jyelon
+ * Moved much timer, signal, etc code into common.
+ *
+ * Revision 1.8  1995/11/08 23:40:58  gursoy
  * fixed varsize msg related bug
  *
  * Revision 1.7  1995/11/08  00:42:13  jyelon
@@ -44,14 +47,6 @@ static char ident[] = "@(#)$Header$";
 #include "machine.h"
 #include "converse.h"
 
-#ifdef CMK_TIMER_USE_TIMES
-#include <sys/times.h>
-#include <sys/unistd.h>
-#endif
-#ifdef CMK_TIMER_USE_GETRUSAGE
-#include <sys/time.h>
-#include <sys/resource.h>
-#endif
 static void **McQueue;
 
 int Cmi_mype;
@@ -419,7 +414,7 @@ void CsdExitScheduler()
 
 
 
-#ifdef CMK_TIMER_USE_TIMES
+#if CMK_TIMER_USE_TIMES
 
 static struct tms inittime;
 
@@ -444,7 +439,7 @@ static double CsiTimer()
 
 #endif
 
-#ifdef CMK_TIMER_USE_GETRUSAGE
+#if CMK_TIMER_USE_GETRUSAGE
 
 static struct rusage inittime;
 
@@ -477,14 +472,20 @@ static double Csi_start_time;
 
 
 
-
 double CmiTimer()
 {
-    return (CsiTimer() - Csi_start_time  + Csi_global_time);
+  return (CsiTimer() - Csi_start_time  + Csi_global_time);
 }
 
+double CmiWallTimer()
+{
+  return (CsiTimer() - Csi_start_time  + Csi_global_time);
+}
 
-
+double CmiCpuTimer()
+{
+  return (CsiTimer() - Csi_start_time  + Csi_global_time);
+}
 
 void CsdUniScheduler(count)
 int count;
index 40fbaed0156e386f1eca265187a971dde5737a2d..7ff1c285b37715097147cf0eed57f0136edca727 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 2.8  1996-01-29 16:34:02  milind
+ * Revision 2.9  1996-07-15 20:59:22  jyelon
+ * Moved much timer, signal, etc code into common.
+ *
+ * Revision 2.8  1996/01/29 16:34:02  milind
  * Corrected a minor bug in CmiReleaseSetntMessages
  *
  * Revision 2.7  1995/11/09  18:23:11  milind
@@ -92,58 +95,44 @@ static MSG_LIST *end_sent=0;
 
 static void CmiTimerInit()
 {
-    struct timestruc_t time;
-
-    gettimer(TIMEOFDAY,&time);
-    itime=(double)time.tv_sec + 1.0e-9*((double) time.tv_nsec);
-}
-
-CmiUTimerInit()
-{
-/* Nothing, since we use just one timer for both usec and msec. */
+  struct timestruc_t time;
+  gettimer(TIMEOFDAY,&time);
+  itime=(double)time.tv_sec + 1.0e-9*((double) time.tv_nsec);
 }
 
-
 double CmiTimer()
 {
-    double tmsec;
-    double t;
-    struct timestruc_t time;
-
-    gettimer(TIMEOFDAY,&time);
-    t=(double)time.tv_sec + 1.0e-9*((double) time.tv_nsec);
-    tmsec = (double) (1.0e3*(t-itime));
-    return tmsec / 1000.0;
+  double tmsec, t;
+  struct timestruc_t time;
+  
+  gettimer(TIMEOFDAY,&time);
+  t=(double)time.tv_sec + 1.0e-9*((double) time.tv_nsec);
+  tmsec = (double) (1.0e3*(t-itime));
+  return tmsec / 1000.0;
 }
 
-
-/* These functions are for backward compatibility... */
-double CmiUTimer()
+double CmiWallTimer()
 {
-    unsigned int tusec;
-    double t;
-    struct timestruc_t time;
-
-    gettimer(TIMEOFDAY,&time);
-    t=(double)time.tv_sec + 1.0e-9*((double) time.tv_nsec);
-    tusec = (unsigned int) (1.0e6*(t-itime));
-    return (double) tusec;
+  double tmsec, t;
+  struct timestruc_t time;
+  
+  gettimer(TIMEOFDAY,&time);
+  t=(double)time.tv_sec + 1.0e-9*((double) time.tv_nsec);
+  tmsec = (double) (1.0e3*(t-itime));
+  return tmsec / 1000.0;
 }
 
-
-double CmiHTimer()
+double CmiCpuTimer()
 {
-    unsigned int thr;
-    double t;
-    struct timestruc_t time;
-
-    gettimer(TIMEOFDAY,&time);
-    t=(double)time.tv_sec + 1.0e-9*((double) time.tv_nsec);
-    thr = (unsigned int) ((t-itime)/3600.0);
-    return (double) thr;
+  double tmsec, t;
+  struct timestruc_t time;
+  
+  gettimer(TIMEOFDAY,&time);
+  t=(double)time.tv_sec + 1.0e-9*((double) time.tv_nsec);
+  tmsec = (double) (1.0e3*(t-itime));
+  return tmsec / 1000.0;
 }
 
-
 CmiAllAsyncMsgsSent()
 {
      MSG_LIST *msg_tmp = sent_msgs;
index e7327a9dd1e6bba8b27881a19b1c07514328a337..6fcea674702c967d1937d94dde1f10d2e778b703 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 1.2  1996-06-28 20:30:51  gursoy
+ * Revision 1.3  1996-07-15 20:59:22  jyelon
+ * Moved much timer, signal, etc code into common.
+ *
+ * Revision 1.2  1996/06/28 20:30:51  gursoy
  * *** empty log message ***
  *
  * Revision 1.1  1996/05/16  15:59:43  gursoy
@@ -92,28 +95,33 @@ free( ((char *)blk)-8);
 
 /**************************  TIMER FUNCTIONS **************************/
 
-double CmiTimer()
+double CmiWallTimer()
 {
-     double t;
-     t = (double) (rtclock() - beginTicks); 
-     return (double) (t/(double)ticksPerSecond) ;
+  double t;
+  t = (double) (rtclock() - beginTicks); 
+  return (double) (t/(double)ticksPerSecond);
 }
 
+double CmiCpuTimer()
+{
+  double t;
+  t = (double) (rtclock() - beginTicks); 
+  return (double) (t/(double)ticksPerSecond);
+}
 
-
+double CmiTimer()
+{
+  double t;
+  t = (double) (rtclock() - beginTicks); 
+  return (double) (t/(double)ticksPerSecond);
+}
 
 static void CmiTimerInit()
 {
-     ticksPerSecond = sysconf(_SC_CLK_TCK) ;
-     beginTicks = rtclock() ;
+  ticksPerSecond = sysconf(_SC_CLK_TCK) ;
+  beginTicks = rtclock() ;
 }
 
-
-
-
-
-
-
 /********************* MESSAGE RECEIVE FUNCTIONS ******************/
 
 void CmiDeliversInit()
index 82cadc97360d4bd8da8b51b663b9bad3e2553054..0142e7dfb437c3d8012374016fba52b869993331 100644 (file)
@@ -57,43 +57,25 @@ int  CmiScanf();
 #include <sys/time.h>
 #include <varargs.h>
 
-#ifdef CMK_HAVE_STRINGS_H
+#if CMK_STRINGS_USE_STRINGS_H
 #include <strings.h>
 #endif
 
-#ifdef CMK_HAVE_STRING_H
+#if CMK_STRINGS_USE_STRING_H
 #include <string.h>
 #endif
 
-#ifdef CMK_TIMER_USE_TIMES
-#include <sys/times.h>
-#endif
-
-#ifdef CMK_JUST_DECLARE_STRING_FNS
+#if CMK_STRINGS_USE_OWN_DECLARATIONS
 char *strchr(), *strrchr(), *strdup();
 #endif
 
-#ifdef CMK_RSH_IS_A_COMMAND
+#if CMK_RSH_IS_A_COMMAND
 #define RSH_CMD "rsh"
 #endif
-#ifdef CMK_RSH_USE_REMSH
+#if CMK_RSH_USE_REMSH
 #define RSH_CMD "remsh"
 #endif
 
-#ifdef CMK_STRERROR_USE_SYS_ERRLIST
-extern char *sys_errlist[];
-#define strerror(i) (sys_errlist[i])
-#endif
-
-#ifdef CMK_SIGHOLD_USE_SIGMASK
-int sighold(sig) int sig;
-{ if (sigblock(sigmask(sig)) < 0) return -1;
-  else return 0; }
-int sigrelse(sig) int sig;
-{ if (sigsetmask(sigblock(0)&(~sigmask(sig))) < 0) return -1;
-  else return 0; }
-#endif
-
 static void KillEveryone();
 static void KillEveryoneCode();
 
@@ -297,118 +279,6 @@ static void outlog_output(buf) char *buf;
   }
 }
 
-
-/**************************************************************************
- *
- * enable_async (enables signal-driven IO on a single descriptor)
- *
- **************************************************************************/
-
-#ifdef CMK_ASYNC_USE_FIOASYNC_AND_FIOSETOWN
-#include <sys/filio.h>
-static void enable_async(fd)
-int fd;
-{
-  int pid = getpid();
-  int async = 1;
-  if ( ioctl(fd, FIOSETOWN, &pid) < 0  ) {
-    CmiError("setting socket owner: %s\n", strerror(errno)) ;
-    KillEveryoneCode(65788) ;
-  }
-  if ( ioctl(fd, FIOASYNC, &async) < 0 ) {
-    CmiError("setting socket async: %s\n", strerror(errno)) ;
-    KillEveryoneCode(94458) ;
-  }
-}
-#endif
-
-#ifdef CMK_ASYNC_USE_FIOASYNC_AND_SIOCSPGRP
-#include <sys/filio.h>
-static void enable_async(fd)
-int fd;
-{
-  int pid = -getpid();
-  int async = 1;
-  if ( ioctl(fd, SIOCSPGRP, &pid) < 0  ) {
-    CmiError("setting socket owner: %s\n", strerror(errno)) ;
-    KillEveryoneCode(65788) ;
-  }
-  if ( ioctl(fd, FIOASYNC, &async) < 0 ) {
-    CmiError("setting socket async: %s\n", strerror(errno)) ;
-    KillEveryoneCode(94458) ;
-  }
-}
-#endif
-
-#ifdef CMK_ASYNC_USE_FIOSSAIOSTAT_AND_FIOSSAIOOWN
-#include <sys/ioctl.h>
-static void enable_async(fd)
-int fd;
-{
-  int pid = getpid();
-  int async = 1;
-  if ( ioctl(fd, FIOSSAIOOWN, &pid) < 0  ) {
-    CmiError("setting socket owner: %s\n", strerror(errno)) ;
-    KillEveryoneCode(65788) ;
-  }
-  if ( ioctl(fd, FIOSSAIOSTAT, &async) < 0 ) {
-    CmiError("setting socket async: %s\n", strerror(errno)) ;
-    KillEveryoneCode(94458) ;
-  }
-}
-#endif
-
-#ifdef CMK_ASYNC_USE_F_SETFL_AND_F_SETOWN
-static void enable_async(fd)
-int fd;
-{
-  if ( fcntl(fd, F_SETOWN, getpid()) < 0 ) {
-    CmiError("setting socket owner: %s\n", strerror(errno)) ;
-    KillEveryoneCode(8789) ;
-  }
-  if ( fcntl(fd, F_SETFL, FASYNC) < 0 ) {
-    CmiError("setting socket async: %s\n", strerror(errno)) ;
-    KillEveryoneCode(28379) ;
-  }
-}
-#endif
-
-#ifdef CMK_SIGNAL_USE_SIGACTION
-static void jsignal(sig, handler)
-int sig;
-void (*handler)();
-{
-  struct sigaction in, out ;
-  in.sa_handler = handler;
-  sigemptyset(&in.sa_mask);
-  in.sa_flags = 0;
-  sigaction(sig, &in, &out);
-}
-#endif
-
-#ifdef CMK_SIGNAL_USE_SIGACTION_WITH_RESTART
-static void jsignal(sig, handler)
-int sig;
-void (*handler)();
-{
-  struct sigaction in, out ;
-  in.sa_handler = handler ;
-  sigemptyset(&in.sa_mask);
-  in.sa_flags = SA_RESTART; 
-  if(sigaction(sig, &in, &out) == -1)
-      KillEveryone("sigaction failed.");
-}
-#endif
-
-#ifdef CMK_SIGNAL_IS_A_BUILTIN
-static void jsignal(sig, handler)
-int sig;
-void (*handler)();
-{
-  signal(sig, handler) ;
-}
-#endif
-
 /**************************************************************************
  *
  * SKT - socket routines
@@ -518,101 +388,6 @@ unsigned int ip; int port; int seconds;
   return fd;
 }
 
-/******************************************************************************
- *
- * CmiTimer
- *
- *****************************************************************************/
-
-#ifdef CMK_TIMER_USE_TIMES
-
-static double  clocktick;
-static int     inittime_wallclock;
-static int     inittime_virtual;
-
-static void CmiTimerInit()
-{
-  struct tms temp;
-  inittime_wallclock = times(&temp);
-  inittime_virtual = temp.tms_utime + temp.tms_stime;
-  clocktick = 1.0 / (sysconf(_SC_CLK_TCK));
-}
-
-double CmiTimerWallClock()
-{
-  struct tms temp;
-  double currenttime;
-  int now;
-
-  now = times(&temp);
-  currenttime = (now - inittime_wallclock) * clocktick;
-  return (currenttime);
-}
-
-double CmiTimerVirtual()
-{
-  struct tms temp;
-  double currenttime;
-  int now;
-
-  times(&temp);
-  now = temp.tms_stime + temp.tms_utime;
-  currenttime = (now - inittime_virtual) * clocktick;
-  return (currenttime);
-}
-
-double CmiTimer()
-{
-  return CmiTimerVirtual();
-}
-
-#endif
-
-#ifdef CMK_TIMER_USE_GETRUSAGE
-
-static double inittime_wallclock;
-static double inittime_virtual;
-
-static void CmiTimerInit()
-{
-  struct timeval tv;
-  struct rusage ru;
-  gettimeofday(&tv);
-  inittime_wallclock = (tv.tv_sec * 1.0) + (tv.tv_usec*0.000001);
-  getrusage(0, &ru); 
-  inittime_virtual =
-    (ru.ru_utime.tv_sec * 1.0)+(ru.ru_utime.tv_usec * 0.000001) +
-    (ru.ru_stime.tv_sec * 1.0)+(ru.ru_stime.tv_usec * 0.000001);
-}
-
-double CmiTimerVirtual()
-{
-  struct rusage ru;
-  double currenttime;
-
-  getrusage(0, &ru);
-  currenttime =
-    (ru.ru_utime.tv_sec * 1.0)+(ru.ru_utime.tv_usec * 0.000001) +
-    (ru.ru_stime.tv_sec * 1.0)+(ru.ru_stime.tv_usec * 0.000001);
-  return currenttime - inittime_virtual;
-}
-
-double CmiTimerWallClock()
-{
-  struct timeval tv;
-  double currenttime;
-
-  getttimeofday(&tv);
-  currenttime = (tv.tv_sec * 1.0) + (tv.tv_usec * 0.000001);
-  return currenttime - inittime_wallclock;
-}
-
-double CmiTimer()
-{
-  return CmiTimerVirtual();
-}
-
-#endif
 
 /*****************************************************************************
  *
@@ -1154,7 +929,7 @@ int pumpmsgs()
   }
 }
 
-#ifdef CMK_ASYNC_DOESNT_WORK_USE_TIMER_INSTEAD
+#if CMK_ASYNC_DOESNT_WORK_USE_TIMER_INSTEAD
 
 static int ticker_countup = 0;
 
@@ -1189,7 +964,7 @@ static void InterruptInit()
   FD_ZERO(&fds_read);
   FD_ZERO(&fds_write);
   FD_SET(ctrl_skt, &fds_read);
-  jsignal(SIGALRM, InterruptHandler);
+  CmiSignal(SIGALRM, InterruptHandler);
   ticker_reset();
   for (i=0; i<CpvAccess(Cmi_numpes); i++) {
     if (i!=CpvAccess(Cmi_mype)) {
@@ -1212,10 +987,10 @@ static void InterruptInit()
   FD_ZERO(&fds_read);
   FD_ZERO(&fds_write);
   FD_SET(ctrl_skt, &fds_read);
-  jsignal(SIGIO, InterruptHandler);
+  CmiSignal(SIGIO, InterruptHandler);
   for (i=0; i<CpvAccess(Cmi_numpes); i++) {
     if (i!=CpvAccess(Cmi_mype)) {
-      enable_async(node_table[i].talk_skt);
+      CmiEnableAsyncIO(node_table[i].talk_skt);
       FD_SET(node_table[i].talk_skt, &fds_read);
     }
   }
index 947dc43f95c498eb5a082a1e0312b2a6bf163900..2b6ce672ef7ff6b1677ea5925b2b0a892262d04f 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 1.14  1996-07-02 21:25:22  jyelon
+ * Revision 1.15  1996-07-15 20:59:22  jyelon
+ * Moved much timer, signal, etc code into common.
+ *
+ * Revision 1.14  1996/07/02 21:25:22  jyelon
  * *** empty log message ***
  *
  * Revision 1.13  1996/02/10 18:57:29  sanjeev
@@ -81,16 +84,6 @@ static char ident[] = "@(#)$Header$";
 #include <math.h>
 #include "converse.h"
 
-#ifdef CMK_TIMER_USE_TIMES
-#include <sys/times.h>
-#include <sys/unistd.h>
-#endif
-
-#ifdef CMK_TIMER_USE_GETRUSAGE
-#include <sys/time.h>
-#include <sys/resource.h>
-#endif
-
 static char *DeleteArg(argv)
   char **argv;
 {
@@ -119,63 +112,6 @@ static void mycpy(dst, src, bytes)
         }
 }
 
-
-
-/******************************************************************************
- *
- * CmiTimer
- *
- *****************************************************************************/
-#ifdef CMK_TIMER_USE_TIMES
-
-static struct tms inittime;
-
-static void CmiTimerInit()
-{
-  times(&inittime);
-}
-
-double CmiTimer()
-{
-  double currenttime;
-  int clk_tck;
-    struct tms temp;
-
-    times(&temp);
-    clk_tck=sysconf(_SC_CLK_TCK);
-    currenttime = 
-     (((temp.tms_utime - inittime.tms_utime)+
-       (temp.tms_stime - inittime.tms_stime))*1.0)/clk_tck;
-    return (currenttime);
-}
-
-#endif
-
-#ifdef CMK_TIMER_USE_GETRUSAGE
-
-static struct rusage inittime;
-
-static void CmiTimerInit()
-{
-  getrusage(0, &inittime); 
-}
-
-double CmiTimer() {
-  double currenttime;
-
-  struct rusage temp;
-  getrusage(0, &temp);
-  currenttime =
-    (temp.ru_utime.tv_usec - inittime.ru_utime.tv_usec) * 0.000001+
-      (temp.ru_utime.tv_sec - inittime.ru_utime.tv_sec) +
-       (temp.ru_stime.tv_usec - inittime.ru_stime.tv_usec) * 0.000001+
-         (temp.ru_stime.tv_sec - inittime.ru_stime.tv_sec) ; 
-  
-  return (currenttime);
-}
-
-#endif
-
 /*****************************************************************************
  *
  * Memory management.