kernel_optimize_test/drivers/md
Mikulas Patocka dc2676210c dm crypt: offload writes to thread
Submitting write bios directly in the encryption thread caused serious
performance degradation.  On a multiprocessor machine, encryption requests
finish in a different order than they were submitted.  Consequently, write
requests would be submitted in a different order and it could cause severe
performance degradation.

Move the submission of write requests to a separate thread so that the
requests can be sorted before submitting.  But this commit improves
dm-crypt performance even without having dm-crypt perform request
sorting (in particular it enables IO schedulers like CFQ to sort more
effectively).

Note: it is required that a previous commit ("dm crypt: don't allocate
pages for a partial request") be applied before applying this patch.
Otherwise, this commit could introduce a crash.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2015-02-16 11:11:14 -05:00
..
bcache
persistent-data dm space map disk: fix sm_disk_count_is_more_than_one() 2015-02-13 19:32:58 -05:00
bitmap.c md: remove mddev_lock() from md_attr_show() 2015-02-06 09:32:55 +11:00
bitmap.h
dm-bio-prison.c
dm-bio-prison.h
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-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-policy-cleaner.c
dm-cache-policy-internal.h
dm-cache-policy-mq.c
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: offload writes to thread 2015-02-16 11:11:14 -05:00
dm-delay.c
dm-era-target.c
dm-exception-store.c
dm-exception-store.h
dm-flakey.c
dm-io.c dm io: reject unsupported DISCARD requests with EOPNOTSUPP 2015-02-13 19:51:09 -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-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-raid1.c dm mirror: do not degrade the mirror on discard error 2015-02-13 19:50:46 -05:00
dm-raid.c - Most significant change this cycle is request-based DM now supports 2015-02-12 16:36:31 -08: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-stats.c
dm-stats.h
dm-stripe.c
dm-switch.c
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 - Most significant change this cycle is request-based DM now supports 2015-02-12 16:36:31 -08:00
dm-uevent.c
dm-uevent.h
dm-verity.c
dm-zero.c
dm.c - Most significant change this cycle is request-based DM now supports 2015-02-12 16:36:31 -08: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 - Most significant change this cycle is request-based DM now supports 2015-02-12 16:36:31 -08:00
linear.c md: rename ->stop to ->free 2015-02-04 08:35:52 +11:00
linear.h
Makefile
md.c md: make reconfig_mutex optional for writes to md sysfs files. 2015-02-06 09:32:56 +11:00
md.h md: wakeup thread upon rdev_dec_pending() 2015-02-06 09:32:57 +11:00
multipath.c md: rename ->stop to ->free 2015-02-04 08:35:52 +11:00
multipath.h
raid0.c md: rename ->stop to ->free 2015-02-04 08:35:52 +11:00
raid0.h
raid1.c md: rename ->stop to ->free 2015-02-04 08:35:52 +11:00
raid1.h md: make ->congested robust against personality changes. 2015-02-04 08:35:52 +11:00
raid5.c md: make reconfig_mutex optional for writes to md sysfs files. 2015-02-06 09:32:56 +11:00
raid5.h md: make ->congested robust against personality changes. 2015-02-04 08:35:52 +11:00
raid10.c md/raid10: fix conversion from RAID0 to RAID10 2015-02-12 14:09:57 +11:00
raid10.h md: make ->congested robust against personality changes. 2015-02-04 08:35:52 +11:00