Commit 8f019cb9 authored by Mikulas Patocka's avatar Mikulas Patocka Committed by Greg Kroah-Hartman

dm stats: report precise_timestamps and histogram in @stats_list output

commit bd49784f upstream.

If the user selected the precise_timestamps or histogram options, report
it in the @stats_list message output.

If the user didn't select these options, no extra tokens are reported,
thus it is backward compatible with old software that doesn't know about
precise timestamps and histogram.
Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org # 4.2
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2d984207
...@@ -121,6 +121,10 @@ Messages ...@@ -121,6 +121,10 @@ Messages
Output format: Output format:
<region_id>: <start_sector>+<length> <step> <program_id> <aux_data> <region_id>: <start_sector>+<length> <step> <program_id> <aux_data>
precise_timestamps histogram:n1,n2,n3,...
The strings "precise_timestamps" and "histogram" are printed only
if they were specified when creating the region.
@stats_print <region_id> [<starting_line> <number_of_lines>] @stats_print <region_id> [<starting_line> <number_of_lines>]
......
...@@ -457,12 +457,24 @@ static int dm_stats_list(struct dm_stats *stats, const char *program, ...@@ -457,12 +457,24 @@ static int dm_stats_list(struct dm_stats *stats, const char *program,
list_for_each_entry(s, &stats->list, list_entry) { list_for_each_entry(s, &stats->list, list_entry) {
if (!program || !strcmp(program, s->program_id)) { if (!program || !strcmp(program, s->program_id)) {
len = s->end - s->start; len = s->end - s->start;
DMEMIT("%d: %llu+%llu %llu %s %s\n", s->id, DMEMIT("%d: %llu+%llu %llu %s %s", s->id,
(unsigned long long)s->start, (unsigned long long)s->start,
(unsigned long long)len, (unsigned long long)len,
(unsigned long long)s->step, (unsigned long long)s->step,
s->program_id, s->program_id,
s->aux_data); s->aux_data);
if (s->stat_flags & STAT_PRECISE_TIMESTAMPS)
DMEMIT(" precise_timestamps");
if (s->n_histogram_entries) {
unsigned i;
DMEMIT(" histogram:");
for (i = 0; i < s->n_histogram_entries; i++) {
if (i)
DMEMIT(",");
DMEMIT("%llu", s->histogram_boundaries[i]);
}
}
DMEMIT("\n");
} }
} }
mutex_unlock(&stats->mutex); mutex_unlock(&stats->mutex);
......
...@@ -267,9 +267,9 @@ enum { ...@@ -267,9 +267,9 @@ enum {
#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
#define DM_VERSION_MAJOR 4 #define DM_VERSION_MAJOR 4
#define DM_VERSION_MINOR 32 #define DM_VERSION_MINOR 33
#define DM_VERSION_PATCHLEVEL 0 #define DM_VERSION_PATCHLEVEL 0
#define DM_VERSION_EXTRA "-ioctl (2015-6-26)" #define DM_VERSION_EXTRA "-ioctl (2015-8-18)"
/* Status bits */ /* Status bits */
#define DM_READONLY_FLAG (1 << 0) /* In/Out */ #define DM_READONLY_FLAG (1 << 0) /* In/Out */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment