Date: Mon, 02 Dec 2013 15:51:22 +0100 From: krichy@cflinux.hu To: freebsd-scsi@freebsd.org Subject: geom write-cache awareness Message-ID: <2cc1e6c1bedf517edd8e3ad0a8c94a7b@cflinux.hu>
next in thread | raw e-mail | index | archive | help
--=_c1169dab00288a9e9bcb65ee396e7d1d Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=UTF-8; format=flowed Dear scsi devs, I am facing with a strange problem, mentioned earlier: I bought an SSD for the purpose of zfs ZIL. I made tests regarding its speed under linux, after which I decided it will suit my needs. It performs enough IOPS for me, and has power-loss protection, so my data is in safe. Upon attaching the drive, under linux and under freebsd it has its write-cache disabled. Linux handles this, and in this way, it does not issue FLUSH commands to the device, as it assumes it has its write cache disabled. Unfortunately, the drive serves flush commands slow, I dont know why. And as FreeBSD currently ignores such settings, and always issues the FLUSH command, this makes my drive perform slow on FreeBSD. And when I enable the write cache in linux, it gets sending the flush commands, it gets also that slow performance. What would if FreeBSD's geom layer has some knowledge about the underlying device's cache setting, and if it knows as it has no or has a write-through cache, skip flush commands? Maybe this could improve performance in other scenarios also, when one explicitly disables the cache. And of course, it would solve my problem also. As I am not a FreeBSD kernel developer, I just tried to implement such awareness for geom and for ata devices only, the diff is attached, it is against 9.2-RELENG. Please review the idea, or give advice how to solve my problem. Thanks in advance, Kojedzinszky Richard --=_c1169dab00288a9e9bcb65ee396e7d1d Content-Transfer-Encoding: base64 Content-Type: text/plain; name=geom_write_through.diff Content-Disposition: attachment; filename=geom_write_through.diff; size=1827 ZGlmZiAtLWdpdCBhL3N5cy9jYW0vYXRhL2F0YV9kYS5jIGIvc3lzL2NhbS9hdGEvYXRhX2RhLmMN CmluZGV4IGNjMjgzMTEuLjEwZTRmOWIgMTAwNjQ0DQotLS0gYS9zeXMvY2FtL2F0YS9hdGFfZGEu Yw0KKysrIGIvc3lzL2NhbS9hdGEvYXRhX2RhLmMNCkBAIC0xMjQyLDcgKzEyNDIsNyBAQCBhZGFy ZWdpc3RlcihzdHJ1Y3QgY2FtX3BlcmlwaCAqcGVyaXBoLCB2b2lkICphcmcpDQogCQltYXhpbyA9 IG1pbihtYXhpbywgMjU2ICogc29mdGMtPnBhcmFtcy5zZWNzaXplKTsNCiAJc29mdGMtPmRpc2st PmRfbWF4c2l6ZSA9IG1heGlvOw0KIAlzb2Z0Yy0+ZGlzay0+ZF91bml0ID0gcGVyaXBoLT51bml0 X251bWJlcjsNCi0Jc29mdGMtPmRpc2stPmRfZmxhZ3MgPSAwOw0KKwlzb2Z0Yy0+ZGlzay0+ZF9m bGFncyA9IERJU0tGTEFHX1dSSVRFX1RIUk9VR0g7DQogCWlmIChzb2Z0Yy0+ZmxhZ3MgJiBBREFf RkxBR19DQU5fRkxVU0hDQUNIRSkNCiAJCXNvZnRjLT5kaXNrLT5kX2ZsYWdzIHw9IERJU0tGTEFH X0NBTkZMVVNIQ0FDSEU7DQogCWlmIChzb2Z0Yy0+ZmxhZ3MgJiBBREFfRkxBR19DQU5fVFJJTSkg ew0KQEAgLTE4MzUsNiArMTgzNSwxMiBAQCBhZGFkb25lKHN0cnVjdCBjYW1fcGVyaXBoICpwZXJp cGgsIHVuaW9uIGNjYiAqZG9uZV9jY2IpDQogCQkJfQ0KIAkJfQ0KIA0KKwkJaWYgKGF0YWlvLT5j bWQuZmVhdHVyZXMgPT0gQVRBX1NGX0VOQUJfV0NBQ0hFKSB7DQorCQkJc29mdGMtPmRpc2stPmRf ZmxhZ3MgJj0gfkRJU0tGTEFHX1dSSVRFX1RIUk9VR0g7DQorCQl9IGVsc2Ugew0KKwkJCXNvZnRj LT5kaXNrLT5kX2ZsYWdzIHw9IERJU0tGTEFHX1dSSVRFX1RIUk9VR0g7DQorCQl9DQorDQogCQlz b2Z0Yy0+c3RhdGUgPSBBREFfU1RBVEVfTk9STUFMOw0KIAkJLyoNCiAJCSAqIFNpbmNlIG91ciBw ZXJpcGhlcmFsIG1heSBiZSBpbnZhbGlkYXRlZCBieSBhbiBlcnJvcg0KZGlmZiAtLWdpdCBhL3N5 cy9nZW9tL2dlb21fZGlzay5jIGIvc3lzL2dlb20vZ2VvbV9kaXNrLmMNCmluZGV4IDE2ZjZjNDQu LjJjYjRjZWYgMTAwNjQ0DQotLS0gYS9zeXMvZ2VvbS9nZW9tX2Rpc2suYw0KKysrIGIvc3lzL2dl b20vZ2VvbV9kaXNrLmMNCkBAIC00MDQsNiArNDA0LDEwIEBAIGdfZGlza19zdGFydChzdHJ1Y3Qg YmlvICpicCkNCiAJY2FzZSBCSU9fRkxVU0g6DQogCQlnX3RyYWNlKEdfVF9CSU8sICJnX2Rpc2tf Zmx1c2hjYWNoZSglcykiLA0KIAkJICAgIGJwLT5iaW9fdG8tPm5hbWUpOw0KKwkJaWYgKGRwLT5k X2ZsYWdzICYgRElTS0ZMQUdfV1JJVEVfVEhST1VHSCkgew0KKwkJCWVycm9yID0gMDsNCisJCQli cmVhazsNCisJCX0NCiAJCWlmICghKGRwLT5kX2ZsYWdzICYgRElTS0ZMQUdfQ0FORkxVU0hDQUNI RSkpIHsNCiAJCQllcnJvciA9IEVPUE5PVFNVUFA7DQogCQkJYnJlYWs7DQpkaWZmIC0tZ2l0IGEv c3lzL2dlb20vZ2VvbV9kaXNrLmggYi9zeXMvZ2VvbS9nZW9tX2Rpc2suaA0KaW5kZXggNWUwODFj OC4uYTUzYWEzOCAxMDA2NDQNCi0tLSBhL3N5cy9nZW9tL2dlb21fZGlzay5oDQorKysgYi9zeXMv Z2VvbS9nZW9tX2Rpc2suaA0KQEAgLTExMSw2ICsxMTEsNyBAQCBzdHJ1Y3QgZGlzayB7DQogI2Rl ZmluZSBESVNLRkxBR19MQUNLU19HT05FCTB4MTANCiAjZGVmaW5lIERJU0tGTEFHX1VOTUFQUEVE X0JJTwkweDIwDQogI2RlZmluZSBESVNLRkxBR19MQUNLU19ERUxNQVgJMHg0MA0KKyNkZWZpbmUg RElTS0ZMQUdfV1JJVEVfVEhST1VHSAkweDgwDQogDQogc3RydWN0IGRpc2sgKmRpc2tfYWxsb2Mo dm9pZCk7DQogdm9pZCBkaXNrX2NyZWF0ZShzdHJ1Y3QgZGlzayAqZGlzaywgaW50IHZlcnNpb24p Ow0K --=_c1169dab00288a9e9bcb65ee396e7d1d--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2cc1e6c1bedf517edd8e3ad0a8c94a7b>