1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/tools
Bryn M. Reeves a0cf3d47f1 libdm: add latency histogram support
Add support for creating, parsing, and reporting dm-stats latency
histograms on kernels that support precise_timestamps.

Histograms are specified as a series of time values that give the
boundaries of the bins into which I/O counts accumulate (with
implicit lower and upper bounds on the first and last bins).

A new type, struct dm_histogram, is introduced to represent
histogram values and bin boundaries.

The boundary values may be given as either a string of values (with
optional unit suffixes) or as a zero terminated array of uint64_t
values expressing boundary times in nanoseconds.

A new bounds argument is added to dm_stats_create_region() which
accepts a pointer to a struct dm_histogram initialised with bounds
values.

Histogram data associated with a region is parsed during a call to
dm_stats_populate() and used to build a table of histogram values
that are pointed to from the containing area's counter set. The
histogram for a specified area may then be obtained and interogated
for values and properties.

This relies on kernel support to provide the boundary values in
a @stats_list response: this will be present in 4.3 and 4.2-stable. A
check for a minimum driver version of 4.33.0 is implemented to ensure
that this is present (4.32.0 has the necessary precise_timestamps and
histogram features but is unable to report these via @stats_list).

Access methods are provided to retrieve histogram values and bounds
as well as simple string representations of the counts and bin
boundaries.  Methods are also available to return the total count
for a histogram and the relative value (as a dm_percent_t) of a
specified bin.
2015-09-02 20:48:59 +01:00
..
.exported_symbols generate liblvm2cmd exported symbols too 2010-06-25 18:23:10 +00:00
.gitignore gitignore: Update for in-place build. 2015-07-27 13:18:35 +01:00
args.h Add lvmlockd 2015-07-02 15:42:26 -05:00
cmdnames.h Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
commands.h cache: enable setting cachepolicy in lvconvert 2015-08-21 15:35:45 +02:00
dmsetup.c libdm: add latency histogram support 2015-09-02 20:48:59 +01:00
dumpconfig.c lvmconfig: add --type full to display full tree of settings 2015-06-25 13:33:52 +02:00
errors.h lvresize: separate validation from action 2013-07-06 03:28:21 +01:00
formats.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvchange.c cache: api update 2015-08-12 14:32:24 +02:00
lvconvert_poll.c include: Standardise around new tool.h. 2015-07-06 17:30:18 +01:00
lvconvert_poll.h polldaemon: move lvconvert_get_copy_lv code 2015-05-04 16:56:39 +02:00
lvconvert.c lvconvert: skip polling in test mode 2015-09-02 17:25:29 +02:00
lvcreate.c lvcreate: fix return value 2015-08-12 19:46:43 +02:00
lvdisplay.c tools: allow -S|--select for vgdisplay, lvdisplay and pvdisplay without -C 2015-02-10 16:09:40 +01:00
lvextend.c Some whitespace tidy-ups. 2008-01-30 14:00:02 +00:00
lvm2cmd-static.c Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
lvm2cmd.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvm2cmd.h lvresize: separate validation from action 2013-07-06 03:28:21 +01:00
lvm2cmdline.h toolcontext: add switches to create_toolcontext for connections and filters init 2015-07-30 13:54:09 +02:00
lvm-static.c include: Standardise around new tool.h. 2015-07-06 17:30:18 +01:00
lvm.c include: Standardise around new tool.h. 2015-07-06 17:30:18 +01:00
lvmchange.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvmcmdlib.c toolcontext: add switches to create_toolcontext for connections and filters init 2015-07-30 13:54:09 +02:00
lvmcmdline.c commands: add new NO_METADATA_PROCESSING flag to selected commands 2015-07-30 13:56:13 +02:00
lvmdiskscan.c filters: add cmd->full_filter - composite of cmd->filter and cmd->lvmetad_filter 2014-10-02 13:06:46 +02:00
lvpoll.c include: Standardise around new tool.h. 2015-07-06 17:30:18 +01:00
lvreduce.c Some whitespace tidy-ups. 2008-01-30 14:00:02 +00:00
lvremove.c cleanup: tools: "or use -S for selection" --> "or use --select for selection" 2015-03-04 14:40:58 +01:00
lvrename.c coverity: fix missing initialization 2015-07-08 14:53:30 +02:00
lvresize.c coverity: fix missing initialization 2015-07-08 14:53:30 +02:00
lvscan.c reporting: should not fail with foreign option if lvm1 pvs exist 2015-03-10 13:56:25 -05:00
Makefile.in dmsetup: Also install dmstats. 2015-08-10 00:35:15 +01:00
polldaemon.c lockd: no error when unlock fails 2015-08-18 11:18:40 -05:00
pvchange.c Add lvmlockd 2015-07-02 15:42:26 -05:00
pvck.c pvck: Use non-zero exit status after failure. 2014-11-13 12:26:43 +00:00
pvcreate.c Add lvmlockd 2015-07-02 15:42:26 -05:00
pvdisplay.c tools: allow -S|--select for vgdisplay, lvdisplay and pvdisplay without -C 2015-02-10 16:09:40 +01:00
pvmove_poll.c include: Standardise around new tool.h. 2015-07-06 17:30:18 +01:00
pvmove_poll.h polldaemon: refactor polling interfaces 2015-05-05 20:52:07 +02:00
pvmove.c pvmove: skip polling later in test mode 2015-09-02 17:25:37 +02:00
pvremove.c Add lvmlockd 2015-07-02 15:42:26 -05:00
pvresize.c Add lvmlockd 2015-07-02 15:42:26 -05:00
pvscan.c macros: Wrap PRI with FMT. 2015-07-06 15:09:17 +01:00
reporter.c include: Standardise around new tool.h. 2015-07-06 17:30:18 +01:00
segtypes.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
stub.h Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
tags.c tools: Add internal tags command. 2014-01-30 13:09:15 +00:00
tool.h include: Standardise around new tool.h. 2015-07-06 17:30:18 +01:00
toollib.c lockd: no error when unlock fails 2015-08-18 11:18:40 -05:00
toollib.h toollib: get_cache_params 2015-08-12 14:11:18 +02:00
tools.h commands: add new NO_METADATA_PROCESSING flag to selected commands 2015-07-30 13:56:13 +02:00
vgcfgbackup.c cleanup: remove deallocate_handle_root arg from destroy_procesing_handle fnw 2015-02-13 11:27:09 +01:00
vgcfgrestore.c vgcfgrestore: return invalid cmd line 2014-05-21 23:14:41 +02:00
vgchange.c lvmlockd: VG lock can be used when changing lock type 2015-08-27 16:34:51 -05:00
vgck.c toollib: replace void *handle with struct processing_handle for use in processing functions (process_each_*/process_single_* and related) 2015-02-10 16:05:24 +01:00
vgconvert.c vgconvert: require lvmetad to not be used 2015-03-10 09:31:54 -05:00
vgcreate.c lvmlockd: create sanlock lv large enough for existing lvs 2015-07-30 12:04:31 -05:00
vgdisplay.c vgdisplay: Drop error message for exported VGs. 2015-08-26 21:11:46 +01:00
vgexport.c lockd: allow vgexport and vgimport 2015-07-13 14:07:57 -05:00
vgextend.c Add lvmlockd 2015-07-02 15:42:26 -05:00
vgimport.c lockd: allow vgexport and vgimport 2015-07-13 14:07:57 -05:00
vgmerge.c Add lvmlockd 2015-07-02 15:42:26 -05:00
vgmknodes.c toollib: replace void *handle with struct processing_handle for use in processing functions (process_each_*/process_single_* and related) 2015-02-10 16:05:24 +01:00
vgreduce.c coverity: fix missing initialization 2015-07-08 14:53:30 +02:00
vgremove.c lvmlockd: add full changing of lock type 2015-08-27 10:27:24 -05:00
vgrename.c coverity: fix missing initialization 2015-07-08 14:53:30 +02:00
vgscan.c pvscan, vgscan: include foreign vgs with --cache 2015-02-25 15:46:27 -06:00
vgsplit.c Add lvmlockd 2015-07-02 15:42:26 -05:00