Skip to content

Performance improvements

Zdenek Kabelac lvm-devel 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest24 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/24Add find_config_tree_int64 functionlib/config/config.c lib/config/config.h+8 -00 replies
2/24Replace PV_MIN_SIZE with function pv_min_size()doc/example.conf.in lib/commands/toolcontext.c lib/filters/filter.c +6 more+38 -111 reply
2/24Replace PV_MIN_SIZE with function pv_min_size()+0 -01 reply
2/24Replace PV_MIN_SIZE with function pv_min_size()+0 -00 replies
3/24Test pv_min_size functionalitytest/t-pv-min-size.sh+31 -00 replies
4/24Move add_dev_node to DM_DEVICE_RESUMElibdm/ioctl/libdm-iface.c+4 -41 reply
5/24Perf: Fix multiple operations on the same nodelib/activate/fs.c libdm/libdm-common.c+121 -110 replies
5/24Perf: Fix multiple operations on the same node+0 -00 replies
6/24lv_info handle udev_synclib/activate/activate.c lib/activate/fs.c lib/activate/fs.h+18 -11 reply
6/24lv_info handle udev_sync+0 -00 replies
7/24Remove open_count read from some lv_info callslib/activate/activate.c liblvm/lvm_lv.c tools/lvconvert.c +1 more+5 -50 replies
8/24Perf: optimize _eat_space and _get_tokenlib/config/config.c+18 -180 replies
9/24Align orphan stringslib/format1/format1.c lib/format1/lvm1-label.c lib/format_pool/format_pool.c +2 more+32 -120 replies
10/24Perf: speed up hash tableslibdm/datastruct/hash.c libdm/libdevmapper.h+57 -330 replies
11/24Perf: New HASH functionlibdm/datastruct/hash.c+104 -01 reply
12/24Perf: Increase hash sizesdaemons/clvmd/lvm-functions.c lib/cache/lvmcache.c lib/device/dev-cache.c +7 more+15 -151 reply
12/24Perf: Increase hash sizes+0 -00 replies
13/24Memory unlock allows 1 page differencelib/mm/memlock.c+9 -30 replies
14/24Critical sectiondaemons/clvmd/lvm-functions.c lib/activate/activate.c lib/activate/fs.c +9 more+93 -470 replies
15/24Remove fs_unlock after failed suspendlib/activate/activate.c+0 -10 replies
16/24Man pages reformatingman/fsadm.8.in man/lvreduce.8.in man/lvremove.8.in +2 more+148 -1501 reply
17/24Void* arithmetic replaced with char*daemons/clvmd/clvmd.c lib/format_text/text_label.c+3 -30 replies
18/24API change - support more const arglibdm/libdevmapper.h libdm/libdm-report.c+2 -20 replies
19/24Use cleaner const * pointerlib/report/report.c+3 -50 replies
20/24Const fixingdaemons/clvmd/clvmd.c daemons/clvmd/clvmd.h lib/activate/activate.c +21 more+62 -571 reply
21/24Testing: remove -q from greptest/t-mirror-names.sh test/t-mirror-vgreduce-removemissing.sh test/t-pvcreate-operation.sh +3 more+10 -91 reply
22/24Testing: Try to prioritize locking processtest/t-lock-blocking.sh+5 -50 replies
23/24Extend lvm2api with lvm_lv_renameliblvm/lvm2app.h liblvm/lvm_lv.c+26 -00 replies
24/24Testing lvm_lv_renametest/api/Makefile.in test/api/lvtest.c test/api/lvtest.sh+86 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 00/24] Performance improvements

Main target in this patchset is to again considerably speedup functinality of lvm tools.

1. PV_MIN_SIZE - updated init position for last patchset.

2. Fix and improve udev synchronization. (i.e. do not call fs_unlock after _lv_resume())

3. Hashing was consuming a lot of CPU - partly because of some small tables, partly becuase hash function for our data set was producing a lot of hash collisions.

4. Improves memory locking for multiple operation within one VG lock (i.e. activation of a lot of LVs from 1 VG).

Patch set also has few const pointer fixes, and man page updates. Allow 1 page difference between mlock munlock.
Few updates for test suite.
Minor extension for lvm2api - I've also noticed, few const in this API are wrong - we cannot pass const handler to routines, which are modifying them.

Zdenek Kabelac (24):
Add find_config_tree_int64 function
Replace PV_MIN_SIZE with function pv_min_size()
Test pv_min_size functionality
Move add_dev_node to DM_DEVICE_RESUME
Perf: Fix multiple operations on the same node
lv_info handle udev_sync
Remove open_count read from some lv_info calls
Perf: optimize _eat_space and _get_token
Align orphan strings
Perf: speed up hash tables
Perf: New HASH function
Perf: Increase hash sizes
Memory unlock allows 1 page difference
Critical section
Remove fs_unlock after failed suspend
Man pages reformating
Void* arithmetic replaced with char*
API change - support more const arg
Use cleaner const * pointer
Const fixing
Testing: remove -q from grep
Testing: Try to prioritize locking process
Extend lvm2api with lvm_lv_rename
Testing lvm_lv_rename

 daemons/clvmd/clvmd.c                   |    4 +-
 daemons/clvmd/clvmd.h                   |    2 +-
 daemons/clvmd/lvm-functions.c           |   12 +-
 doc/example.conf.in                     |    5 +
 lib/activate/activate.c                 |   36 ++++--
 lib/activate/activate.h                 |    2 +-
 lib/activate/fs.c                       |   70 +++++++++++-
 lib/activate/fs.h                       |    1 +
 lib/cache/lvmcache.c                    |   14 +-
 lib/commands/toolcontext.c              |   11 ++-
 lib/config/config.c                     |   42 ++++---
 lib/config/config.h                     |    2 +
 lib/device/dev-cache.c                  |    2 +-
 lib/device/dev-io.c                     |    2 +-
 lib/filters/filter-persistent.c         |    2 +-
 lib/filters/filter-regex.c              |    2 +-
 lib/filters/filter.c                    |    2 +-
 lib/format1/format1.c                   |   10 +-
 lib/format1/import-export.c             |    2 +-
 lib/format1/import-extents.c            |    2 +-
 lib/format1/lvm1-label.c                |    9 +-
 lib/format_pool/format_pool.c           |    4 +-
 lib/format_text/export.c                |    2 +-
 lib/format_text/format-text.c           |   18 ++-
 lib/format_text/import_vsn1.c           |    4 +-
 lib/format_text/text_label.c            |    9 +-
 lib/locking/locking.c                   |   14 ++-
 lib/log/log.c                           |    8 +-
 lib/metadata/lv.h                       |    2 +-
 lib/metadata/lv_manip.c                 |    3 +-
 lib/metadata/metadata-exported.h        |    9 +-
 lib/metadata/metadata.c                 |   45 ++++----
 lib/metadata/metadata.h                 |    1 -
 lib/metadata/mirror.c                   |   20 ++--
 lib/misc/lvm-globals.c                  |   12 ++
 lib/misc/lvm-globals.h                  |    5 +-
 lib/mm/memlock.c                        |   72 +++++++++---
 lib/mm/memlock.h                        |    6 +-
 lib/report/properties.c                 |    3 +-
 lib/report/report.c                     |   14 +--
 libdm/datastruct/hash.c                 |  188 ++++++++++++++++++++++++++-----
 libdm/ioctl/libdm-iface.c               |    8 +-
 libdm/libdevmapper.h                    |    8 +-
 libdm/libdm-common.c                    |   71 ++++++++++--
 libdm/libdm-deptree.c                   |    4 +-
 libdm/libdm-report.c                    |    2 +-
 liblvm/lvm2app.h                        |   16 +++
 liblvm/lvm_lv.c                         |   14 ++-
 liblvm/lvm_vg.c                         |    4 +-
 man/fsadm.8.in                          |   80 ++++++++------
 man/lvreduce.8.in                       |   65 ++++++-----
 man/lvremove.8.in                       |   17 ++--
 man/lvrename.8.in                       |   37 ++-----
 man/lvresize.8.in                       |   99 ++++++++--------
 test/api/Makefile.in                    |    2 +-
 test/api/lvtest.c                       |   64 +++++++++++
 test/api/lvtest.sh                      |   21 ++++
 test/t-lock-blocking.sh                 |   10 +-
 test/t-mirror-names.sh                  |    2 +-
 test/t-mirror-vgreduce-removemissing.sh |    2 +-
 test/t-pv-min-size.sh                   |   31 +++++
 test/t-pvcreate-operation.sh            |    2 +-
 test/t-snapshot-merge.sh                |    9 +-
 test/t-vgcreate-usage.sh                |    2 +-
 test/t-vgextend-usage.sh                |    2 +-
 tools/lvconvert.c                       |    2 +-
 tools/lvcreate.c                        |    2 +-
 tools/lvscan.c                          |    2 +-
 tools/pvresize.c                        |    6 +-
 tools/reporter.c                        |    4 +-
 tools/toollib.c                         |   10 +-
 tools/toollib.h                         |    4 +-
 tools/vgcfgrestore.c                    |    2 +-
 tools/vgcreate.c                        |    2 +-
 tools/vgextend.c                        |    4 +-
 tools/vgmerge.c                         |    2 +-
 tools/vgreduce.c                        |    2 +-
 tools/vgrename.c                        |    2 +-
 tools/vgsplit.c                         |    2 +-
 79 files changed, 898 insertions(+), 393 deletions(-)
 create mode 100644 test/api/lvtest.c
 create mode 100644 test/api/lvtest.sh
 create mode 100755 test/t-pv-min-size.sh

--
1.7.3.5