Cleanup non-arch xtime uses, use get_seconds() or current_kernel_time().
[safe/jmp/linux-2.6] / kernel / lockdep_proc.c
index 39163ed..9f17af4 100644 (file)
@@ -421,8 +421,30 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
        class = data->class;
        stats = &data->stats;
 
-       snprintf(name, 38, "%s", class->name);
+       namelen = 38;
+       if (class->name_version > 1)
+               namelen -= 2; /* XXX truncates versions > 9 */
+       if (class->subclass)
+               namelen -= 2;
+
+       if (!class->name) {
+               char str[KSYM_NAME_LEN];
+               const char *key_name;
+
+               key_name = __get_key_name(class->key, str);
+               snprintf(name, namelen, "%s", key_name);
+       } else {
+               snprintf(name, namelen, "%s", class->name);
+       }
        namelen = strlen(name);
+       if (class->name_version > 1) {
+               snprintf(name+namelen, 3, "#%d", class->name_version);
+               namelen += 2;
+       }
+       if (class->subclass) {
+               snprintf(name+namelen, 3, "/%d", class->subclass);
+               namelen += 2;
+       }
 
        if (stats->write_holdtime.nr) {
                if (stats->read_holdtime.nr)
@@ -430,16 +452,18 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
                else
                        seq_printf(m, "%40s:", name);
 
+               seq_printf(m, "%14lu ", stats->bounces[bounce_contended_write]);
                seq_lock_time(m, &stats->write_waittime);
-               seq_puts(m, " ");
+               seq_printf(m, " %14lu ", stats->bounces[bounce_acquired_write]);
                seq_lock_time(m, &stats->write_holdtime);
                seq_puts(m, "\n");
        }
 
        if (stats->read_holdtime.nr) {
                seq_printf(m, "%38s-R:", name);
+               seq_printf(m, "%14lu ", stats->bounces[bounce_contended_read]);
                seq_lock_time(m, &stats->read_waittime);
-               seq_puts(m, " ");
+               seq_printf(m, " %14lu ", stats->bounces[bounce_acquired_read]);
                seq_lock_time(m, &stats->read_holdtime);
                seq_puts(m, "\n");
        }
@@ -469,26 +493,29 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
        }
        if (i) {
                seq_puts(m, "\n");
-               seq_line(m, '.', 0, 40 + 1 + 8 * (14 + 1));
+               seq_line(m, '.', 0, 40 + 1 + 10 * (14 + 1));
                seq_puts(m, "\n");
        }
 }
 
 static void seq_header(struct seq_file *m)
 {
-       seq_printf(m, "lock_stat version 0.1\n");
-       seq_line(m, '-', 0, 40 + 1 + 8 * (14 + 1));
-       seq_printf(m, "%40s %14s %14s %14s %14s %14s %14s %14s %14s\n",
+       seq_printf(m, "lock_stat version 0.2\n");
+       seq_line(m, '-', 0, 40 + 1 + 10 * (14 + 1));
+       seq_printf(m, "%40s %14s %14s %14s %14s %14s %14s %14s %14s "
+                       "%14s %14s\n",
                        "class name",
+                       "con-bounces",
                        "contentions",
                        "waittime-min",
                        "waittime-max",
                        "waittime-total",
+                       "acq-bounces",
                        "acquisitions",
                        "holdtime-min",
                        "holdtime-max",
                        "holdtime-total");
-       seq_line(m, '-', 0, 40 + 1 + 8 * (14 + 1));
+       seq_line(m, '-', 0, 40 + 1 + 10 * (14 + 1));
        seq_printf(m, "\n");
 }