Whamcloud - gitweb
- add more stats in mdd
[fs/lustre-release.git] / lustre / mdd / mdd_lproc.c
index 36f8522..074fefc 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- MODE: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
  *
- *  mdd/mdd_handler.c
+ *  mdd/mdd_lproc.c
  *  Lustre Metadata Server (mdd) routines
  *
  *  Copyright (C) 2006 Cluster File Systems, Inc.
@@ -59,70 +59,95 @@ static int mdd_procfs_init_stats(struct mdd_device *mdd, int num_stats)
 
         lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_OPEN,
                              LPROCFS_CNTR_AVGMINMAX, "open", "time");
-        
         lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_CREATE,
                              LPROCFS_CNTR_AVGMINMAX, "create", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_CREATE_OBJ,
+                             LPROCFS_CNTR_AVGMINMAX, "create_obj", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_INDEX_INSERT,
+                             LPROCFS_CNTR_AVGMINMAX, "index_insert", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_INDEX_DELETE,
+                             LPROCFS_CNTR_AVGMINMAX, "index_delete", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_UNLINK,
+                             LPROCFS_CNTR_AVGMINMAX, "unlink", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_UNLINK_LOG,
+                             LPROCFS_CNTR_AVGMINMAX, "unlink_log", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_LOV_CREATE,
+                             LPROCFS_CNTR_AVGMINMAX, "lov_create", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_SET_MD,
+                             LPROCFS_CNTR_AVGMINMAX, "set_md", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_GET_MD,
+                             LPROCFS_CNTR_AVGMINMAX, "get_md", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_LOOKUP,
+                             LPROCFS_CNTR_AVGMINMAX, "lookup", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_TRANS_START,
+                             LPROCFS_CNTR_AVGMINMAX, "trans_start", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_TRANS_STOP,
+                             LPROCFS_CNTR_AVGMINMAX, "trans_stop", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_ATTR_GET,
+                             LPROCFS_CNTR_AVGMINMAX, "attr_get", "time");
+        lprocfs_counter_init(mdd->mdd_stats, LPROC_MDD_ATTR_SET,
+                             LPROCFS_CNTR_AVGMINMAX, "attr_set", "time");
+      EXIT;
 cleanup:
         if (rc) {
                 lprocfs_free_stats(stats);
                 mdd->mdd_stats = NULL;
         }
-        RETURN(rc);
-}
-
-int mdd_procfs_fini(struct mdd_device *mdd)
-{
-        if (mdd->mdd_stats) {
-                lprocfs_free_stats(mdd->mdd_stats);
-                mdd->mdd_stats = NULL;
-        }
-        if (mdd->mdd_proc_entry) {
-                 lprocfs_remove(mdd->mdd_proc_entry);
-                 mdd->mdd_proc_entry = NULL;
-        }
-        RETURN(0);
+        return rc;
 }
 
-int mdd_procfs_init(struct mdd_device *mdd)
+int mdd_procfs_init(struct mdd_device *mdd, const char *name)
 {
         struct lu_device    *ld = &mdd->mdd_md_dev.md_lu_dev;
         struct obd_type     *type;
-        char mdd_name[10];
-        int rc = 0;
+        int                  rc;
         ENTRY;
 
         type = ld->ld_type->ldt_obd_type;
         
+        LASSERT(name != NULL);
         LASSERT(type != NULL);
 
-        memset(mdd_name, 0, sizeof(mdd_name));
-        snprintf(mdd_name, strlen(LUSTRE_MDD_NAME) + 5, "%s-%d", 
-                 LUSTRE_MDD_NAME, (int)ld->ld_site->ls_node_id);
-
-        /* find the type procroot and add the proc entry for this device */
-        mdd->mdd_proc_entry = lprocfs_register(mdd_name, type->typ_procroot,
+        /* Find the type procroot and add the proc entry for this device */
+        mdd->mdd_proc_entry = lprocfs_register(name, type->typ_procroot,
                                                NULL, NULL);
         if (IS_ERR(mdd->mdd_proc_entry)) {
                 rc = PTR_ERR(mdd->mdd_proc_entry);
-                CERROR("error %d setting up lprocfs for %s\n", 
-                        rc, mdd_name);
+                CERROR("Error %d setting up lprocfs for %s\n", 
+                       rc, name);
                 mdd->mdd_proc_entry = NULL;
                 GOTO(out, rc);
         }
 
         rc = mdd_procfs_init_stats(mdd, LPROC_MDD_LAST);
+        EXIT;
 out:
         if (rc)
                mdd_procfs_fini(mdd); 
-       RETURN(rc);
+       return rc;
+}
+
+int mdd_procfs_fini(struct mdd_device *mdd)
+{
+        if (mdd->mdd_stats) {
+                lprocfs_free_stats(mdd->mdd_stats);
+                mdd->mdd_stats = NULL;
+        }
+        if (mdd->mdd_proc_entry) {
+                 lprocfs_remove(mdd->mdd_proc_entry);
+                 mdd->mdd_proc_entry = NULL;
+        }
+        RETURN(0);
 }
 
-void mdd_lproc_time_start(struct mdd_device *mdd, struct timeval *start, int op)
+void mdd_lprocfs_time_start(struct mdd_device *mdd,
+                            struct timeval *start, int op)
 {
         do_gettimeofday(start);
 }
 
-void mdd_lproc_time_end(struct mdd_device *mdd, struct timeval *start, int op)
+void mdd_lprocfs_time_end(struct mdd_device *mdd,
+                          struct timeval *start, int op)
 {
         struct timeval end;
         long timediff;