From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============1542959404963549688==" MIME-Version: 1.0 From: Walker, Benjamin Subject: Re: [SPDK] Is there any plan to add "quirk" mechanism to SPDK? Date: Fri, 09 Sep 2016 18:03:39 +0000 Message-ID: <1473444217.2810.17.camel@intel.com> In-Reply-To: CAAZN+A1iQPYhXMfJCrwN3eL1aeYoY6YM+nqDaWoAz8heiyNbjQ@mail.gmail.com List-ID: To: spdk@lists.01.org --===============1542959404963549688== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Currently we have no mechanism for adding device-specific quirks to the SPD= K NVMe driver. We'd certainly consider adding quirks in the same fashion as= the Linux kernel driver though, and would welcome patches that improved th= e applicability of SPDK to a wider range of (potentially out of spec) devic= es. I'm sure over time the team at Intel working on SPDK will add this, but= it is not on our immediate roadmap, so patches from the community would be= the best way to get this going. Thanks, Ben On Thu, 2016-09-08 at 14:25 +0800, Wang Weber wrote: Hi, In online FW upgrade process, the memblaze Pblaze4 NVMe device requires an = extra delay during controller reset process. The following patch email from= HGST describes the similar issue in detail. Subject: [PATCH v3] nvme/quirk: Add a delay before checking for adapter rea= diness When disabling the controller, the specification says the register NVME_REG= _CC should be written and then driver needs to wait the adapter to be ready= , which is checked by reading another register bit (NVME_CSTS_RDY). There's= a timeout validation in this checking, so in case this timeout is reached = the driver gives up and removes the adapter from the system. After a firmware activation procedure, the PCI_DEVICE(0x1c58, 0x0003) (HGST= adapter) end up being removed if we issue a reset_controller, because driv= er keeps verifying the NVME_REG_CSTS until the timeout is reached. This pat= ch adds a necessary quirk for this adapter, by introducing a delay before n= vme_wait_ready(), so the reset procedure is able to be completed. This quir= k is needed because just increasing the timeout is not enough in case of th= is adapter - the driver must wait before start reading NVME_REG_CSTS regist= er on this specific device. The standard Linux NVMe driver now has quirk =E2=80=9CNVME_QUIRK_DELAY_BEFO= RE_CHK_RDY=E2=80=9D for HGST and memblaze devices. Is there any plan to add= this to SPDK? Thanks, -Wenbo _______________________________________________ SPDK mailing list SPDK(a)lists.01.org https://lists.01.org/mailman/listinfo/spdk --===============1542959404963549688== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5Pg0KPGRpdj5DdXJyZW50 bHkgd2UgaGF2ZSBubyBtZWNoYW5pc20gZm9yIGFkZGluZyBkZXZpY2Utc3BlY2lmaWMgcXVpcmtz IHRvIHRoZSBTUERLIE5WTWUgZHJpdmVyLiBXZSdkIGNlcnRhaW5seSBjb25zaWRlciBhZGRpbmcg cXVpcmtzIGluIHRoZSBzYW1lIGZhc2hpb24gYXMgdGhlIExpbnV4IGtlcm5lbCBkcml2ZXIgdGhv dWdoLCBhbmQgd291bGQgd2VsY29tZSBwYXRjaGVzIHRoYXQgaW1wcm92ZWQgdGhlIGFwcGxpY2Fi aWxpdHkgb2YgU1BESyB0bw0KIGEgd2lkZXIgcmFuZ2Ugb2YgKHBvdGVudGlhbGx5IG91dCBvZiBz cGVjKSBkZXZpY2VzLiBJJ20gc3VyZSBvdmVyIHRpbWUgdGhlIHRlYW0gYXQgSW50ZWwgd29ya2lu ZyBvbiBTUERLIHdpbGwgYWRkIHRoaXMsIGJ1dCBpdCBpcyBub3Qgb24gb3VyIGltbWVkaWF0ZSBy b2FkbWFwLCBzbyBwYXRjaGVzIGZyb20gdGhlIGNvbW11bml0eSB3b3VsZCBiZSB0aGUgYmVzdCB3 YXkgdG8gZ2V0IHRoaXMgZ29pbmcuPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5UaGFu a3MsPC9kaXY+DQo8ZGl2PkJlbjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+T24gVGh1 LCAyMDE2LTA5LTA4IGF0IDE0OjI1ICYjNDM7MDgwMCwgV2FuZyBXZWJlciB3cm90ZTo8L2Rpdj4N CjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPg0KPGRpdiBkaXI9Imx0ciI+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIj5IaSw8c3Bhbj48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4+ Jm5ic3A7PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkluIG9ubGluZSBGVyB1cGdy YWRlIHByb2Nlc3MsIHRoZSBtZW1ibGF6ZSBQYmxhemU0IE5WTWUgZGV2aWNlIHJlcXVpcmVzIGFu IGV4dHJhIGRlbGF5IGR1cmluZyBjb250cm9sbGVyIHJlc2V0IHByb2Nlc3MuIFRoZSBmb2xsb3dp bmcgcGF0Y2ggZW1haWwgZnJvbSBIR1NUIGRlc2NyaWJlcyB0aGUgc2ltaWxhciBpc3N1ZSBpbiBk ZXRhaWwuPHNwYW4+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuPiZuYnNw Ozwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bhbj4mbmJzcDs8L3NwYW4+PC9w Pg0KPHAgY2xhc3M9ImdtYWlsLU1zb1BsYWluVGV4dCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjAuNWlu Ij48aT5TdWJqZWN0OiBbUEFUQ0ggdjNdIG52bWUvcXVpcms6IEFkZCBhIGRlbGF5IGJlZm9yZSBj aGVja2luZyBmb3IgYWRhcHRlciByZWFkaW5lc3M8c3Bhbj48L3NwYW4+PC9pPjwvcD4NCjxwIGNs YXNzPSJnbWFpbC1Nc29QbGFpblRleHQiIHN0eWxlPSJtYXJnaW4tbGVmdDowLjVpbiI+PGk+Jm5i c3A7PC9pPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1Nc29QbGFpblRleHQiIHN0eWxlPSJtYXJnaW4t bGVmdDowLjVpbiI+PGk+V2hlbiBkaXNhYmxpbmcgdGhlIGNvbnRyb2xsZXIsIHRoZSBzcGVjaWZp Y2F0aW9uIHNheXMgdGhlIHJlZ2lzdGVyIE5WTUVfUkVHX0NDIHNob3VsZCBiZSB3cml0dGVuIGFu ZCB0aGVuIGRyaXZlciBuZWVkcyB0byB3YWl0IHRoZSBhZGFwdGVyIHRvIGJlIHJlYWR5LCB3aGlj aCBpcyBjaGVja2VkIGJ5IHJlYWRpbmcgYW5vdGhlciByZWdpc3RlciBiaXQNCiAoTlZNRV9DU1RT X1JEWSkuIFRoZXJlJ3MgYSB0aW1lb3V0IHZhbGlkYXRpb24gaW4gdGhpcyBjaGVja2luZywgc28g aW4gY2FzZSB0aGlzIHRpbWVvdXQgaXMgcmVhY2hlZCB0aGUgZHJpdmVyIGdpdmVzIHVwIGFuZCBy ZW1vdmVzIHRoZSBhZGFwdGVyIGZyb20gdGhlIHN5c3RlbS48c3Bhbj48L3NwYW4+PC9pPjwvcD4N CjxwIGNsYXNzPSJnbWFpbC1Nc29QbGFpblRleHQiIHN0eWxlPSJtYXJnaW4tbGVmdDowLjVpbiI+ PGk+Jm5ic3A7PC9pPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1Nc29QbGFpblRleHQiIHN0eWxlPSJt YXJnaW4tbGVmdDowLjVpbiI+PGk+QWZ0ZXIgYSBmaXJtd2FyZSBhY3RpdmF0aW9uIHByb2NlZHVy ZSwgdGhlIFBDSV9ERVZJQ0UoMHgxYzU4LCAweDAwMDMpIChIR1NUIGFkYXB0ZXIpIGVuZCB1cCBi ZWluZyByZW1vdmVkIGlmIHdlIGlzc3VlIGEgcmVzZXRfY29udHJvbGxlciwgYmVjYXVzZSBkcml2 ZXIga2VlcHMgdmVyaWZ5aW5nIHRoZSBOVk1FX1JFR19DU1RTIHVudGlsIHRoZSB0aW1lb3V0DQog aXMgcmVhY2hlZC4gVGhpcyBwYXRjaCBhZGRzIGEgbmVjZXNzYXJ5IHF1aXJrIGZvciB0aGlzIGFk YXB0ZXIsIGJ5IGludHJvZHVjaW5nIGEgZGVsYXkgYmVmb3JlIG52bWVfd2FpdF9yZWFkeSgpLCBz byB0aGUgcmVzZXQgcHJvY2VkdXJlIGlzIGFibGUgdG8gYmUgY29tcGxldGVkLiBUaGlzIHF1aXJr IGlzIG5lZWRlZCBiZWNhdXNlIGp1c3QgaW5jcmVhc2luZyB0aGUgdGltZW91dCBpcyBub3QgZW5v dWdoIGluIGNhc2Ugb2YgdGhpcyBhZGFwdGVyDQogLSB0aGUgZHJpdmVyIG11c3Qgd2FpdCBiZWZv cmUgc3RhcnQgcmVhZGluZyBOVk1FX1JFR19DU1RTIHJlZ2lzdGVyIG9uIHRoaXMgc3BlY2lmaWMg ZGV2aWNlLjxzcGFuPjwvc3Bhbj48L2k+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4+ Jm5ic3A7PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuPiZuYnNwOzwvc3Bh bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGUgc3RhbmRhcmQgTGludXggTlZNZSBkcml2 ZXIgbm93IGhhcyBxdWlyayDigJxOVk1FX1FVSVJLX0RFTEFZX0JFRk9SRV9DSEtfUkRZ4oCdIGZv ciBIR1NUIGFuZCBtZW1ibGF6ZSBkZXZpY2VzLiBJcyB0aGVyZSBhbnkgcGxhbiB0byBhZGQgdGhp cyB0byBTUERLPzxzcGFuPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bhbj4m bmJzcDs8L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4+Jm5ic3A7PC9zcGFu PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoYW5rcyw8c3Bhbj48L3NwYW4+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+LVdlbmJvPHNwYW4+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPHByZT5f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KU1BESyBtYWls aW5nIGxpc3QNCjxhIGhyZWY9Im1haWx0bzpTUERLQGxpc3RzLjAxLm9yZyI+U1BES0BsaXN0cy4w MS5vcmc8L2E+DQo8YSBocmVmPSJodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZv L3NwZGsiPmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vc3BkazwvYT4NCjwv cHJlPg0KPC9ibG9ja3F1b3RlPg0KPC9ib2R5Pg0KPC9odG1sPg0K --===============1542959404963549688==--