1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
LVM2 mirror repository https://sourceware.org/lvm2/
Go to file
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
autoconf autoconf: Update config.guess/sub to 2014-01-01. 2014-01-21 22:00:15 +00:00
conf pre-release 2015-08-26 23:11:13 +01:00
daemons lvmpolld: make lvpoll error messages visible 2015-09-02 17:24:26 +02:00
doc doc: mention new invalid states in lvmetad_design 2015-06-23 16:48:28 -05:00
include include: Standardise around new tool.h. 2015-07-06 17:30:18 +01:00
lib man: Add install_full_man makefile target. 2015-08-28 13:03:18 +01:00
libdaemon cleanup: move var declaration 2015-08-18 16:05:04 +02:00
libdm libdm: add latency histogram support 2015-09-02 20:48:59 +01:00
liblvm toolcontext: add switches to create_toolcontext for connections and filters init 2015-07-30 13:54:09 +02:00
man lvmpolld.8.in: add missing space 2015-09-02 17:24:34 +02:00
nix lockd: Clean up spec 2015-07-04 14:36:57 +02:00
old-tests report: select: refactor: move str_list to libdm 2014-06-17 16:27:20 +02:00
po makefiles: disable po file targes 2015-05-14 14:19:40 +02:00
python gitignore: Update for in-place build. 2015-07-27 13:18:35 +01:00
report-generators add copyright notices to new files 2010-07-28 12:20:38 +00:00
reports [REPORT-GENERATORS] cut down stylsheet.css to what we actually use 2010-07-21 10:00:38 +00:00
scripts gitignore: Update for in-place build. 2015-07-27 13:18:35 +01:00
spec spec: Add cache-*.profile 2015-08-14 21:45:11 +02:00
test tests: update cache tests 2015-08-26 11:24:41 +02:00
tools libdm: add latency histogram support 2015-09-02 20:48:59 +01:00
udev udev: fix missing escape for + 2015-08-12 19:46:44 +02:00
unit-tests cleanup: use DM_ARRAY_SIZE 2014-04-08 11:00:15 +02:00
.gitignore gitignore: Update for in-place build. 2015-07-27 13:18:35 +01:00
acinclude.m4 configure: detect st_ctim 2015-03-18 13:42:24 +01:00
aclocal.m4 configure: LOCALEDIR needs evaluated value 2015-05-18 13:06:34 +02:00
configure man: Add install_full_man makefile target. 2015-08-28 13:03:18 +01:00
configure.in man: Add install_full_man makefile target. 2015-08-28 13:03:18 +01:00
COPYING Outline docs 2001-12-31 16:12:40 +00:00
COPYING.LIB Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
INSTALL quick review of docs 2008-11-04 17:49:22 +00:00
make.tmpl.in libdm: Reinstate dm_task_get_info@Base. 2015-09-01 16:26:02 +01:00
Makefile.in man: Add install_full_man makefile target. 2015-08-28 13:03:18 +01:00
README README: fix link to lvm-devel mailing list 2015-03-31 15:44:00 +02:00
VERSION post-release 2015-08-26 23:13:34 +01:00
VERSION_DM post-release 2015-08-26 23:13:34 +01:00
WHATS_NEW lvmpolld: make lvpoll error messages visible 2015-09-02 17:24:26 +02:00
WHATS_NEW_DM libdm: add latency histogram support 2015-09-02 20:48:59 +01:00

This tree contains the LVM2 and device-mapper tools and libraries.

For more information about LVM2 read the changelog in the WHATS_NEW file.
Installation instructions are in INSTALL.

There is no warranty - see COPYING and COPYING.LIB.

Tarballs are available from:
  ftp://sources.redhat.com/pub/lvm2/

The source code is stored in git:
  http://git.fedorahosted.org/git/lvm2.git
  git clone git://git.fedorahosted.org/git/lvm2.git

Mailing list for general discussion related to LVM2:
  linux-lvm@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/linux-lvm

Mailing lists for LVM2 development, patches and commits:
  lvm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/lvm-devel

  lvm2-commits@lists.fedorahosted.org (Read-only archive of commits)
  Subscribe from https://fedorahosted.org/mailman/listinfo/lvm2-commits

Mailing list for device-mapper development, including kernel patches
and multipath-tools:
  dm-devel@redhat.com
  Subscribe from https://www.redhat.com/mailman/listinfo/dm-devel

The source code repository used until 7th June 2012 is accessible here:
  http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/?cvsroot=lvm2.