projects
/
bluesky.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
bf48831
)
Work on the synthetic read benchmark
author
Michael Vrable
<mvrable@cs.ucsd.edu>
Wed, 16 Mar 2011 17:24:19 +0000
(10:24 -0700)
committer
Michael Vrable
<mvrable@cs.ucsd.edu>
Wed, 16 Mar 2011 17:24:19 +0000
(10:24 -0700)
nfs3/synreadbench.c
patch
|
blob
|
history
diff --git
a/nfs3/synreadbench.c
b/nfs3/synreadbench.c
index
c3593d2
..
f4d5ad2
100644
(file)
--- a/
nfs3/synreadbench.c
+++ b/
nfs3/synreadbench.c
@@
-37,6
+37,7
@@
int threads;
int completed = 0;
int threads;
int completed = 0;
+int read_size = 32768;
struct bench_file {
uint64_t inum;
struct bench_file {
uint64_t inum;
@@
-281,16
+282,25
@@
static gboolean read_handler(GIOChannel *channel,
static void send_read_request(NFSConnection *nfs, uint64_t inum,
uint64_t offset, uint64_t len);
static void send_read_request(NFSConnection *nfs, uint64_t inum,
uint64_t offset, uint64_t len);
+static void submit_random_read(NFSConnection *nfs)
+{
+ struct bench_file *bf;
+ bf = &g_array_index(bench_files, struct bench_file,
+ g_random_int_range(0, bench_files->len));
+ int blocks = bf->size / read_size;
+ if (blocks == 0)
+ blocks = 1;
+
+ int offset = g_random_int_range(0, blocks);
+ send_read_request(nfs, bf->inum, offset * read_size, read_size);
+}
static void finish_read_request(NFSConnection *nfs, gpointer user_data,
const char *reply, size_t len)
{
printf("Done reading inode %d\n", GPOINTER_TO_INT(user_data));
static void finish_read_request(NFSConnection *nfs, gpointer user_data,
const char *reply, size_t len)
{
printf("Done reading inode %d\n", GPOINTER_TO_INT(user_data));
- struct bench_file *bf;
- bf = &g_array_index(bench_files, struct bench_file,
- g_random_int_range(0, bench_files->len));
- send_read_request(nfs, bf->inum, 0, 1048576);
+ submit_random_read(nfs);
}
static void send_read_request(NFSConnection *nfs, uint64_t inum,
}
static void send_read_request(NFSConnection *nfs, uint64_t inum,
@@
-323,10
+333,7
@@
static gboolean idle_handler(gpointer data)
int i;
for (i = 0; i < threads; i++) {
int i;
for (i = 0; i < threads; i++) {
- struct bench_file *bf;
- bf = &g_array_index(bench_files, struct bench_file,
- g_random_int_range(0, bench_files->len));
- send_read_request(nfs, bf->inum, 0, 1048576);
+ submit_random_read(nfs);
}
#if 0
}
#if 0
@@
-424,6
+431,8
@@
int main(int argc, char *argv[])
threads = 8;
if (argc > 2)
threads = atoi(argv[2]);
threads = 8;
if (argc > 2)
threads = atoi(argv[2]);
+ if (argc > 3)
+ read_size = atoi(argv[3]);
main_loop = g_main_loop_new(NULL, FALSE);
nfs_connect("niniel.sysnet.ucsd.edu");
main_loop = g_main_loop_new(NULL, FALSE);
nfs_connect("niniel.sysnet.ucsd.edu");