Pull MD updates from Shaohua Li: - a raid5 writeback cache feature. The goal is to aggregate writes to make full stripe write and reduce read-modify-write. It's helpful for workload which does sequential write and follows fsync for example. This feature is experimental and off by default right now. - FAILFAST support. This fails IOs to broken raid disks quickly, so can improve latency. It's mainly for DASD storage, but some patches help normal raid array too. - support bad block for raid array with external metadata - AVX2 instruction support for raid6 parity calculation - normalize MD info output - add missing blktrace - other bug fixes * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md: (66 commits) md: separate flags for superblock changes md: MD_RECOVERY_NEEDED is set for mddev->recovery md: takeover should clear unrelated bits md/r5cache: after recovery, increase journal seq by 10000 md/raid5-cache: fix crc in rewrite_data_only_stripes() md/raid5-cache: no recovery is required when create super-block md: fix refcount problem on mddev when stopping array. md/r5cache: do r5c_update_log_state after log recovery md/raid5-cache: adjust the write position of the empty block if no data blocks md/r5cache: run_no_space_stripes() when R5C_LOG_CRITICAL == 0 md/raid5: limit request size according to implementation limits md/raid5-cache: do not need to set STRIPE_PREREAD_ACTIVE repeatedly md/raid5-cache: remove the unnecessary next_cp_seq field from the r5l_log md/raid5-cache: release the stripe_head at the appropriate location md/raid5-cache: use ring add to prevent overflow md/raid5-cache: remove unnecessary function parameters raid5-cache: don't set STRIPE_R5C_PARTIAL_STRIPE flag while load stripe into cache raid5-cache: add another check conditon before replaying one stripe md/r5cache: enable IRQs on error path md/r5cache: handle alloc_page failure ...
Showing the changes to include/uapi/linux (1 of 16 files). Show all
Unified · Split
| @@ -84,6 +84,10 @@ · 83 unmodified lines | |||
| 84 | #define MD_DISK_CANDIDATE 5 /* disk is added as spare (local) until confirmed | 84 | #define MD_DISK_CANDIDATE 5 /* disk is added as spare (local) until confirmed |
| 85 | * For clustered enviroments only. | 85 | * For clustered enviroments only. |
| 86 | */ | 86 | */ |
| 87 | #define MD_DISK_FAILFAST 10 /* Send REQ_FAILFAST if there are multiple | ||
| 88 | * devices available - and don't try to | ||
| 89 | * correct read errors. | ||
| 90 | */ | ||
| 87 | 91 | ||
| 88 | #define MD_DISK_WRITEMOSTLY 9 /* disk is "write-mostly" is RAID1 config. | 92 | #define MD_DISK_WRITEMOSTLY 9 /* disk is "write-mostly" is RAID1 config. |
| 89 | * read requests will only be sent here in | 93 | * read requests will only be sent here in |
| @@ -265,8 +269,9 @@ struct mdp_superblock_1 { · 175 unmodified lines | |||
| 265 | __le32 dev_number; /* permanent identifier of this device - not role in raid */ | 269 | __le32 dev_number; /* permanent identifier of this device - not role in raid */ |
| 266 | __le32 cnt_corrected_read; /* number of read errors that were corrected by re-writing */ | 270 | __le32 cnt_corrected_read; /* number of read errors that were corrected by re-writing */ |
| 267 | __u8 device_uuid[16]; /* user-space setable, ignored by kernel */ | 271 | __u8 device_uuid[16]; /* user-space setable, ignored by kernel */ |
| 268 | __u8 devflags; /* per-device flags. Only one defined...*/ | 272 | __u8 devflags; /* per-device flags. Only two defined...*/ |
| 269 | #define WriteMostly1 1 /* mask for writemostly flag in above */ | 273 | #define WriteMostly1 1 /* mask for writemostly flag in above */ |
| 274 | #define FailFast1 2 /* Should avoid retries and fixups and just fail */ | ||
| 270 | /* Bad block log. If there are any bad blocks the feature flag is set. | 275 | /* Bad block log. If there are any bad blocks the feature flag is set. |
| 271 | * If offset and size are non-zero, that space is reserved and available | 276 | * If offset and size are non-zero, that space is reserved and available |
| 272 | */ | 277 | */ |