[PATCHv2 0/7] new zram statistics reporting scheme

Sergey Senozhatsky
2015-03-12T14:47:04Z

Hello,

This patch introduces rework to zram stats. We have per-stat sysfs
nodes, and it makes things a bit hard to use in user space: it doesn't
give an immediate stats 'snapshot', it requires user space to use
more syscals -- open, read, close for every stat file, with
appropriate error checks on every step, etc.

First, zram now accounts block layer statistics. available in
/sys/block/zram<id>/stat and /proc/diskstats files. So some new
stats are available (see Documentation/block/stat.txt), besides,
zram's activities are now can be monitored by sysstat's iostat
or similar tools.

Example:
cat /sys/block/zram0/stat
248 0 1984 0 251029 0 2008232 5120 0 5116 5116

Second, group currently exported on per-stat basis nodes into two
categories (files):

-- zram<id>/io_stat
accumulates device's IO stats, that are not accounted by block layer,
and contains:
failed_reads
failed_writes
invalid_io
notify_free

Example:
cat /sys/block/zram0/io_stat
0 0 0 652572

-- zram<id>/mm_stat
accumulates zram mm stats and contains:
orig_data_size
compr_data_size
mem_used_total
mem_limit
mem_used_max
zero_pages
num_migrated

Example:
cat /sys/block/zram0/mm_stat
434634752 270288572 279158784 0 579895296 15060 0

per-stat sysfs nodes are now considered to be deprecated and we plan
to remove them (and clean up some of the existing stat code) in two
years (as of now, there is no warning printed to syslog about deprecated
stats being used). user space is advised to use the above mentioned 3
files.

note:
util-linux mailing list is not Cc-ed into this series. once we settle
it down, I'll write to Karel. (we have several months ahead until 4.1
will be released).

v2:
-- fixed a couple of typos noted by Minchan
-- documented obsolete ABI (Minchan)
-- added pr_warn_once() to deprecated sysfs attr functions (Minchan)

Sergey Senozhatsky (7):
zram: remove `num_migrated' device attr
zram: move compact_store() to sysfs functions area
zram: use generic start/end io accounting
zram: describe device attrs in documentation
zram: export new 'io_stat' sysfs attrs
zram: export new 'mm_stat' sysfs attrs
zram: deprecate zram attrs sysfs nodes

Documentation/ABI/obsolete/sysfs-block-zram | 119 ++++++++++++++++++++++++++++
Documentation/ABI/testing/sysfs-block-zram | 18 ++++-
Documentation/blockdev/zram.txt | 91 +++++++++++++++++----
drivers/block/zram/zram_drv.c | 113 ++++++++++++++++++++------
4 files changed, 300 insertions(+), 41 deletions(-)
create mode 100644 Documentation/ABI/obsolete/sysfs-block-zram

--
2.3.2.209.gd67f9d5