Skip to content
Snippets Groups Projects
Commit 8286b580 authored by Austin Clements's avatar Austin Clements
Browse files

Remove my lame start sync and start recording before setup

Turns out mscan deals just fine with the benchmark setup
parent a036c823
Branches main
No related merge requests found
......@@ -22,10 +22,15 @@ static const bool pinit = true;
enum { nfile = MTRACE ? 2 : 10 };
enum { nlookup = MTRACE ? 2 : 100 };
// XXX(austin) Totally lame. Put this buffer in the BSS so we don't
// have to COW fault the stack.
static char pn[32]
__attribute__((aligned(4096)));
void
bench(u32 tid, int nloop, const char* path)
{
char pn[32];
// char pn[32];
if (pinit)
setaffinity(tid);
......@@ -85,29 +90,17 @@ main(int ac, char** av)
xmkdir(path);
int start[2];
if (pipe(start) < 0)
die("pipe");
mtenable_type(mtrace_record_ascope, "xv6-dirbench");
u64 t0 = rdtsc();
for(u32 i = 0; i < nthread; i++) {
int pid = xfork();
if (pid == 0) {
close(start[1]);
char token;
if (read(start[0], &token, 1) < 1)
die("read");
bench(i, nloop, path);
} else if (pid < 0)
die("fork");
}
mtenable_type(mtrace_record_ascope, "xv6-dirbench");
const char wakeup[256] = {};
if (write(start[1], wakeup, nthread) < nthread)
die("write");
for (u32 i = 0; i < nthread; i++)
xwait();
u64 t1 = rdtsc();
......
......@@ -74,6 +74,8 @@ main(int ac, char **av)
if (ac > 3)
path = av[3];
mtenable_type(mtrace_record_ascope, "xv6-filebench");
// Setup shared file
unlink(path);
int fd = xcreat(path);
......@@ -86,31 +88,17 @@ main(int ac, char **av)
}
close(fd);
int start[2];
if (pipe(start) < 0)
die("pipe");
//mtenable("xv6-filebench");
u64 t0 = rdtsc();
for (int i = 0; i < nthread; i++) {
int pid = xfork();
if (pid == 0) {
close(start[1]);
char token;
if (read(start[0], &token, 1) < 1)
die("read");
bench(i, nloop, path);
}
else if (pid < 0)
die("fork");
}
mtenable_type(mtrace_record_ascope, "xv6-filebench");
const char wakeup[256] = {};
if (write(start[1], wakeup, nthread) < nthread)
die("write");
for (int i = 0; i < nthread; i++)
xwait();
u64 t1 = rdtsc();
......
......@@ -37,8 +37,8 @@ thr(void *arg)
pthread_barrier_wait(&bar);
if (tid == 0)
mtenable_type(mtrace_record_ascope, "xv6-asharing");
// if (tid == 0)
// mtenable_type(mtrace_record_ascope, "xv6-asharing");
pthread_barrier_wait(&bar2);
......@@ -75,6 +75,8 @@ main(int ac, char **av)
if (ac > 2)
niter = atoi(av[2]);
mtenable_type(mtrace_record_ascope, "xv6-asharing");
pthread_t* tid = (pthread_t*) malloc(sizeof(*tid)*nthread);
pthread_barrier_init(&bar, 0, nthread);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment