Date: Wed, 17 Oct 2012 12:48:56 -0500 (CDT) From: Bryan Venteicher <bryanv@daemoninthecloset.org> To: freebsd-scsi@freebsd.org Subject: bioq_disksort() on SSDs Message-ID: <1780024492.108.1350496136356.JavaMail.root@daemoninthecloset.org> In-Reply-To: <31199212.85.1350495039233.JavaMail.root@daemoninthecloset.org>
next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_106_764303500.1350496136349 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi, At $JOB, we've noticed bioq_disksort() creep up in the profiling output when the bio queue gets backed up at our caching SSD drives. Thoughts on the attached patch which does away with the disksort for SCSI da* and ATA ada* SSD drives? Support for quirks and sysctl/tunables to force the behavior either way are desirable but not implemented in this patch. Nor is some mechanism to pass this information up to GEOM (to say gsched). And perhaps this should done fairer to writes as DragonflyBSD's bioqdisksort() does. (I've only been able to test an similar patch adapted to 8.x and this patch on a virtual machine.) http://www.daemoninthecloset.org/~bryanv/patches/freebsd/ssd_disksort.patch ------=_Part_106_764303500.1350496136349 Content-Type: text/x-patch; name=ssd_disksort.patch Content-Disposition: attachment; filename=ssd_disksort.patch Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3N5cy9jYW0vYXRhL2F0YV9kYS5jIGIvc3lzL2NhbS9hdGEvYXRhX2RhLmMK aW5kZXggYmI2M2FjOC4uZmUzMmM3OSAxMDA2NDQKLS0tIGEvc3lzL2NhbS9hdGEvYXRhX2RhLmMK KysrIGIvc3lzL2NhbS9hdGEvYXRhX2RhLmMKQEAgLTc1LDE4ICs3NSwxOSBAQCB0eXBlZGVmIGVu dW0gewogfSBhZGFfc3RhdGU7CiAKIHR5cGVkZWYgZW51bSB7Ci0JQURBX0ZMQUdfUEFDS19JTlZB TElECT0gMHgwMDEsCi0JQURBX0ZMQUdfQ0FOXzQ4QklUCT0gMHgwMDIsCi0JQURBX0ZMQUdfQ0FO X0ZMVVNIQ0FDSEUJPSAweDAwNCwKLQlBREFfRkxBR19DQU5fTkNRCT0gMHgwMDgsCi0JQURBX0ZM QUdfQ0FOX0RNQQk9IDB4MDEwLAotCUFEQV9GTEFHX05FRURfT1RBRwk9IDB4MDIwLAotCUFEQV9G TEFHX1dFTlRfSURMRQk9IDB4MDQwLAotCUFEQV9GTEFHX0NBTl9UUklNCT0gMHgwODAsCi0JQURB X0ZMQUdfT1BFTgkJPSAweDEwMCwKLQlBREFfRkxBR19TQ1RYX0lOSVQJPSAweDIwMCwKLQlBREFf RkxBR19DQU5fQ0ZBICAgICAgICA9IDB4NDAwLAotCUFEQV9GTEFHX0NBTl9QT1dFUk1HVCAgID0g MHg4MDAKKwlBREFfRkxBR19QQUNLX0lOVkFMSUQJPSAweDAwMDEsCisJQURBX0ZMQUdfQ0FOXzQ4 QklUCT0gMHgwMDAyLAorCUFEQV9GTEFHX0NBTl9GTFVTSENBQ0hFCT0gMHgwMDA0LAorCUFEQV9G TEFHX0NBTl9OQ1EJPSAweDAwMDgsCisJQURBX0ZMQUdfQ0FOX0RNQQk9IDB4MDAxMCwKKwlBREFf RkxBR19ORUVEX09UQUcJPSAweDAwMjAsCisJQURBX0ZMQUdfV0VOVF9JRExFCT0gMHgwMDQwLAor CUFEQV9GTEFHX0NBTl9UUklNCT0gMHgwMDgwLAorCUFEQV9GTEFHX09QRU4JCT0gMHgwMTAwLAor CUFEQV9GTEFHX1NDVFhfSU5JVAk9IDB4MDIwMCwKKwlBREFfRkxBR19DQU5fQ0ZBICAgICAgICA9 IDB4MDQwMCwKKwlBREFfRkxBR19DQU5fUE9XRVJNR1QgICA9IDB4MDgwMCwKKwlBREFfRkxBR19O T19ESVNLU09SVAk9IDB4MTAwMAogfSBhZGFfZmxhZ3M7CiAKIHR5cGVkZWYgZW51bSB7CkBAIC01 MzUsNiArNTM2LDcgQEAgYWRhc3RyYXRlZ3koc3RydWN0IGJpbyAqYnApCiB7CiAJc3RydWN0IGNh bV9wZXJpcGggKnBlcmlwaDsKIAlzdHJ1Y3QgYWRhX3NvZnRjICpzb2Z0YzsKKwlzdHJ1Y3QgYmlv X3F1ZXVlX2hlYWQgKmJpb3E7CiAJCiAJcGVyaXBoID0gKHN0cnVjdCBjYW1fcGVyaXBoICopYnAt PmJpb19kaXNrLT5kX2RydjE7CiAJaWYgKHBlcmlwaCA9PSBOVUxMKSB7CkBAIC01NTksMTEgKzU2 MSwxNCBAQCBhZGFzdHJhdGVneShzdHJ1Y3QgYmlvICpicCkKIAkvKgogCSAqIFBsYWNlIGl0IGlu IHRoZSBxdWV1ZSBvZiBkaXNrIGFjdGl2aXRpZXMgZm9yIHRoaXMgZGlzawogCSAqLwotCWlmIChi cC0+YmlvX2NtZCA9PSBCSU9fREVMRVRFICYmCi0JICAgIChzb2Z0Yy0+ZmxhZ3MgJiBBREFfRkxB R19DQU5fVFJJTSkpCi0JCWJpb3FfZGlza3NvcnQoJnNvZnRjLT50cmltX3F1ZXVlLCBicCk7CisJ aWYgKGJwLT5iaW9fY21kID09IEJJT19ERUxFVEUgJiYgKHNvZnRjLT5mbGFncyAmIEFEQV9GTEFH X0NBTl9UUklNKSkKKwkJYmlvcSA9ICZzb2Z0Yy0+dHJpbV9xdWV1ZTsKIAllbHNlCi0JCWJpb3Ff ZGlza3NvcnQoJnNvZnRjLT5iaW9fcXVldWUsIGJwKTsKKwkJYmlvcSA9ICZzb2Z0Yy0+YmlvX3F1 ZXVlOworCWlmIChzb2Z0Yy0+ZmxhZ3MgJiBBREFfRkxBR19OT19ESVNLU09SVCkKKwkJYmlvcV9p bnNlcnRfdGFpbChiaW9xLCBicCk7CisJZWxzZQorCQliaW9xX2Rpc2tzb3J0KGJpb3EsIGJwKTsK IAogCS8qCiAJICogU2NoZWR1bGUgb3Vyc2VsdmVzIGZvciBwZXJmb3JtaW5nIHRoZSB3b3JrLgpA QCAtOTg1LDYgKzk5MCw5IEBAIGFkYXJlZ2lzdGVyKHN0cnVjdCBjYW1fcGVyaXBoICpwZXJpcGgs IHZvaWQgKmFyZykKIAlpZiAoY2dkLT5pZGVudF9kYXRhLnN1cHBvcnQuY29tbWFuZDIgJiBBVEFf U1VQUE9SVF9DRkEpCiAJCXNvZnRjLT5mbGFncyB8PSBBREFfRkxBR19DQU5fQ0ZBOwogCisJaWYg KGNnZC0+aWRlbnRfZGF0YS5tZWRpYV9yb3RhdGlvbl9yYXRlID09IDEpCisJCXNvZnRjLT5mbGFn cyB8PSBBREFfRkxBR19OT19ESVNLU09SVDsKKwogCXBlcmlwaC0+c29mdGMgPSBzb2Z0YzsKIAog CS8qCmRpZmYgLS1naXQgYS9zeXMvY2FtL3Njc2kvc2NzaV9hbGwuYyBiL3N5cy9jYW0vc2NzaS9z Y3NpX2FsbC5jCmluZGV4IGEzN2FlMTkuLjFlNTVmOGIgMTAwNjQ0Ci0tLSBhL3N5cy9jYW0vc2Nz aS9zY3NpX2FsbC5jCisrKyBiL3N5cy9jYW0vc2NzaS9zY3NpX2FsbC5jCkBAIC00MCw2ICs0MCw5 IEBAIF9fRkJTRElEKCIkRnJlZUJTRCQiKTsKICNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KICNpbmNs dWRlIDxzeXMvbGlia2Vybi5oPgogI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxz eXMvbG9jay5oPgorI2luY2x1ZGUgPHN5cy9tYWxsb2MuaD4KKyNpbmNsdWRlIDxzeXMvbXV0ZXgu aD4KICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CiAjZWxzZQogI2luY2x1ZGUgPGVycm5vLmg+CkBA IC01MSw3ICs1NCwxMSBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7CiAjaW5jbHVkZSA8Y2FtL2Nh bS5oPgogI2luY2x1ZGUgPGNhbS9jYW1fY2NiLmg+CiAjaW5jbHVkZSA8Y2FtL2NhbV9xdWV1ZS5o PgorI2luY2x1ZGUgPGNhbS9jYW1fcGVyaXBoLmg+CiAjaW5jbHVkZSA8Y2FtL2NhbV94cHQuaD4K KyNpbmNsdWRlIDxjYW0vY2FtX3hwdF9zaW0uaD4KKyNpbmNsdWRlIDxjYW0vY2FtX3hwdF9wZXJp cGguaD4KKyNpbmNsdWRlIDxjYW0vY2FtX3hwdF9pbnRlcm5hbC5oPgogI2luY2x1ZGUgPGNhbS9z Y3NpL3Njc2lfYWxsLmg+CiAjaW5jbHVkZSA8c3lzL3NidWYuaD4KICNpZm5kZWYgX0tFUk5FTApA QCAtNjE1OSw2ICs2MTY2LDI4IEBAIHNjc2lfZGV2aWRfbWF0Y2godWludDhfdCAqbGhzLCBzaXpl X3QgbGhzX2xlbiwgdWludDhfdCAqcmhzLCBzaXplX3QgcmhzX2xlbikKIAlyZXR1cm4gKC0xKTsK IH0KIAoraW50CitzY3NpX3ZwZF9wYWdlX3N1cHBvcnRlZChzdHJ1Y3QgY2FtX3BlcmlwaCAqcGVy aXBoLCB1aW50OF90IHBhZ2VfaWQpCit7CisJc3RydWN0IGNhbV9lZCAqZGV2aWNlOworCXN0cnVj dCBzY3NpX3ZwZF9zdXBwb3J0ZWRfcGFnZXMgKnZwZHM7CisJaW50IGksIG51bV9wYWdlczsKKwor CWRldmljZSA9IHBlcmlwaC0+cGF0aC0+ZGV2aWNlOworCXZwZHMgPSAoc3RydWN0IHNjc2lfdnBk X3N1cHBvcnRlZF9wYWdlcyAqKWRldmljZS0+c3VwcG9ydGVkX3ZwZHM7CisKKwlpZiAodnBkcyAh PSBOVUxMKSB7CisJCW51bV9wYWdlcyA9IGRldmljZS0+c3VwcG9ydGVkX3ZwZHNfbGVuIC0KKwkJ CVNWUERfU1VQUE9SVEVEX1BBR0VTX0hEUl9MRU47CisJCWZvciAoaSA9IDA7IGkgPCBudW1fcGFn ZXM7IGkrKykgeworCQkJaWYgKHZwZHMtPnBhZ2VfbGlzdFtpXSA9PSBwYWdlX2lkKQorCQkJCXJl dHVybiAoMSk7CisJCX0KKwl9CisKKwlyZXR1cm4gKDApOworfQorCiAjaWZkZWYgX0tFUk5FTAog c3RhdGljIHZvaWQKIGluaXRfc2NzaV9kZWxheSh2b2lkKQpkaWZmIC0tZ2l0IGEvc3lzL2NhbS9z Y3NpL3Njc2lfYWxsLmggYi9zeXMvY2FtL3Njc2kvc2NzaV9hbGwuaAppbmRleCAwNjkzZTFjLi44 YzJjZjQxIDEwMDY0NAotLS0gYS9zeXMvY2FtL3Njc2kvc2NzaV9hbGwuaAorKysgYi9zeXMvY2Ft L3Njc2kvc2NzaV9hbGwuaApAQCAtMTM5Miw2ICsxMzkyLDE1IEBAIHN0cnVjdCBzY3NpX3ZwZF9p ZF9zY3NpX25hbWUKIAl1aW50OF90IG5hbWVfc3RyaW5nWzI1Nl07CiB9OwogCitzdHJ1Y3Qgc2Nz aV92cGRfYmxvY2tfY2hhcmFjdGVyaXN0aWNzCit7CisJdWludDhfdCBkZXZpY2U7CisJdWludDhf dCBwYWdlX2NvZGU7CisjZGVmaW5lIFNWUERfQkxPQ0tfQ0hBUkFDVEVSSVNUSUNTCTB4QjEKKwl1 aW50OF90IGxlbmd0aFsyXTsKKwl1aW50OF90IHJvdGF0aW9uX3JhdGVbMl07Cit9OworCiBzdHJ1 Y3Qgc2NzaV9zZXJ2aWNlX2FjdGlvbl9pbgogewogCXVpbnQ4X3Qgb3Bjb2RlOwpAQCAtMjM4Nyw2 ICsyMzk2LDkgQEAgaW50CQlzY3NpX3N0YXRpY19pbnF1aXJ5X21hdGNoKGNhZGRyX3QgaW5xYnVm ZmVyLAogaW50CQlzY3NpX2RldmlkX21hdGNoKHVpbnQ4X3QgKnJocywgc2l6ZV90IHJoc19sZW4s CiAJCQkJIHVpbnQ4X3QgKmxocywgc2l6ZV90IGxoc19sZW4pOwogCitpbnQgCQlzY3NpX3ZwZF9w YWdlX3N1cHBvcnRlZChzdHJ1Y3QgY2FtX3BlcmlwaCAqcGVyaXBoLAorCQkJCQl1aW50OF90IHBh Z2VfaWQpOworCiB2b2lkIHNjc2lfZXh0cmFjdF9zZW5zZShzdHJ1Y3Qgc2NzaV9zZW5zZV9kYXRh ICpzZW5zZSwgaW50ICplcnJvcl9jb2RlLAogCQkJaW50ICpzZW5zZV9rZXksIGludCAqYXNjLCBp bnQgKmFzY3EpOwogaW50IHNjc2lfZXh0cmFjdF9zZW5zZV9jY2IodW5pb24gY2NiICpjY2IsIGlu dCAqZXJyb3JfY29kZSwgaW50ICpzZW5zZV9rZXksCmRpZmYgLS1naXQgYS9zeXMvY2FtL3Njc2kv c2NzaV9kYS5jIGIvc3lzL2NhbS9zY3NpL3Njc2lfZGEuYwppbmRleCBhZWEyY2QzLi45ZGM5NmI0 IDEwMDY0NAotLS0gYS9zeXMvY2FtL3Njc2kvc2NzaV9kYS5jCisrKyBiL3N5cy9jYW0vc2NzaS9z Y3NpX2RhLmMKQEAgLTczLDE4ICs3MywxOSBAQCB0eXBlZGVmIGVudW0gewogfSBkYV9zdGF0ZTsK IAogdHlwZWRlZiBlbnVtIHsKLQlEQV9GTEFHX1BBQ0tfSU5WQUxJRAk9IDB4MDAxLAotCURBX0ZM QUdfTkVXX1BBQ0sJPSAweDAwMiwKLQlEQV9GTEFHX1BBQ0tfTE9DS0VECT0gMHgwMDQsCi0JREFf RkxBR19QQUNLX1JFTU9WQUJMRQk9IDB4MDA4LAotCURBX0ZMQUdfU0FXX01FRElBCT0gMHgwMTAs Ci0JREFfRkxBR19ORUVEX09UQUcJPSAweDAyMCwKLQlEQV9GTEFHX1dFTlRfSURMRQk9IDB4MDQw LAotCURBX0ZMQUdfUkVUUllfVUEJPSAweDA4MCwKLQlEQV9GTEFHX09QRU4JCT0gMHgxMDAsCi0J REFfRkxBR19TQ1RYX0lOSVQJPSAweDIwMCwKLQlEQV9GTEFHX0NBTl9SQzE2CT0gMHg0MDAsCi0J REFfRkxBR19QUk9CRUQJCT0gMHg4MDAJCQorCURBX0ZMQUdfUEFDS19JTlZBTElECT0gMHgwMDAx LAorCURBX0ZMQUdfTkVXX1BBQ0sJPSAweDAwMDIsCisJREFfRkxBR19QQUNLX0xPQ0tFRAk9IDB4 MDAwNCwKKwlEQV9GTEFHX1BBQ0tfUkVNT1ZBQkxFCT0gMHgwMDA4LAorCURBX0ZMQUdfU0FXX01F RElBCT0gMHgwMDEwLAorCURBX0ZMQUdfTkVFRF9PVEFHCT0gMHgwMDIwLAorCURBX0ZMQUdfV0VO VF9JRExFCT0gMHgwMDQwLAorCURBX0ZMQUdfUkVUUllfVUEJPSAweDAwODAsCisJREFfRkxBR19P UEVOCQk9IDB4MDEwMCwKKwlEQV9GTEFHX1NDVFhfSU5JVAk9IDB4MDIwMCwKKwlEQV9GTEFHX0NB Tl9SQzE2CT0gMHgwNDAwLAorCURBX0ZMQUdfUFJPQkVECQk9IDB4MDgwMCwKKwlEQV9GTEFHX05P X0RJU0tTT1JUCT0gMHgxMDAwLAogfSBkYV9mbGFnczsKIAogdHlwZWRlZiBlbnVtIHsKQEAgLTg1 NSw2ICs4NTYsNyBAQCBzdGF0aWMgIGludAkJZGFlcnJvcih1bmlvbiBjY2IgKmNjYiwgdV9pbnQz Ml90IGNhbV9mbGFncywKIAkJCQl1X2ludDMyX3Qgc2Vuc2VfZmxhZ3MpOwogc3RhdGljIHZvaWQJ CWRhcHJldmVudChzdHJ1Y3QgY2FtX3BlcmlwaCAqcGVyaXBoLCBpbnQgYWN0aW9uKTsKIHN0YXRp YyB2b2lkCQlkYXJlcHJvYmUoc3RydWN0IGNhbV9wZXJpcGggKnBlcmlwaCk7CitzdGF0aWMgdm9p ZAkJZGFpc3NvbGlkc3RhdGUoc3RydWN0IGNhbV9wZXJpcGggKnBlcmlwaCk7CiBzdGF0aWMgdm9p ZAkJZGFzZXRnZW9tKHN0cnVjdCBjYW1fcGVyaXBoICpwZXJpcGgsIHVpbnQzMl90IGJsb2NrX2xl biwKIAkJCQkgIHVpbnQ2NF90IG1heHNlY3RvciwKIAkJCQkgIHN0cnVjdCBzY3NpX3JlYWRfY2Fw YWNpdHlfZGF0YV9sb25nICpyY2FwbG9uZywKQEAgLTk4MCw2ICs5ODIsOSBAQCBkYW9wZW4oc3Ry dWN0IGRpc2sgKmRwKQogCQlkYXByZXZlbnQocGVyaXBoLCBQUl9QUkVWRU5UKTsKIAogCWlmIChl cnJvciA9PSAwKQorCQlkYWlzc29saWRzdGF0ZShwZXJpcGgpOworCisJaWYgKGVycm9yID09IDAp CiAJCXNvZnRjLT5mbGFncyB8PSBEQV9GTEFHX1NBV19NRURJQTsKIAogCWNhbV9wZXJpcGhfdW5o b2xkKHBlcmlwaCk7CkBAIC0xMDg2LDYgKzEwOTEsNyBAQCBkYXN0cmF0ZWd5KHN0cnVjdCBiaW8g KmJwKQogewogCXN0cnVjdCBjYW1fcGVyaXBoICpwZXJpcGg7CiAJc3RydWN0IGRhX3NvZnRjICpz b2Z0YzsKKwlzdHJ1Y3QgYmlvX3F1ZXVlX2hlYWQgKmJpb3E7CiAJCiAJcGVyaXBoID0gKHN0cnVj dCBjYW1fcGVyaXBoICopYnAtPmJpb19kaXNrLT5kX2RydjE7CiAJaWYgKHBlcmlwaCA9PSBOVUxM KSB7CkBAIC0xMTExLDE2ICsxMTE3LDI0IEBAIGRhc3RyYXRlZ3koc3RydWN0IGJpbyAqYnApCiAJ ICogUGxhY2UgaXQgaW4gdGhlIHF1ZXVlIG9mIGRpc2sgYWN0aXZpdGllcyBmb3IgdGhpcyBkaXNr CiAJICovCiAJaWYgKGJwLT5iaW9fY21kID09IEJJT19ERUxFVEUpIHsKLQkJaWYgKGJwLT5iaW9f YmNvdW50ID09IDApCisJCWlmIChicC0+YmlvX2Jjb3VudCA9PSAwKSB7CiAJCQliaW9kb25lKGJw KTsKLQkJZWxzZQotCQkJYmlvcV9kaXNrc29ydCgmc29mdGMtPmRlbGV0ZV9xdWV1ZSwgYnApOwor CQkJZ290byBzY2hlZHVsZTsKKwkJfQorCisJCWJpb3EgPSAmc29mdGMtPmRlbGV0ZV9xdWV1ZTsK IAl9IGVsc2UKLQkJYmlvcV9kaXNrc29ydCgmc29mdGMtPmJpb19xdWV1ZSwgYnApOworCQliaW9x ID0gJnNvZnRjLT5iaW9fcXVldWU7CisKKwlpZiAoc29mdGMtPmZsYWdzICYgREFfRkxBR19OT19E SVNLU09SVCkKKwkJYmlvcV9pbnNlcnRfdGFpbChiaW9xLCBicCk7CisJZWxzZQorCQliaW9xX2Rp c2tzb3J0KGJpb3EsIGJwKTsKIAogCS8qCiAJICogU2NoZWR1bGUgb3Vyc2VsdmVzIGZvciBwZXJm b3JtaW5nIHRoZSB3b3JrLgogCSAqLworc2NoZWR1bGU6CiAJZGFzY2hlZHVsZShwZXJpcGgpOwog CWNhbV9wZXJpcGhfdW5sb2NrKHBlcmlwaCk7CiAKQEAgLTI1MzksNiArMjU1Myw0OCBAQCBkYXJl cHJvYmUoc3RydWN0IGNhbV9wZXJpcGggKnBlcmlwaCkKIAl4cHRfc2NoZWR1bGUocGVyaXBoLCBD QU1fUFJJT1JJVFlfREVWKTsKIH0KIAorc3RhdGljIHZvaWQKK2RhaXNzb2xpZHN0YXRlKHN0cnVj dCBjYW1fcGVyaXBoICpwZXJpcGgpCit7CisJc3RydWN0IGRhX3NvZnRjICpzb2Z0YzsKKwlzdHJ1 Y3Qgc2NzaV92cGRfYmxvY2tfY2hhcmFjdGVyaXN0aWNzICp2cGQ7CisJdW5pb24gY2NiICpjY2I7 CisJaW50IGVycm9yOworCisJc29mdGMgPSAoc3RydWN0IGRhX3NvZnRjICopcGVyaXBoLT5zb2Z0 YzsKKworCWlmIChzY3NpX3ZwZF9wYWdlX3N1cHBvcnRlZChwZXJpcGgsIFNWUERfQkxPQ0tfQ0hB UkFDVEVSSVNUSUNTKSA9PSAwKQorCQlyZXR1cm47CisKKwl2cGQgPSBtYWxsb2Moc2l6ZW9mKCp2 cGQpLCBNX1NDU0lEQSwgTV9OT1dBSVR8TV9aRVJPKTsKKwlpZiAodnBkID09IE5VTEwpIHsKKwkJ eHB0X3ByaW50KHBlcmlwaC0+cGF0aCwKKwkJICAgICJDYW5ub3QgYWxsb2NhdGUgYmxvY2sgY2hh cmFjdGVyaXN0aWNzIFZQRCBwYWdlXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWNjYiA9IGNhbV9w ZXJpcGhfZ2V0Y2NiKHBlcmlwaCwgQ0FNX1BSSU9SSVRZX05PUk1BTCk7CisJc2NzaV9pbnF1aXJ5 KCZjY2ItPmNzaW8sCisJCSAgICAgLypyZXRyaWVzKi80LAorCQkgICAgIGRhZG9uZSwKKwkJICAg ICBNU0dfU0lNUExFX1FfVEFHLAorCQkgICAgICh1aW50OF90ICopdnBkLAorCQkgICAgIHNpemVv ZigqdnBkKSwKKwkJICAgICAvKmV2cGQqL1RSVUUsCisJCSAgICAgU1ZQRF9CTE9DS19DSEFSQUNU RVJJU1RJQ1MsCisJCSAgICAgU1NEX01JTl9TSVpFLAorCQkgICAgIC8qdGltZW91dCovNjAgKiAx MDAwKTsKKworCWVycm9yID0gY2FtX3BlcmlwaF9ydW5jY2IoY2NiLCBkYWVycm9yLCBDQU1fUkVU UllfU0VMVE8sCisJICAgIFNGX1JFVFJZX1VBIHwgU0ZfUVVJRVRfSVIsIHNvZnRjLT5kaXNrLT5k X2RldnN0YXQpOworCXhwdF9yZWxlYXNlX2NjYihjY2IpOworCisJaWYgKGVycm9yID09IDAgJiYg c2NzaV8yYnRvdWwodnBkLT5yb3RhdGlvbl9yYXRlKSA9PSAxKQorCQlzb2Z0Yy0+ZmxhZ3MgfD0g REFfRkxBR19OT19ESVNLU09SVDsKKworCWZyZWUodnBkLCBNX1NDU0lEQSk7Cit9CisKIHN0YXRp YyBpbnQKIGRhZXJyb3IodW5pb24gY2NiICpjY2IsIHVfaW50MzJfdCBjYW1fZmxhZ3MsIHVfaW50 MzJfdCBzZW5zZV9mbGFncykKIHsKZGlmZiAtLWdpdCBhL3N5cy9jYW0vc2NzaS9zY3NpX3hwdC5j IGIvc3lzL2NhbS9zY3NpL3Njc2lfeHB0LmMKaW5kZXggYzM4MWVmYy4uMDJhZTY3OSAxMDA2NDQK LS0tIGEvc3lzL2NhbS9zY3NpL3Njc2lfeHB0LmMKKysrIGIvc3lzL2NhbS9zY3NpL3Njc2lfeHB0 LmMKQEAgLTU1Niw3ICs1NTYsNiBAQCBzdGF0aWMgY29uc3QgaW50IHNjc2lfcXVpcmtfdGFibGVf c2l6ZSA9CiBzdGF0aWMgY2FtX3N0YXR1cwlwcm9iZXJlZ2lzdGVyKHN0cnVjdCBjYW1fcGVyaXBo ICpwZXJpcGgsCiAJCQkJICAgICAgdm9pZCAqYXJnKTsKIHN0YXRpYyB2b2lkCSBwcm9iZXNjaGVk dWxlKHN0cnVjdCBjYW1fcGVyaXBoICpwcm9iZV9wZXJpcGgpOwotc3RhdGljIGludAkgZGV2aWNl X2hhc192cGQoc3RydWN0IGNhbV9lZCAqZGV2aWNlLCB1aW50OF90IHBhZ2VfaWQpOwogc3RhdGlj IHZvaWQJIHByb2Jlc3RhcnQoc3RydWN0IGNhbV9wZXJpcGggKnBlcmlwaCwgdW5pb24gY2NiICpz dGFydF9jY2IpOwogc3RhdGljIHZvaWQJIHByb2JlcmVxdWVzdGRlZmF1bHRuZWdvdGlhdGlvbihz dHJ1Y3QgY2FtX3BlcmlwaCAqcGVyaXBoKTsKIHN0YXRpYyBpbnQgICAgICAgcHJvYmVyZXF1ZXN0 YmFja29mZihzdHJ1Y3QgY2FtX3BlcmlwaCAqcGVyaXBoLApAQCAtNzA4LDIxICs3MDcsNiBAQCBw cm9iZXNjaGVkdWxlKHN0cnVjdCBjYW1fcGVyaXBoICpwZXJpcGgpCiAJeHB0X3NjaGVkdWxlKHBl cmlwaCwgQ0FNX1BSSU9SSVRZX1hQVCk7CiB9CiAKLXN0YXRpYyBpbnQKLWRldmljZV9oYXNfdnBk KHN0cnVjdCBjYW1fZWQgKmRldmljZSwgdWludDhfdCBwYWdlX2lkKQotewotCWludCBpLCBudW1f cGFnZXM7Ci0Jc3RydWN0IHNjc2lfdnBkX3N1cHBvcnRlZF9wYWdlcyAqdnBkczsKLQotCXZwZHMg PSAoc3RydWN0IHNjc2lfdnBkX3N1cHBvcnRlZF9wYWdlcyAqKWRldmljZS0+c3VwcG9ydGVkX3Zw ZHM7Ci0JbnVtX3BhZ2VzID0gZGV2aWNlLT5zdXBwb3J0ZWRfdnBkc19sZW4gLSBTVlBEX1NVUFBP UlRFRF9QQUdFU19IRFJfTEVOOwotCWZvciAoaSA9IDA7aSA8IG51bV9wYWdlcztpKyspCi0JCWlm ICh2cGRzLT5wYWdlX2xpc3RbaV0gPT0gcGFnZV9pZCkKLQkJCXJldHVybiAxOwotCi0JcmV0dXJu IDA7Ci19Ci0KIHN0YXRpYyB2b2lkCiBwcm9iZXN0YXJ0KHN0cnVjdCBjYW1fcGVyaXBoICpwZXJp cGgsIHVuaW9uIGNjYiAqc3RhcnRfY2NiKQogewpAQCAtOTEwLDExICs4OTQsOSBAQCBhZ2FpbjoK IAljYXNlIFBST0JFX0RFVklDRV9JRDoKIAl7CiAJCXN0cnVjdCBzY3NpX3ZwZF9kZXZpY2VfaWQg KmRldmlkOwotCQlzdHJ1Y3QgY2FtX2VkICpkZXZpY2U7CiAKIAkJZGV2aWQgPSBOVUxMOwotCQlk ZXZpY2UgPSBwZXJpcGgtPnBhdGgtPmRldmljZTsKLQkJaWYgKGRldmljZV9oYXNfdnBkKGRldmlj ZSwgU1ZQRF9ERVZJQ0VfSUQpKQorCQlpZiAoc2NzaV92cGRfcGFnZV9zdXBwb3J0ZWQocGVyaXBo LCBTVlBEX0RFVklDRV9JRCkpCiAJCQlkZXZpZCA9IG1hbGxvYyhTVlBEX0RFVklDRV9JRF9NQVhf U0laRSwgTV9DQU1YUFQsCiAJCQkgICAgTV9OT1dBSVQgfCBNX1pFUk8pOwogCkBAIC05NTIsNyAr OTM0LDcgQEAgYWdhaW46CiAJCQlkZXZpY2UtPnNlcmlhbF9udW1fbGVuID0gMDsKIAkJfQogCi0J CWlmIChkZXZpY2VfaGFzX3ZwZChkZXZpY2UsIFNWUERfVU5JVF9TRVJJQUxfTlVNQkVSKSkKKwkJ aWYgKHNjc2lfdnBkX3BhZ2Vfc3VwcG9ydGVkKHBlcmlwaCwgU1ZQRF9VTklUX1NFUklBTF9OVU1C RVIpKQogCQkJc2VyaWFsX2J1ZiA9IChzdHJ1Y3Qgc2NzaV92cGRfdW5pdF9zZXJpYWxfbnVtYmVy ICopCiAJCQkJbWFsbG9jKHNpemVvZigqc2VyaWFsX2J1ZiksIE1fQ0FNWFBULAogCQkJCSAgICBN X05PV0FJVHxNX1pFUk8pOwpAQCAtMzA1Niw0ICszMDM4LDMgQEAgc2NzaV9hbm5vdW5jZV9wZXJp cGgoc3RydWN0IGNhbV9wZXJpcGggKnBlcmlwaCkKIAl9CiAJcHJpbnRmKCJcbiIpOwogfQotCg== ------=_Part_106_764303500.1350496136349--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1780024492.108.1350496136356.JavaMail.root>