Exemple #1
0
int
ctx(int procs, int nprocs)
{
	int	msg;
	int	i;
	int	sum;

	/*
	 * Main process - all others should be ready to roll, time the
	 * loop.
	 */
	for (i = 0; i < TRIPS; ++i) {
		if (write(p[nprocs - procs][1], &msg, sizeof(msg)) !=
		    sizeof(msg)) {
			if (errno) perror("read/write on pipe");
			exit(1);
		}
		if (read(p[nprocs-1][0], &msg, sizeof(msg)) != sizeof(msg)) {
			if (errno) perror("read/write on pipe");
			exit(1);
		}
		sum = sumit(process_size);
	}
	return (sum);
}
Exemple #2
0
    // CONSTRUCTORS
    explicit StatsReport(std::ofstream* aofp)
	: os(*aofp) {
	header();
	sumit();
	stars();
	stages();
    }
Exemple #3
0
QString sumit_dir(const QString& path, const QString& temporary_path)
{
    QStringList files = QDir(path).entryList(QStringList("*"), QDir::Files, QDir::Name);
    QStringList dirs = QDir(path).entryList(QStringList("*"), QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);

    QString str = "";
    for (int i = 0; i < dirs.count(); i++) {
        str += QString("%1 %2\n").arg(sumit_dir(path + "/" + dirs[i], temporary_path)).arg(dirs[i]);
    }
    for (int i = 0; i < files.count(); i++) {
        str += QString("%1 %2\n").arg(sumit(path + "/" + files[i], 0, temporary_path)).arg(files[i]);
    }

    return compute_the_string_hash(str);
}
Exemple #4
0
void
doit(int p[][2], int rd, int wr)
{
	int	msg, sum = 0 /* lint */;

	signal(SIGTERM, SIG_DFL);
	if (data) bzero((void*)data, process_size);	
	for ( ;; ) {
		if (read(p[rd][0], &msg, sizeof(msg)) != sizeof(msg)) {
			if (errno) perror("read/write on pipe");
			break;
		}
		sum = sumit(process_size);
		if (write(p[wr][1], &msg, sizeof(msg)) != sizeof(msg)) {
			if (errno) perror("read/write on pipe");
			break;
		}
	}
	use_int(sum);
	exit(1);
}
Exemple #5
0
int
main(int ac, char **av)
{
	int	i, max_procs;
	double	overhead = 0;

	if (ac < 2) {
usage:		printf("Usage: %s [-s kbytes] processes [processes ...]\n",
		    av[0]);
		exit(1);
	}

	/*
	 * Need 4 byte ints.
	 */
	if (sizeof(int) != 4) {
		fprintf(stderr, "Fix sumit() in ctx.c.\n");
		exit(1);
	}

	/*
	 * If they specified a context size, get it.
	 */
	if (!strcmp(av[1], "-s")) {
		if (ac < 4) {
			goto usage;
		}
		process_size = atoi(av[2]) * 1024;
		if (process_size > 0) {
			data = (int *)calloc(1, max(process_size, CHUNK));
			BENCHO(sumit(CHUNK), sumit(0), 0);
			overhead = gettime();
			overhead /= get_n();
			overhead *= process_size;
			overhead /= CHUNK;
		}
		ac -= 2;
		av += 2;
	}

#if	defined(sgi) && defined(PIN)
	ncpus = sysmp(MP_NPROCS);
	sysmp(MP_MUSTRUN, 0);
#endif
	for (max_procs = atoi(av[1]), i = 1; i < ac; ++i) {
		int procs = atoi(av[i]);
		if (max_procs < procs) max_procs = procs;
	}
	max_procs = create_pipes(p, max_procs);
	overhead += pipe_cost(p, max_procs);
	max_procs = create_daemons(p, pids, max_procs);
	fprintf(stderr, "\n\"size=%dk ovr=%.2f\n", process_size/1024, overhead);
	for (i = 1; i < ac; ++i) {
		double	time;
		int	procs = atoi(av[i]);

		if (procs > max_procs) continue;

		BENCH(ctx(procs, max_procs), 0);
		time = usecs_spent();
		time /= get_n();
		time /= procs;
		time /= TRIPS;
		time -= overhead;
	    	fprintf(stderr, "%d %.2f\n", procs, time);
	}

	/*
	 * Close the pipes and kill the children.
	 */
     	killem(max_procs);
     	for (i = 0; i < max_procs; ++i) {
		close(p[i][0]);
		close(p[i][1]);
		if (i > 0) {
			wait(0);
		}
	}
	return (0);
}
Exemple #6
0
/*
 * parse_args
 *
 * Parse command line arguments.  Any errors cause the program to exit
 * at this point.
 */
void parse_args(int argc, char *argv[])
{
	int i;
	int opt, errflag = 0;
	int dflag = 0, bflag = 0, fflag = 0, tflag = 0;
	extern int optind;
	extern char *optarg;

	/* DVAL:        0  1     2      3   4  5  6  7  8  9  10 11 */
	int limits[] = { -1, -1, MAXBVAL, 17, 8, 5, 4, 3, 2, 2, 2, 2 };

	while ((opt = getopt(argc, argv, "b:d:ft:D?")) != EOF) {
		switch (opt) {
		case 'b':
			if (bflag)
				errflag++;
			else {
				bflag++;
				errno = 0;
				BVAL = atoi(optarg);
				if (errno) {
					perror("atoi");
					fprintf(stderr,
						" ERROR : atoi - errno %d.",
						errno);
					errflag++;
				}
			}
			break;
		case 'd':
			if (dflag)
				errflag++;
			else {
				dflag++;
				errno = 0;
				DVAL = atoi(optarg);
				if (errno) {
					perror("atoi");
					fprintf(stderr,
						" ERROR : atoi - errno %d.",
						errno);
					errflag++;
				}
			}
			break;
		case 'f':
			fflag = 1;
			break;
		case 'D':
			AUSDEBUG = 1;
			break;
		case 't':
			if (tflag)
				errflag++;
			else {
				tflag++;
				errno = 0;
				TVAL = atoi(optarg);
				if (!TVAL || errno) {
					perror("atoi");
					fprintf(stderr,
						" ERROR : atoi - errno %d.",
						errno);
					errflag++;
				}
			}
			break;
		case '?':
			errflag++;
			break;
		}
	}

	if (BVAL < 2) {
		errflag++;
		fprintf(stderr, "The value of b must be greater than 1\n");
	} else if (DVAL < 2) {
		errflag++;
		fprintf(stderr, "The depth value must be greater than 1\n");
	} else if (!fflag && (DVAL > MAXDVAL)) {
/* || BVAL > limits[DVAL])) { */
		fprintf(stderr, "\tExceeded process creation limits.   \
\n\tParameters will generate %lu processes.  \n\tThe preset limits are as \
follows:\n\t\tdepth\tbreadth\ttotal\n", sumit(BVAL, DVAL));
		for (i = 2; i <= MAXDVAL; i++)
			fprintf(stderr, "\t\t %-3d\t  %-5d\t%-5lu\n", i,
				limits[i], sumit(limits[i], i));
		exit(1);
	}
Exemple #7
0
main(int argc, char *argv[])
{
 int sockfd, newsockfd, clilen, childpid;
 struct sockaddr_in cli_addr, serv_addr;
 int fd, orbfd;
 time_t cur_time;
 int PORT;
 int con, c;
 in_addr_t lna;
 int val, lcv, lcv2, lcv3=0, high_fd;
 struct timeval timeout;
 char buffer[10002];
 fd_set read_fds, except_fds;

 for (lcv=0;lcv<NUM_CLIENTS;lcv++)
   local_data.connected[lcv]=local_data.ipaddr[lcv]=local_data.used[lcv]=0;

  strt.msgID = 2;
  strt.msgSize = 8;

 if (argc != 3) {
   fprintf(stderr, "usage: %s port sourcename\n", argv[0]);
   exit(1);
 }

 PORT=atoi(argv[1]);

 printf("source name: %s\nport: %d\n",argv[2],PORT);

 *((short int *)buffer)=htons(100);

 if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
   {
     perror("revelle_data: can't open stream socket");
     exit(-1);
   }

 bzero((char *) &serv_addr, sizeof(serv_addr));

 if (-1 != (lna=inet_addr("198.202.124.8")))
   memcpy(&(serv_addr.sin_addr), &lna, 
	  min(sizeof(serv_addr.sin_addr), sizeof(lna)));
 else
   {
     perror("host lookup failed");
     exit(-1);
   }

 serv_addr.sin_family      = AF_INET;
 serv_addr.sin_port        = htons(PORT);

 if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr))<0)
   {
     perror("connect failed!");
     exit(-1);
   }

 while(1)
   {
     FD_ZERO(&read_fds);
     FD_SET(sockfd,&read_fds);
     high_fd=sockfd+1;

     timeout.tv_sec=10;
     timeout.tv_usec=0;
     lcv=select(high_fd,&read_fds,0,0,&timeout);
     if (lcv<0)
       {
	 perror("select");
	 exit(-1);
       }
     else if (FD_ISSET(sockfd,&read_fds))
       {
	
	 if (read(sockfd,buffer,2)<=0)
	   {
	     perror("read");
	     exit(-1);
	   }
	
	 printf(" * %d\n",*((short int*)buffer));
       }
     else
       {
	 pkt.msgID=htons(1);
	 pkt.msgSize=htons(58);
	 pkt.seq_num=htonl(lcv3++);
	 pkt.timestamp=time(NULL);
	 pkt.num_chan=htons(2);
	 pkt.num_samp=htons(2);
	 pkt.samp_rate=1.0;
	 strncpy(pkt.sta_name,"PFO",5);
	 strncpy(pkt.net_name,"SM",2);
	 pkt.pad=0;

	 strncpy(buffer,"dus",3); /* channel */
	 strncpy(buffer+3,"N",2); /* location code */
	 *(buffer+4)=0; /* pad */
	 strncpy(buffer+6,"lon",3); /* channel */
	 strncpy(buffer+9,"S",2); /* location code */
	 *(buffer+11)=0; /* pad */
	 *((short int*)(buffer+12))=htons(1000);
	 *((short int*)(buffer+14))=htons(-1000);
	 *((short int*)(buffer+16))=htons(3);
	 *((short int*)(buffer+18))=htons(4);

	 /*pkt.chksum=htons(0);*/ /* use this to send invalid pkts */
	 pkt.chksum=htons(sumit((char*)&pkt,36,buffer,20));
	 printf("sent data checksum=%d, size of header=%d\n",ntohs(pkt.chksum),sizeof(pkt));


	 if (write(sockfd,&pkt,38)!=38)
	   {
	     printf("write issue!\n");
	   }
	 if (write(sockfd,buffer,20)!=20)
	   {
	     printf("write issue!2\n");
	   }
       }
   }
}