Skip site navigation (1)Skip section navigation (2)
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>