linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/3] Btrfs: add IO error device stats
@ 2012-05-25 14:06 Stefan Behrens
  2012-05-25 14:06 ` [PATCH v5 1/3] Btrfs: add device counters for detected IO and checksum errors Stefan Behrens
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Stefan Behrens @ 2012-05-25 14:06 UTC (permalink / raw)
  To: linux-btrfs

Changes v1-v2:
- Remove restriction that BTRFS_IOC_GET_DEVICE_STATS is a privileged
  operation
- Cast u64 to unsigned long long for printf()

Changes v2-v3:
- Rebased on Chris' current master

Changes v3-v4:
- Add padding at end of ioctl structure

Changes v4-v5:
- The statistic members in the ioctl are now organized as an array of
  64 bit values. Symbolic names for the array indexes are defined in
  an enum, which also defines the max value. This change makes it
  easier to add new statistic members in the future
- Give ins_len = -1 to btrfs_search_slot() when an item might get
  deleted
- Introduce a helper function for the repeated sequence stat_int() +
  dirty = 1 + stat_print()
- Introduce a helper function for the code that shares the bio
  bi_private member for two pieces of information

The goal is to detect when drives start to get an increased error rate,
when drives should be replaced soon. Therefore statistic counters are
added that count IO errors (read, write and flush). Additionally, the
software detected errors like checksum errors and corrupted blocks are
counted.

An ioctl interface is added to get the device statistic counters.
A second ioctl is added to atomically get and reset these counters.

The device statistics are written into the device tree with each
transaction commit. Only modified statistics are written.
When a filesystem is mounted, the device statistics for each involved
device are read from the device tree and used to initialize the
counters.

A patch for the btrfs-progs world will also be sent.

Stefan Behrens (3):
  Btrfs: add device counters for detected IO and checksum errors
  Btrfs: add ioctl to get and reset the device stats
  Btrfs: read device stats on mount, write modified ones during commit

 fs/btrfs/ctree.h       |   38 ++++++
 fs/btrfs/disk-io.c     |   20 +++-
 fs/btrfs/extent_io.c   |   18 ++-
 fs/btrfs/ioctl.c       |   26 +++++
 fs/btrfs/ioctl.h       |   33 ++++++
 fs/btrfs/print-tree.c  |    3 +
 fs/btrfs/scrub.c       |   65 ++++++++---
 fs/btrfs/transaction.c |    4 +
 fs/btrfs/volumes.c     |  304 +++++++++++++++++++++++++++++++++++++++++++++++-
 fs/btrfs/volumes.h     |   52 +++++++++
 10 files changed, 539 insertions(+), 24 deletions(-)

-- 
1.7.10.2


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-05-25 20:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-25 14:06 [PATCH v5 0/3] Btrfs: add IO error device stats Stefan Behrens
2012-05-25 14:06 ` [PATCH v5 1/3] Btrfs: add device counters for detected IO and checksum errors Stefan Behrens
2012-05-25 14:06 ` [PATCH v5 2/3] Btrfs: add ioctl to get and reset the device stats Stefan Behrens
2012-05-25 14:06 ` [PATCH v5 3/3] Btrfs: read device stats on mount, write modified ones during commit Stefan Behrens
2012-05-25 15:18 ` [PATCH v5 0/3] Btrfs: add IO error device stats Christoph Hellwig
2012-05-25 17:49   ` Stefan Behrens
2012-05-25 20:41     ` Arne Jansen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).