main(int argc, char ** argv) { int loopcount; int memsize; if(argc < 4) { printf("Usage: memtest X loopcount memsize(MB)\n"); printf("where X = \n"); printf("1 : malloc test \n"); printf("2 : mmap test \n"); printf("3 : malloc test + touch pages\n"); printf("4 : mmap test + touch pages\n"); printf("5 : malloc/free test \n"); printf("6 : mmap/munmap test \n"); printf("loopcount - number of loops\n"); printf("memsize - memory segment size to allocate in MB.\n"); exit(1); } loopcount = atoi(argv[2]); memsize = atoi(argv[3]); switch(atoi(argv[1])) { case 1: malloctest(loopcount, memsize , 0 ); break; case 2: mmaptest(loopcount, memsize,0); break; case 3: malloctest(loopcount, memsize,1); break; case 4: mmaptest(loopcount, memsize,1); break; case 5: freetest(loopcount, memsize); break; case 6: unmaptest(loopcount, memsize); break; default: break; } }
static int remote(void *dummy) { uint64_t time = rdtsc(); int core = disp_get_core_id(); times[core] = time; printf("remote running on %d after %"PRIu64"\n", core, time-times[0]); if (core == 1) sys_print("Null\n", 5); BARRIER(barrier, NPROC); //sys_print("*", 1); null(core); if (core == 1) sys_print("sys_print\n", 10); BARRIER(barrier, NPROC); sysprinttest(core); BARRIER(barrier, NPROC); if (core == 1) sys_print("terminal_write\n", 15); BARRIER(barrier, NPROC); termwritetest(core); BARRIER(barrier, NPROC); if (core == 1) sys_print("printf\n", 7); BARRIER(barrier, NPROC); printftest(core); BARRIER(barrier, NPROC); if (core == 1) sys_print("malloc\n", 7); BARRIER(barrier, NPROC); malloctest(core); BARRIER(barrier, NPROC); if (core == 1) printf("\nlocktest1\n"); gcount = 0; BARRIER(barrier, NPROC); locktest1(core); BARRIER(barrier, NPROC); if (core == 1) { printf("gcount %"PRIx64"\n", gcount); gcount = 0; printf("locktest4\n"); } BARRIER(barrier, NPROC); locktest4(core); BARRIER(barrier, NPROC); if (core == 1) printf("gcount %"PRIx64"\n", gcount); if (core == 1) printf("inctest1\n"); atomiccounter = 0; BARRIER(barrier, NPROC); inctest1(core); BARRIER(barrier, NPROC); if (core == 1) { printf("count %"PRIx32"\n", atomiccounter); atomiccounter = 0; printf("inctest4\n"); } BARRIER(barrier, NPROC); inctest4(core); BARRIER(barrier, NPROC); if (core == 1) { printf("count %"PRIx32"\n", atomiccounter); atomiccounter = 0; printf("bartest1\n"); } BARRIER(barrier, NPROC); bartest1(core); BARRIER(barrier, NPROC); if (core == 1) printf("bartest4\n"); BARRIER(barrier, NPROC); bartest4(core); BARRIER(barrier, NPROC); if (core == 1) printf("mutextest\n"); BARRIER(barrier, NPROC); mutextest(core); BARRIER(barrier, NPROC); if (core == 1) printf("Done\n"); return 0; }