From e7648fdf1fcd47fd216868991e7e85dcca2867db Mon Sep 17 00:00:00 2001 From: sage Date: Tue, 5 Jul 2005 16:46:44 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@395 29311d96-e01e-0410-9327-a35deaab8ce9 --- ceph/client/SyntheticClient.cc | 12 ++++--- ceph/config.cc | 2 ++ ceph/fakesyn.cc | 61 +++++++++++++++++----------------- ceph/mds/MDCache.cc | 4 +++ 4 files changed, 45 insertions(+), 34 deletions(-) diff --git a/ceph/client/SyntheticClient.cc b/ceph/client/SyntheticClient.cc index 855a11d48f0ce..1f4b851e53199 100644 --- a/ceph/client/SyntheticClient.cc +++ b/ceph/client/SyntheticClient.cc @@ -113,6 +113,7 @@ int SyntheticClient::start_thread() assert(!thread_id); pthread_create(&thread_id, NULL, synthetic_client_thread_entry, this); + assert(thread_id); } int SyntheticClient::join_thread() @@ -242,7 +243,7 @@ int SyntheticClient::write_file(string& fn, int size, int wrsize) // size is i if (fd < 0) return fd; for (int i=0; i run_until) return 0; + if (g_clock.gettimepair() > run_until) break; dout(2) << "writing block " << i << "/" << chunks << endl; client->write(fd, buf, wrsize, i*wrsize); } @@ -262,7 +263,7 @@ int SyntheticClient::read_file(string& fn, int size, int rdsize) // size is in if (fd < 0) return fd; for (int i=0; i run_until) return 0; + if (g_clock.gettimepair() > run_until) break; dout(2) << "reading block " << i << "/" << chunks << endl; client->read(fd, buf, rdsize, i*rdsize); } @@ -284,7 +285,7 @@ int SyntheticClient::random_walk(int num_req) while (left > 0) { left--; - if (g_clock.gettimepair() > run_until) return 0; + if (g_clock.gettimepair() > run_until) break; // ascend? if (cwd.depth() && roll_die(.05)) { @@ -380,8 +381,10 @@ int SyntheticClient::random_walk(int num_req) op = MDS_OP_READDIR; else { r = client->open( get_random_sub(), O_RDWR ); - if (r > 0) + if (r > 0) { + assert(open_files.count(r) == 0); open_files.insert(r); + } } } @@ -446,4 +449,5 @@ int SyntheticClient::random_walk(int num_req) } dout(DBL) << "done" << endl; + return 0; } diff --git a/ceph/config.cc b/ceph/config.cc index 7eaa28beb91d3..81bce9027b56a 100644 --- a/ceph/config.cc +++ b/ceph/config.cc @@ -189,6 +189,8 @@ void parse_config_options(int argc, char **argv, else if (strcmp(argv[i], "--mds_bal_max") == 0) g_conf.mds_bal_max = atoi(argv[++i]); + else if (strcmp(argv[i], "--client_cache_size") == 0) + g_conf.client_cache_size = atoi(argv[++i]); else if (strcmp(argv[i], "--client_cache_stat_ttl") == 0) g_conf.client_cache_stat_ttl = atoi(argv[++i]); diff --git a/ceph/fakesyn.cc b/ceph/fakesyn.cc index 7e75ec9b1c509..62ba315923792 100644 --- a/ceph/fakesyn.cc +++ b/ceph/fakesyn.cc @@ -46,9 +46,10 @@ int main(int oargc, char **oargv) char **nargv = new pchar[argc]; nargv[nargc++] = argv[0]; - string syn_sarg1; - int syn_mode = SYNCLIENT_MODE_WRITEFILE; - int syn_iarg1, syn_iarg2, syn_iarg3; + list syn_modes; + list syn_iargs; + list syn_sargs; + int mkfs = 0; for (int i=1; isarg1 = s; - - syn[i]->mode = syn_mode; - syn[i]->iarg1 = syn_iarg1; - syn[i]->iarg2 = syn_iarg2; - syn[i]->iarg3 = syn_iarg3; - + syn[i]->modes = syn_modes; + syn[i]->sargs = syn_sargs; + syn[i]->iargs = syn_iargs; syn[i]->start_thread(); } for (int i=0; iget_nodeid() != 0 && !did_shutdown_exports) { + // flush what i can from the cache first.. + trim(0); + + // export to root for (set::iterator it = imports.begin(); it != imports.end(); ) { -- 2.39.5