]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
*** empty log message ***
authorsage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Wed, 27 Apr 2005 21:34:04 +0000 (21:34 +0000)
committersage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Wed, 27 Apr 2005 21:34:04 +0000 (21:34 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@171 29311d96-e01e-0410-9327-a35deaab8ce9

ceph/client/Client.cc
ceph/client/Client.h
ceph/config.cc
ceph/msg/CheesySerializer.cc
ceph/msg/CheesySerializer.o
ceph/msg/FakeMessenger.cc

index 3da47edaa64f1c0ba0435334b008173a051d2761..bde1dd09f72dcf1b26831ebad909f3bde70a3922 100644 (file)
 #include <utime.h>
 
 
+#include "include/config.h"
+#undef dout
+#define  dout(l)    if (l<=g_conf.debug) cout << "client" << whoami << " "
+
+
+
 // cons/des
 
 Client::Client(MDCluster *mdc, int id, Messenger *m)
@@ -37,6 +43,10 @@ Client::~Client()
 }
 
 
+void Client::init() {
+  // incoming message go through serializer
+  messenger->set_dispatcher(serial_messenger);
+}
 
 // -------------------
 // fs ops
@@ -55,9 +65,10 @@ int Client::lstat(const char *path, struct stat *stbuf)
   req->set_caller_uid(getuid());
   req->set_caller_gid(getgid());
 
-  reply = (MClientReply*)serial_messenger->sendrecv(req, MSG_ADDR_MDS(0));
+  reply = (MClientReply*)serial_messenger->sendrecv(req, MSG_ADDR_MDS(0), MDS_PORT_SERVER);
   
   int res = reply->get_result();
+  dout(10) << "lstat res is " << res << endl;
   if (res != 0) return res;
   
   //Transfer information from reply to stbuf
@@ -95,7 +106,7 @@ int Client::chmod(const char *path, mode_t mode)
   
   req->set_iarg( (int)mode );
 
-  reply = (MClientReply*)serial_messenger->sendrecv(req, MSG_ADDR_MDS(0));
+  reply = (MClientReply*)serial_messenger->sendrecv(req, MSG_ADDR_MDS(0), MDS_PORT_SERVER);
   return reply->get_result();
 }
 
@@ -115,7 +126,7 @@ int Client::chown(const char *path, uid_t uid, gid_t gid)
   req->set_iarg( (int)uid );
   req->set_iarg2( (int)gid );
 
-  reply = (MClientReply*)serial_messenger->sendrecv(req, MSG_ADDR_MDS(0));
+  reply = (MClientReply*)serial_messenger->sendrecv(req, MSG_ADDR_MDS(0), MDS_PORT_SERVER);
   return reply->get_result();
 }
 
@@ -135,7 +146,7 @@ int Client::utime(const char *path, struct utimbuf *buf)
   req->set_targ( buf->modtime );
   req->set_targ2( buf->actime );
 
-  reply = (MClientReply*)serial_messenger->sendrecv(req, MSG_ADDR_MDS(0));
+  reply = (MClientReply*)serial_messenger->sendrecv(req, MSG_ADDR_MDS(0), MDS_PORT_SERVER);
   return reply->get_result();
 }
 
index cf92da3f0ca141303fa17a42bb2e5a76de6f515f..22a81c359ecfcba0a5326772d542f305d1f7c33a 100644 (file)
@@ -185,6 +185,8 @@ class Client : public Dispatcher {
   Client(MDCluster *mdc, int id, Messenger *m);
   ~Client();
 
+  void init();
+
   // messaging
   void dispatch(Message *m) {
        cout << "dispatch not implemented" << endl;
index 2598326bc36a7872eb6d7c539bd40b523d8a6496..9094648a2c1f16c90fa338d77ec04637ec2592bf 100644 (file)
@@ -33,7 +33,7 @@ md_config_t g_conf = {
   fake_clock: true,
   fakemessenger_serialize: false,
 
-  debug: 10,
+  debug: 11,
 
   mdcache_size: 500, //MDS_CACHE_SIZE,
   mdcache_mid: .8,
index 85baed581b85e98982b58f5217047d163fb1efbc..f704950cc1b6997347c41ff6ad35150fae2d5c9b 100644 (file)
@@ -10,7 +10,7 @@ void CheesySerializer::dispatch(Message *m)
   // i better be expecting it
   assert(waiting_for_reply);
 
-  cout << "dispatch got " << reply << ", waking up waiter" << endl;
+  cout << "serializer: dispatch got " << reply << ", waking up waiter" << endl;
   reply = m;
   waiter.Post();
 }
@@ -18,14 +18,18 @@ void CheesySerializer::dispatch(Message *m)
 
 void CheesySerializer::send(Message *m, msg_addr_t dest, int port, int fromport)
 {
+  cout << "serializer: send " << m << endl;
   messenger->send_message(m, dest, port, fromport);
 }
 
 Message *CheesySerializer::sendrecv(Message *m, msg_addr_t dest, int port, int fromport)
 {
+  cout << "serializer: sendrecv " << m << endl;
   messenger->send_message(m, dest, port, fromport);
   waiting_for_reply = true;
+  cout << "serializer: sendrecv waiting " << endl;
   waiter.Wait();
+  cout << "serializer: sendrecv got " << reply << endl;
   return reply;
 }
 
index 26457e046c2a5b8c38df9cbda65b3abccc23a3b9..bd5b2d134d8f5ceef48076ab688094c92f521290 100644 (file)
Binary files a/ceph/msg/CheesySerializer.o and b/ceph/msg/CheesySerializer.o differ
index a0bad2a87c9c0b0b6b8691a1002aa3fd24c3e2e2..43f02975924f82619099939af0e9562c7aa37c07 100644 (file)
@@ -46,6 +46,7 @@ void *fakemessenger_thread(void *ptr)
   while (1) {
        awake = false;
        sem.Wait();
+       dout(1) << "thread woke up" << endl;
 
        if (shutdown) break;
        fakemessenger_do_loop();
@@ -135,6 +136,8 @@ FakeMessenger::FakeMessenger(long me)
   whoami = me;
   directory[ whoami ] = this;
 
+  cout << "fakemessenger " << whoami << " messenger is " << this << endl;
+
   string name;
   name = "m.";
   name += MSG_ADDR_TYPE(whoami);
@@ -202,7 +205,7 @@ int FakeMessenger::send_message(Message *m, msg_addr_t dest, int port, int fromp
 
   // wake up loop?
   if (!awake) {
-       dout(1) << "waking up fakemessenger" << endl;
+       dout(1) << "waking up fakemessenger thread" << endl; 
        awake = true;
        sem.Post();
   }