From 97c1685def13be3724a6d025f4e12f236777a911 Mon Sep 17 00:00:00 2001 From: Joshua Bakita Date: Sat, 17 Oct 2020 15:17:24 -0400 Subject: Cleanup `extra.h` for pairs and add option to use that in DIS build Also remove some unused code from the cleanupSemaphores utility --- all_pairs/source/adpcm_dec/adpcm_dec.c | 2 +- all_pairs/source/adpcm_enc/adpcm_enc.c | 2 +- all_pairs/source/ammunition/ammunition.c | 2 +- all_pairs/source/anagram/anagram.c | 2 +- all_pairs/source/audiobeam/audiobeam.c | 2 +- all_pairs/source/cjpeg_transupp/cjpeg_transupp.c | 2 +- all_pairs/source/cjpeg_wrbmp/cjpeg_wrbmp.c | 2 +- all_pairs/source/cleanupSemaphores.c | 4 -- all_pairs/source/dijkstra/dijkstra.c | 2 +- all_pairs/source/empty.c | 2 +- all_pairs/source/epic/epic.c | 2 +- all_pairs/source/extra.h | 52 +++++++++++++++--------- all_pairs/source/fmref/fmref.c | 2 +- all_pairs/source/g723_enc/g723_enc.c | 2 +- all_pairs/source/gsm_dec/gsm_dec.c | 2 +- all_pairs/source/gsm_enc/gsm_enc.c | 2 +- all_pairs/source/h264_dec/h264_dec.c | 2 +- all_pairs/source/huff_dec/huff_dec.c | 2 +- all_pairs/source/huff_enc/huff_enc.c | 2 +- all_pairs/source/mpeg2/mpeg2.c | 2 +- all_pairs/source/ndes/ndes.c | 2 +- all_pairs/source/petrinet/petrinet.c | 2 +- all_pairs/source/rijndael_dec/rijndael_dec.c | 2 +- all_pairs/source/rijndael_enc/rijndael_enc.c | 2 +- all_pairs/source/statemate/statemate.c | 2 +- all_pairs/source/susan/susan.c | 2 +- 26 files changed, 57 insertions(+), 47 deletions(-) (limited to 'all_pairs/source') diff --git a/all_pairs/source/adpcm_dec/adpcm_dec.c b/all_pairs/source/adpcm_dec/adpcm_dec.c index 6811e69..04a5746 100644 --- a/all_pairs/source/adpcm_dec/adpcm_dec.c +++ b/all_pairs/source/adpcm_dec/adpcm_dec.c @@ -708,7 +708,7 @@ void _Pragma( "entrypoint" ) adpcm_dec_main( void ) int main(int argc, char **argv) { SET_UP - for (jobsComplete=-1; jobsComplete #include #include @@ -30,23 +31,31 @@ #include #include #include +#include + +// This is only visible if _GNU_SOURCE is defined, and that define does not +// come along to places where this file is included. Address this by manually +// forcing it into the global namespace. +extern int sched_getcpu(); // Benchmarks use SET_UP, START_LOOP, STOP_LOOP, and WRITE_TO_FILE // These are macros so that we can declare and maintain additional state inside // the benchmark. -#define SET_UP if (argc < 8) {\ +#define SET_UP if (argc != 8) {\ printf("Usage: %s ", argv[0]);\ exit(1);\ }\ char * thisProgram = argv[1];\ int maxJobs = atoi(argv[2]);\ - char * thisCore = argv[3];\ - char * otherCore = argv[4];\ + unsigned int thisCore = atoi(argv[3]);\ + unsigned int otherCore = atoi(argv[4]);\ + thisCore = sched_getcpu();\ char * otherProgram = argv[5];\ char * runID = argv[6];\ int lockID = atoi(argv[7]);\ - struct timespec start, end;\ + struct timespec _start, _end;\ int jobsComplete;\ + int jobs_complete = -1;\ long * startS = malloc(sizeof(long) *maxJobs);\ long * startN = malloc(sizeof(long) *maxJobs);\ long * endS = malloc(sizeof(long) *maxJobs);\ @@ -81,14 +90,19 @@ perror("Error mapping shared memory");\ exit(1);\ }\ - int error;\ int val; -#define SAVE_RESULTS if (jobsComplete > -1){\ - startS[jobsComplete]=start.tv_sec;\ - startN[jobsComplete]=start.tv_nsec;\ - endS[jobsComplete]=end.tv_sec;\ - endN[jobsComplete]=end.tv_nsec;} +#define SAVE_RESULTS \ + if(jobs_complete >= maxJobs) {\ + fprintf(stderr, "Max jobs setting too small! Trying to record job #%d when we only have space for %d jobs. Exiting...\n", jobs_complete, maxJobs);\ + exit(1);\ + }\ + if (jobs_complete > -1){\ + startS[jobs_complete]=_start.tv_sec;\ + startN[jobs_complete]=_start.tv_nsec;\ + endS[jobs_complete]=_end.tv_sec;\ + endN[jobs_complete]=_end.tv_nsec;\ + } #define WRITE_TO_FILE {\ munlockall();\ @@ -97,11 +111,11 @@ perror("Error opening file. \n");\ exit(1);\ }\ - for(jobsComplete=0; jobsComplete