Markus Stockhausen
d06f191f8e
md/raid5: introduce configuration option rmw_level
...
Depending on the available coding we allow optimized rmw logic for write
operations. To support easier testing this patch allows manual control
of the rmw/rcw descision through the interface /sys/block/mdX/md/rmw_level.
The configuration can handle three levels of control.
rmw_level=0: Disable rmw for all RAID types. Hardware assisted P/Q
calculation has no implementation path yet to factor in/out chunks of
a syndrome. Enforcing this level can be benefical for slow CPUs with
hardware syndrome support and fast SSDs.
rmw_level=1: Estimate rmw IOs and rcw IOs. Execute rmw only if we will
save IOs. This equals the "old" unpatched behaviour and will be the
default.
rmw_level=2: Execute rmw even if calculated IOs for rmw and rcw are
equal. We might have higher CPU consumption because of calculating the
parity twice but it can be benefical otherwise. E.g. RAID4 with fast
dedicated parity disk/SSD. The option is implemented just to be
forward-looking and will ONLY work with this patch!
Signed-off-by: Markus Stockhausen <stockhausen@collogia.de>
Signed-off-by: NeilBrown <neilb@suse.de>
2015-04-22 08:00:42 +10:00
..
bcache
md/bcache: use generic io stats accounting functions to simplify io stat accounting
2014-11-24 08:05:12 -07:00
persistent-data
- Significant dm-crypt CPU scalability performance improvements thanks
2015-02-21 13:28:45 -08:00
bitmap.c
md-cluster: re-add capabilities
2015-04-22 07:59:39 +10:00
bitmap.h
md-cluster: re-add capabilities
2015-04-22 07:59:39 +10:00
dm-bio-prison.c
dm bio prison: introduce support for locking ranges of blocks
2014-11-10 15:25:30 -05:00
dm-bio-prison.h
dm bio prison: introduce support for locking ranges of blocks
2014-11-10 15:25:30 -05:00
dm-bio-record.h
dm-bufio.c
dm bufio: fix time comparison to use time_after_eq()
2015-02-09 13:06:48 -05:00
dm-bufio.h
dm-builtin.c
dm-cache-block-types.h
dm cache: revert "remove remainder of distinct discard block size"
2014-11-10 15:25:30 -05:00
dm-cache-metadata.c
dm cache: fix missing ERR_PTR returns and handling
2015-01-28 09:59:20 -05:00
dm-cache-metadata.h
dm cache: revert "remove remainder of distinct discard block size"
2014-11-10 15:25:30 -05:00
dm-cache-policy-cleaner.c
dm-cache-policy-internal.h
dm-cache-policy-mq.c
dm cache policy mq: simplify ability to promote sequential IO to the cache
2014-11-10 15:25:30 -05:00
dm-cache-policy.c
dm-cache-policy.h
dm-cache-target.c
- Most significant change this cycle is request-based DM now supports
2015-02-12 16:36:31 -08:00
dm-crypt.c
dm crypt: sort writes
2015-02-16 11:11:15 -05:00
dm-delay.c
Merge branch 'for-3.14/core' of git://git.kernel.dk/linux-block
2014-01-30 11:19:05 -08:00
dm-era-target.c
dm era: check for a non-NULL metadata object before closing it
2014-06-03 13:44:08 -04:00
dm-exception-store.c
dm-exception-store.h
dm-flakey.c
dm-io.c
dm io: deal with wandering queue limits when handling REQ_DISCARD and REQ_WRITE_SAME
2015-02-27 14:53:32 -05:00
dm-ioctl.c
dm ioctl: fix stale comment above dm_get_inactive_table()
2015-02-09 13:06:48 -05:00
dm-kcopyd.c
dm-linear.c
dm-log-userspace-base.c
dm: use time_in_range() and time_after()
2015-02-09 13:06:48 -05:00
dm-log-userspace-transfer.c
dm log userspace: fix memory leak in dm_ulog_tfr_init failure path
2014-10-05 20:03:38 -04:00
dm-log-userspace-transfer.h
dm-log.c
dm-mpath.c
dm mpath: simplify failure path of dm_multipath_init()
2015-02-09 13:06:49 -05:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-queue-length.c
dm-raid.c
- Most significant change this cycle is request-based DM now supports
2015-02-12 16:36:31 -08:00
dm-raid1.c
dm mirror: do not degrade the mirror on discard error
2015-02-13 19:50:46 -05:00
dm-region-hash.c
dm-round-robin.c
dm-service-time.c
dm-snap-persistent.c
dm snapshot: remove unnecessary NULL checks before vfree() calls
2015-02-09 13:06:49 -05:00
dm-snap-transient.c
dm-snap.c
dm snapshot: suspend merging snapshot when doing exception handover
2015-02-27 14:53:16 -05:00
dm-stats.c
- Significant DM thin-provisioning performance improvements to meet
2014-12-08 21:10:03 -08:00
dm-stats.h
dm-stripe.c
dm stripe: fix potential for leak in stripe_ctr error path
2014-10-10 22:05:18 -04:00
dm-switch.c
dm switch: efficiently support repetitive patterns
2014-08-01 12:30:37 -04:00
dm-sysfs.c
dm-table.c
dm: inherit QUEUE_FLAG_SG_GAPS flags from underlying queues
2015-02-11 10:25:46 -05:00
dm-target.c
dm: allocate requests in target when stacking on blk-mq devices
2015-02-09 13:06:47 -05:00
dm-thin-metadata.c
dm thin metadata: remove unused dm_pool_get_data_block_size()
2015-02-09 13:06:49 -05:00
dm-thin-metadata.h
dm thin metadata: remove unused dm_pool_get_data_block_size()
2015-02-09 13:06:49 -05:00
dm-thin.c
dm thin: fix to consistently zero-fill reads to unprovisioned blocks
2015-02-27 09:59:12 -05:00
dm-uevent.c
dm-uevent.h
dm-verity.c
dm verity: fix biovecs hash calculation regression
2014-04-15 12:19:24 -04:00
dm-zero.c
dm crypt, dm zero: update author name following legal name change
2014-07-10 16:44:14 -04:00
dm.c
dm: fix add_disk() NULL pointer due to race with free_dev()
2015-03-23 18:14:00 -04:00
dm.h
dm table: train hybrid target type detection to select blk-mq if appropriate
2015-02-09 13:06:47 -05:00
faulty.c
md: rename ->stop to ->free
2015-02-04 08:35:52 +11:00
Kconfig
Create a separate module for clustering support
2015-02-23 07:28:42 -06:00
linear.c
md: rename ->stop to ->free
2015-02-04 08:35:52 +11:00
linear.h
Makefile
Create a separate module for clustering support
2015-02-23 07:28:42 -06:00
md-cluster.c
md-cluster: re-add capabilities
2015-04-22 07:59:39 +10:00
md-cluster.h
md-cluster: re-add capabilities
2015-04-22 07:59:39 +10:00
md.c
md: allow resync to go faster when there is competing IO.
2015-04-22 08:00:40 +10:00
md.h
md: remove 'go_faster' option from ->sync_request()
2015-04-22 08:00:40 +10:00
multipath.c
md: rename ->stop to ->free
2015-02-04 08:35:52 +11:00
multipath.h
raid0.c
md raid0: access mddev->queue (request queue member) conditionally because it is not set when accessed from dm-raid
2015-04-22 08:00:41 +10:00
raid0.h
raid1.c
md: remove 'go_faster' option from ->sync_request()
2015-04-22 08:00:40 +10:00
raid1.h
md: make ->congested robust against personality changes.
2015-02-04 08:35:52 +11:00
raid5.c
md/raid5: introduce configuration option rmw_level
2015-04-22 08:00:42 +10:00
raid5.h
md/raid5: introduce configuration option rmw_level
2015-04-22 08:00:42 +10:00
raid10.c
md: remove 'go_faster' option from ->sync_request()
2015-04-22 08:00:40 +10:00
raid10.h
md: make ->congested robust against personality changes.
2015-02-04 08:35:52 +11:00