Re: Slow dc3dd in 3.18 on x86

From: Michael L. Semon
Date: Sat Oct 25 2014 - 15:46:36 EST


On 10/24/14 21:51, Martin K. Petersen wrote:
"Michael" == Michael L Semon <mlsemon35@xxxxxxxxx> writes:

Michael> There was nothing regarding integrity in /sys/block/sda. I was
Michael> under the impression that both bio integrity and T10 checksums
Michael> require hardware support from good hardware, so the config
Michael> items have always been shut off.

That's correct. But I see what's going on.

Please try this:

commit 8d331952d2cd341d5c0e64eee961f78f6eb4b968
Author: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Date: Fri Oct 24 21:39:12 2014 -0400

block: Fix merge logic when CONFIG_BLK_DEV_INTEGRITY is not defined

Commit 4eaf99beadce switched to returning bool and as a result
reversed the logic of the integrity merge checks. However, the
empty stubs used when the block integrity code is compiled out were
still returning 0. Make these stubs return "true".

Reported-by: Michael L. Semon <mlsemon35@xxxxxxxxx>
Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>

diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 9fbf4d3196ed..7442c6b9187e 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -1590,13 +1590,13 @@ static inline bool blk_integrity_merge_rq(struct request_queue *rq,
struct request *r1,
struct request *r2)
{
- return 0;
+ return true;
}
static inline bool blk_integrity_merge_bio(struct request_queue *rq,
struct request *r,
struct bio *b)
{
- return 0;
+ return true;
}
static inline bool blk_integrity_is_initialized(struct gendisk *g)
{


Excellent! All is well with the problem kernel. All is well with the
night's git master + xfs-oss/for-next as well. The saved E-mail patched
cleanly against both kernels using `git am`. About 40 GB of data was
written, some using fio, most using dc3dd. No problems.

I'll keep this patch and stand behind its good results so far.

Thanks again!

Michael

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/