diff options
-rw-r--r-- | Documentation/device-mapper/statistics.txt | 4 | ||||
-rw-r--r-- | drivers/md/dm-stats.c | 14 | ||||
-rw-r--r-- | include/uapi/linux/dm-ioctl.h | 4 |
3 files changed, 19 insertions, 3 deletions
diff --git a/Documentation/device-mapper/statistics.txt b/Documentation/device-mapper/statistics.txt index 4919b2dfd1b3..6f5ef944ca4c 100644 --- a/Documentation/device-mapper/statistics.txt +++ b/Documentation/device-mapper/statistics.txt | |||
@@ -121,6 +121,10 @@ Messages | |||
121 | 121 | ||
122 | Output format: | 122 | Output format: |
123 | <region_id>: <start_sector>+<length> <step> <program_id> <aux_data> | 123 | <region_id>: <start_sector>+<length> <step> <program_id> <aux_data> |
124 | precise_timestamps histogram:n1,n2,n3,... | ||
125 | |||
126 | The strings "precise_timestamps" and "histogram" are printed only | ||
127 | if they were specified when creating the region. | ||
124 | 128 | ||
125 | @stats_print <region_id> [<starting_line> <number_of_lines>] | 129 | @stats_print <region_id> [<starting_line> <number_of_lines>] |
126 | 130 | ||
diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c index 8a8b48fa901a..8289804ccd99 100644 --- a/drivers/md/dm-stats.c +++ b/drivers/md/dm-stats.c | |||
@@ -457,12 +457,24 @@ static int dm_stats_list(struct dm_stats *stats, const char *program, | |||
457 | list_for_each_entry(s, &stats->list, list_entry) { | 457 | list_for_each_entry(s, &stats->list, list_entry) { |
458 | if (!program || !strcmp(program, s->program_id)) { | 458 | if (!program || !strcmp(program, s->program_id)) { |
459 | len = s->end - s->start; | 459 | len = s->end - s->start; |
460 | DMEMIT("%d: %llu+%llu %llu %s %s\n", s->id, | 460 | DMEMIT("%d: %llu+%llu %llu %s %s", s->id, |
461 | (unsigned long long)s->start, | 461 | (unsigned long long)s->start, |
462 | (unsigned long long)len, | 462 | (unsigned long long)len, |
463 | (unsigned long long)s->step, | 463 | (unsigned long long)s->step, |
464 | s->program_id, | 464 | s->program_id, |
465 | s->aux_data); | 465 | s->aux_data); |
466 | if (s->stat_flags & STAT_PRECISE_TIMESTAMPS) | ||
467 | DMEMIT(" precise_timestamps"); | ||
468 | if (s->n_histogram_entries) { | ||
469 | unsigned i; | ||
470 | DMEMIT(" histogram:"); | ||
471 | for (i = 0; i < s->n_histogram_entries; i++) { | ||
472 | if (i) | ||
473 | DMEMIT(","); | ||
474 | DMEMIT("%llu", s->histogram_boundaries[i]); | ||
475 | } | ||
476 | } | ||
477 | DMEMIT("\n"); | ||
466 | } | 478 | } |
467 | } | 479 | } |
468 | mutex_unlock(&stats->mutex); | 480 | mutex_unlock(&stats->mutex); |
diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h index 061aca3a962d..d34611e35a30 100644 --- a/include/uapi/linux/dm-ioctl.h +++ b/include/uapi/linux/dm-ioctl.h | |||
@@ -267,9 +267,9 @@ enum { | |||
267 | #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) | 267 | #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) |
268 | 268 | ||
269 | #define DM_VERSION_MAJOR 4 | 269 | #define DM_VERSION_MAJOR 4 |
270 | #define DM_VERSION_MINOR 32 | 270 | #define DM_VERSION_MINOR 33 |
271 | #define DM_VERSION_PATCHLEVEL 0 | 271 | #define DM_VERSION_PATCHLEVEL 0 |
272 | #define DM_VERSION_EXTRA "-ioctl (2015-6-26)" | 272 | #define DM_VERSION_EXTRA "-ioctl (2015-8-18)" |
273 | 273 | ||
274 | /* Status bits */ | 274 | /* Status bits */ |
275 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ | 275 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ |