提交 4eb67816 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

Merge branch 'scale-amd64' of git+ssh://amsterdam.csail.mit.edu/home/am0/6.828/xv6 into scale-amd64

......@@ -88,6 +88,9 @@ UPROGS= \
_sh \
_thrtest \
_halt \
_time \
_sleep \
_dirbench \
_usertests
UPROGS := $(addprefix $(O)/, $(UPROGS))
......
......@@ -12,12 +12,12 @@ enum { nlookup = 100 };
char dirs[nthread][MAXNAME];
void
bench(uint tid)
bench(u32 tid)
{
char pn[MAXNAME];
for (uint x = 0; x < nloop; x++) {
for (uint i = 0; i < nfile; i++) {
for (u32 x = 0; x < nloop; x++) {
for (u32 i = 0; i < nfile; i++) {
snprintf(pn, sizeof(pn), "%s/f:%d:%d", dirs[tid], tid, i);
int fd = open(pn, O_CREATE | O_RDWR);
......@@ -27,7 +27,7 @@ bench(uint tid)
close(fd);
}
for (uint i = 0; i < nlookup; i++) {
for (u32 i = 0; i < nlookup; i++) {
snprintf(pn, sizeof(pn), "%s/f:%d:%d", dirs[tid], tid, (i % nfile));
int fd = open(pn, O_RDWR);
if (fd < 0)
......@@ -36,7 +36,7 @@ bench(uint tid)
close(fd);
}
for (uint i = 0; i < nfile; i++) {
for (u32 i = 0; i < nfile; i++) {
snprintf(pn, sizeof(pn), "%s/f:%d:%d", dirs[tid], tid, i);
if (unlink(pn) < 0)
printf(1, "unlink failed\n");
......@@ -49,27 +49,27 @@ bench(uint tid)
int
main(void)
{
for (uint i = 0; i < nthread; i++) {
for (u32 i = 0; i < nthread; i++) {
//snprintf(dirs[i], sizeof(dirs[i]), "/db%d", i);
snprintf(dirs[i], sizeof(dirs[i]), "/dbx");
if (mkdir(dirs[i]) < 0)
printf(1, "mkdir failed\n");
}
mtrace_enable_set(1, "xv6-dirbench");
// mtrace_enable_set(1, "xv6-dirbench");
printf(1, "dirbench[%d]: start\n", getpid());
for(uint i = 0; i < nthread; i++) {
for(u32 i = 0; i < nthread; i++) {
int pid = fork(0);
if (pid == 0)
bench(i);
}
for (uint i = 0; i < nthread; i++)
for (u32 i = 0; i < nthread; i++)
wait();
mtrace_enable_set(0, "xv6-dirbench");
// mtrace_enable_set(0, "xv6-dirbench");
printf(1, "dirbench[%d]: done\n", getpid());
halt();
// halt();
exit();
}
......@@ -52,7 +52,7 @@ forktree(int depth)
mtdisable("xv6-forkexectree");
printf(1, "%d: forkexectree OK\n", getpid());
halt();
// halt();
}
int
......
......@@ -54,7 +54,7 @@ forktest(void)
mtrace_enable_set(0, "xv6-forktest");
printf(1, "fork test OK\n");
halt();
// halt();
}
int
......
......@@ -51,7 +51,7 @@ forktree(void)
mtdisable("xv6-forktree");
printf(1, "%d: fork tree OK\n", getpid());
halt();
// halt();
}
int
......
......@@ -72,6 +72,6 @@ main(void)
wait();
mtdisable("xv6-mapbench");
halt();
// halt();
exit();
}
......@@ -6,12 +6,12 @@
static void
printint(void (*putch) (void*, char), void *putarg,
int xx, int base, int sgn)
s64 xx, int base, int sgn)
{
const static char digits[] = "0123456789ABCDEF";
char buf[16];
char buf[21];
int i, neg;
int x;
s64 x;
neg = 0;
if(sgn && xx < 0){
......
#include "types.h"
#include "stat.h"
#include "user.h"
#include "fcntl.h"
#include "amd64.h"
int
main(void)
main(int ac, char *av[])
{
int i;
for (i = 0; i < 10000000; i++) {
sleep(1);
if (ac != 2) {
printf(1, "Usage: %s ticks\n", av[0]);
exit();
}
sleep(atoi(av[1]));
exit();
}
#include "types.h"
#include "stat.h"
#include "user.h"
#include "fcntl.h"
#include "amd64.h"
int
main(int ac, char *av[])
{
u64 t0 = rdtsc();
int pid = fork(0);
if (pid < 0) {
printf(1, "time: fork failed\n");
exit();
}
if (pid == 0) {
exec(av[1], av+1);
printf(1, "time: exec failed\n");
exit();
}
wait();
u64 t1 = rdtsc();
printf(1, "%lu cycles\n", t1-t0);
exit();
}
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论