From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com ([192.55.52.93]:12115 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752628AbeFDLLs (ORCPT ); Mon, 4 Jun 2018 07:11:48 -0400 From: "Dziegielewski, Marcin" To: Javier Gonzalez CC: Matias Bjorling , Jens Axboe , "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "Konopko, Igor J" Subject: RE: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0 Date: Mon, 4 Jun 2018 11:11:45 +0000 Message-ID: <9FC4315EA6BEAA449828D92CF173A10D3E3833ED@IRSMSX109.ger.corp.intel.com> References: <20180528085841.26684-1-mb@lightnvm.io> <20180528085841.26684-19-mb@lightnvm.io> <54B2CCDB-B869-4087-8AE2-2AC73381B1FF@cnexlabs.com> <9FC4315EA6BEAA449828D92CF173A10D3E382351@IRSMSX109.ger.corp.intel.com> <3B216FC2-D5EB-4A36-8946-27307DA3D1B1@cnexlabs.com> In-Reply-To: <3B216FC2-D5EB-4A36-8946-27307DA3D1B1@cnexlabs.com> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-block-owner@vger.kernel.org List-Id: linux-block@vger.kernel.org DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEphdmllciBHb256YWxleiBb bWFpbHRvOmphdmllckBjbmV4bGFicy5jb21dDQo+IFNlbnQ6IE1vbmRheSwgSnVuZSA0LCAyMDE4 IDEyOjIyIFBNDQo+IFRvOiBEemllZ2llbGV3c2tpLCBNYXJjaW4gPG1hcmNpbi5kemllZ2llbGV3 c2tpQGludGVsLmNvbT4NCj4gQ2M6IE1hdGlhcyBCasO4cmxpbmcgPG1iQGxpZ2h0bnZtLmlvPjsg SmVucyBBeGJvZSA8YXhib2VAZmIuY29tPjsgbGludXgtDQo+IGJsb2NrQHZnZXIua2VybmVsLm9y ZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgS29ub3BrbywgSWdvciBKDQo+IDxpZ29y Lmoua29ub3Brb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbR0lUIFBVTEwgMTgvMjBdIGxp Z2h0bnZtOiBwYmxrOiBoYW5kbGUgY2FzZSB3aGVuIG13X2N1bml0cw0KPiBlcXVhbHMgdG8gMA0K PiANCj4gPiBPbiA0IEp1biAyMDE4LCBhdCAxMi4wOSwgRHppZWdpZWxld3NraSwgTWFyY2luDQo+ IDxtYXJjaW4uZHppZWdpZWxld3NraUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+DQo+ID4NCj4gPiBG cmlzdCBvZiBhbGwgSSB3YW50IHRvIHNheSBzb3JyeSBmb3IgbGF0ZSByZXNwb25zZSAtIEkgd2Fz IG9uIGhvbGlkYXkuDQo+ID4NCj4gPj4gRnJvbTogSmF2aWVyIEdvbnphbGV6IFttYWlsdG86amF2 aWVyQGNuZXhsYWJzLmNvbV0NCj4gPj4gU2VudDogTW9uZGF5LCBNYXkgMjgsIDIwMTggMTowMyBQ TQ0KPiA+PiBUbzogTWF0aWFzIEJqw7hybGluZyA8bWJAbGlnaHRudm0uaW8+DQo+ID4+IENjOiBK ZW5zIEF4Ym9lIDxheGJvZUBmYi5jb20+OyBsaW51eC1ibG9ja0B2Z2VyLmtlcm5lbC5vcmc7IGxp bnV4LQ0KPiA+PiBrZXJuZWxAdmdlci5rZXJuZWwub3JnOyBEemllZ2llbGV3c2tpLCBNYXJjaW4N Cj4gPj4gPG1hcmNpbi5kemllZ2llbGV3c2tpQGludGVsLmNvbT47IEtvbm9wa28sIElnb3IgSg0K PiA+PiA8aWdvci5qLmtvbm9wa29AaW50ZWwuY29tPg0KPiA+PiBTdWJqZWN0OiBSZTogW0dJVCBQ VUxMIDE4LzIwXSBsaWdodG52bTogcGJsazogaGFuZGxlIGNhc2Ugd2hlbg0KPiA+PiBtd19jdW5p dHMgZXF1YWxzIHRvIDANCj4gPj4NCj4gPj4+IE9uIDI4IE1heSAyMDE4LCBhdCAxMC41OCwgTWF0 aWFzIEJqw7hybGluZyA8bWJAbGlnaHRudm0uaW8+IHdyb3RlOg0KPiA+Pj4NCj4gPj4+IEZyb206 IE1hcmNpbiBEemllZ2llbGV3c2tpIDxtYXJjaW4uZHppZWdpZWxld3NraUBpbnRlbC5jb20+DQo+ ID4+Pg0KPiA+Pj4gU29tZSBkZXZpY2VzIGNhbiBleHBvc2UgbXdfY3VuaXRzIGVxdWFsIHRvIDAs IGl0IGNhbiBjYXVzZSBjcmVhdGlvbg0KPiA+Pj4gb2YgdG9vIHNtYWxsIHdyaXRlIGJ1ZmZlciBh bmQgY2F1c2UgcGVyZm9ybWFuY2UgdG8gZHJvcCBvbiB3cml0ZQ0KPiA+Pj4gd29ya2xvYWRzLg0K PiA+Pj4NCj4gPj4+IFRvIGhhbmRsZSB0aGF0LCB3ZSB1c2UgdGhlIGRlZmF1bHQgdmFsdWUgZm9y IE1MQyBhbmQgYmVhY2F1c2UgaXQNCj4gPj4+IGNvdmVycyBib3RoIDEuMiBhbmQgMi4wIE9DIHNw ZWNpZmljYXRpb24sIHNldHRpbmcgdXAgbXdfY3VuaXRzIGluDQo+ID4+PiBudm1lX252bV9zZXR1 cF8xMiBmdW5jdGlvbiBpc24ndCBsb25nZXIgbmVjZXNzYXJ5Lg0KPiA+Pj4NCj4gPj4+IFNpZ25l ZC1vZmYtYnk6IE1hcmNpbiBEemllZ2llbGV3c2tpIDxtYXJjaW4uZHppZWdpZWxld3NraUBpbnRl bC5jb20+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBJZ29yIEtvbm9wa28gPGlnb3Iuai5rb25vcGtv QGludGVsLmNvbT4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IE1hdGlhcyBCasO4cmxpbmcgPG1iQGxp Z2h0bnZtLmlvPg0KPiA+Pj4gLS0tDQo+ID4+PiBkcml2ZXJzL2xpZ2h0bnZtL3BibGstaW5pdC5j IHwgMTAgKysrKysrKysrLQ0KPiA+Pj4gZHJpdmVycy9udm1lL2hvc3QvbGlnaHRudm0uYyB8ICAx IC0NCj4gPj4+IDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQ0KPiA+Pj4NCj4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2xpZ2h0bnZtL3BibGstaW5pdC5j DQo+ID4+PiBiL2RyaXZlcnMvbGlnaHRudm0vcGJsay1pbml0LmMgaW5kZXggZDY1ZDJmOTcyY2Nm Li4wZjI3Nzc0NDI2NmINCj4gPj4+IDEwMDY0NA0KPiA+Pj4gLS0tIGEvZHJpdmVycy9saWdodG52 bS9wYmxrLWluaXQuYw0KPiA+Pj4gKysrIGIvZHJpdmVycy9saWdodG52bS9wYmxrLWluaXQuYw0K PiA+Pj4gQEAgLTM1Niw3ICszNTYsMTUgQEAgc3RhdGljIGludCBwYmxrX2NvcmVfaW5pdChzdHJ1 Y3QgcGJsayAqcGJsaykNCj4gPj4+IAlhdG9taWM2NF9zZXQoJnBibGstPm5yX2ZsdXNoLCAwKTsN Cj4gPj4+IAlwYmxrLT5ucl9mbHVzaF9yc3QgPSAwOw0KPiA+Pj4NCj4gPj4+IC0JcGJsay0+cGdz X2luX2J1ZmZlciA9IGdlby0+bXdfY3VuaXRzICogZ2VvLT5hbGxfbHVuczsNCj4gPj4+ICsJaWYg KGdlby0+bXdfY3VuaXRzKSB7DQo+ID4+PiArCQlwYmxrLT5wZ3NfaW5fYnVmZmVyID0gZ2VvLT5t d19jdW5pdHMgKiBnZW8tPmFsbF9sdW5zOw0KPiA+Pj4gKwl9IGVsc2Ugew0KPiA+Pj4gKwkJcGJs ay0+cGdzX2luX2J1ZmZlciA9IChnZW8tPndzX29wdCA8PCAzKSAqIGdlby0+YWxsX2x1bnM7DQo+ ID4+PiArCQkvKg0KPiA+Pj4gKwkJICogU29tZSBkZXZpY2VzIGNhbiBleHBvc2UgbXdfY3VuaXRz IGVxdWFsIHRvIDAsIHNvIGxldCdzDQo+ID4+IHVzZQ0KPiA+Pj4gKwkJICogaGVyZSBkZWZhdWx0 IHNhZmUgdmFsdWUgZm9yIE1MQy4NCj4gPj4+ICsJCSAqLw0KPiA+Pj4gKwl9DQo+ID4+Pg0KPiA+ Pj4gCXBibGstPm1pbl93cml0ZV9wZ3MgPSBnZW8tPndzX29wdCAqIChnZW8tPmNzZWNzIC8gUEFH RV9TSVpFKTsNCj4gPj4+IAltYXhfd3JpdGVfcHBhcyA9IHBibGstPm1pbl93cml0ZV9wZ3MgKiBn ZW8tPmFsbF9sdW5zOyBkaWZmIC0tZ2l0DQo+ID4+PiBhL2RyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0 bnZtLmMgYi9kcml2ZXJzL252bWUvaG9zdC9saWdodG52bS5jIGluZGV4DQo+ID4+PiA0MTI3OWRh Nzk5ZWQuLmM3NDc3OTJkYTkxNSAxMDA2NDQNCj4gPj4+IC0tLSBhL2RyaXZlcnMvbnZtZS9ob3N0 L2xpZ2h0bnZtLmMNCj4gPj4+ICsrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0bnZtLmMNCj4g Pj4+IEBAIC0zMzgsNyArMzM4LDYgQEAgc3RhdGljIGludCBudm1lX252bV9zZXR1cF8xMihzdHJ1 Y3QNCj4gPj4gbnZtZV9udm1faWQxMg0KPiA+Pj4gKmlkLA0KPiA+Pj4NCj4gPj4+IAlnZW8tPndz X21pbiA9IHNlY19wZXJfcGc7DQo+ID4+PiAJZ2VvLT53c19vcHQgPSBzZWNfcGVyX3BnOw0KPiA+ Pj4gLQlnZW8tPm13X2N1bml0cyA9IGdlby0+d3Nfb3B0IDw8IDM7CS8qIGRlZmF1bHQgdG8gTUxD IHNhZmUgdmFsdWVzDQo+ID4+ICovDQo+ID4+PiAvKiBEbyBub3QgaW1wb3NlIHZhbHVlcyBmb3Ig bWF4aW11bSBudW1iZXIgb2Ygb3BlbiBibG9ja3MgYXMgaXQgaXMNCj4gPj4+IAkgKiB1bnNwZWNp ZmllZCBpbiAxLjIuIFVzZXJzIG9mIDEuMiBtdXN0IGJlIGF3YXJlIG9mIHRoaXMgYW5kDQo+ID4+ PiBldmVudHVhbGx5DQo+ID4+PiAtLQ0KPiA+Pj4gMi4xMS4wDQo+ID4+DQo+ID4+IEJ5IGRvaW5n IHRoaXMsIDEuMiBmdXR1cmUgdXNlcnMgKGJleW9uZCBwYmxrKSwgd2lsbCBmYWlsIHRvIGhhdmUg YQ0KPiA+PiB2YWxpZCBtd19jdW5pdHMgdmFsdWUuIEl0J3Mgb2sgdG8gZGVhbCB3aXRoIHRoZSAw IGNhc2UgaW4gcGJsaywgYnV0IEkNCj4gPj4gYmVsaWV2ZSB0aGF0IHdlIHNob3VsZCBoYXZlIHRo ZSBkZWZhdWx0IHZhbHVlIGZvciAxLjIgZWl0aGVyIHdheS4NCj4gPg0KPiA+IEknbSBub3Qgc3Vy ZS4gRnJvbSBteSB1bmRlcnN0YW5kaW5nLCBzZXR0aW5nIG9mIGRlZmF1bHQgdmFsdWUgd2FzDQo+ ID4gd29ya2Fyb3VuZCBmb3IgcGJsayBjYXNlLCBhbSBJIHJpZ2h0ID8uDQo+IA0KPiBUaGUgZGVm YXVsdCB2YWx1ZSBjb3ZlcnMgdGhlIE1MQyBjYXNlIGRpcmVjdGx5IGF0IHRoZSBsaWdodG52bSBs YXllciwgYXMNCj4gb3Bwb3NlZCB0byBkb2luZyBpdCBkaXJlY3RseSBpbiBwYmxrLiBTaW5jZSBw YmxrIGlzIHRoZSBvbmx5IHVzZXIgbm93LCB5b3UgY2FuDQo+IGFyZ3VlIHRoYXQgYWxsIGNoYW5n ZXMgaW4gdGhlIGxpZ2h0bnZtIGxheWVyIGFyZSB0byBzb2x2ZSBwYmxrIGlzc3VlcywgYnV0IHRo ZQ0KPiBpZGVhIGlzIHRoYXQgdGhlIGdlb21ldHJ5IHNob3VsZCBiZSBnZW5lcmljLg0KPiANCj4g PiBJbiBteSBvcGluaW9uIGFueSB1c2VyIG9mIDEuMg0KPiA+IHNwZWMgc2hvdWxkIGJlIGF3YXJl IHRoYXQgdGhlcmUgaXMgbm90IG13X2N1bml0IHZhbHVlLiBGcm9tIG15IHBvaW50DQo+ID4gb2Yg dmlldywgbGVhdmluZyBoZXJlIDAgKGFuZCBkZWNpc2lvbiB3aGF0IGRvIHdpdGggaXQgdG8gbGln aHRudm0NCj4gPiB1c2VyKSBpcyBtb3JlIHNhZmVyIHdheSwgYnV0IG1heWJlIEknbSB3cm9uZy4g SSBiZWxpZXZlIHRoYXQgaXQgaXMNCj4gPiB0b3BpYyB0byB3aWRlciBkaXNjdXNzaW9uIHdpdGgg bWFpbnRhaW5lcnMuDQo+ID4NCj4gDQo+IDEuMiBhbmQgMi4wIGhhdmUgZGlmZmVyZW50IGdlb21l dHJpZXMsIGJ1dCB3aGVuIHdlIGRlc2lnbmVkIHRoZSBjb21tb24NCj4gbnZtX2dlbyBzdHJ1Y3R1 cmUsIHRoZSBpZGVhIHdhcyB0byBhYnN0cmFjdCBib3RoIHNwZWNzIGFuZCBhbGxvdyB0aGUgdXBw ZXINCj4gbGF5ZXJzIHRvIHVzZSB0aGUgZ2VvbWV0cnkgdHJhbnNwYXJlbnRseS4NCj4gDQo+IFNw ZWNpZmljYWxseSBpbiBwYmxrLCBJIHdvdWxkIHByZWZlciB0byBrZWVwIGl0IGluIHN1Y2ggYSB3 YXkgdGhhdCB3ZSBkb24ndCBuZWVkDQo+IHRvIG1lZGlhIHNwZWNpZmljIHBvbGljaWVzIChlLmcu LCBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIE1MQyBtZW1vcmllcyksIGFzIGENCj4gZ2VuZXJhbCBk ZXNpZ24gcHJpbmNpcGxlLiBXZSBhbHJlYWR5IGRvIHNvbWUgZ2VvbWV0cnkgdmVyc2lvbiBjaGVj a3MgdG8NCj4gYXZvaWQgZGVyZWZlcmVuY2luZyB1bm5lY2Vzc2FyeSBwb2ludGVycyBvbiB0aGUg ZmFzdCBwYXRoLCB3aGljaCBJIHdvdWxkDQo+IGV2ZW50dWFsbHkgbGlrZSB0byByZW1vdmUuDQo+ IA0KDQpPaywgbm93IEkgdW5kZXJzdGFuZCB5b3VyIHBvaW50IG9mIHZpZXcgYW5kIGFncmVlIHdp dGggdGhhdCwgSSB3aWxsIHByZXBhcmUgc2Vjb25kIHZlcnNpb24gb2YgdGhpcyBwYXRjaCB3aXRo b3V0IHRoaXMgY2hhbmdlLiBUaGFua3MgZm9yIHRoZSBjbGFyaWZpY2F0aW9uLg0KDQo+ID4+IEEg bW9yZSBnZW5lcmljIHdheSBvZiBkb2luZyB0aGlzIHdvdWxkIGJlIHRvIGhhdmUgYSBkZWZhdWx0 IHZhbHVlIGZvcg0KPiA+PiAyLjAgdG9vLCBpbiBjYXNlIG13X2N1bml0cyBpcyByZXBvcnRlZCBh cyAwLg0KPiA+DQo+ID4gU2luY2UgMCBpcyBjb3JyZWN0IHZhbHVlIGFuZCB1c2VycyBjYW4gbWFr ZSBkaWZmZXJlbnQgZGVjaXNpb25zIGJhc2VkDQo+ID4gb24gaXQsIEkgdGhpbmsgd2Ugc2hvdWxk bid0IG92ZXJ3cml0ZSBpdCBieSBkZWZhdWx0IHZhbHVlLiBJcyBpdCBtYWtlDQo+ID4gc2Vuc2U/ DQo+IA0KPiBIZXJlIEkgbWVhbnQgYXQgYSBwYmxrIGxldmVsIC0gSSBzaG91bGQgaGF2ZSBzcGVj aWZpZWQgaXQuIEF0IHRoZSBnZW9tZXRyeQ0KPiBsZXZlbCwgd2Ugc2hvdWxkIG5vdCBjaGFuZ2Ug aXQuDQo+IA0KPiBUaGUgY2FzZSBJIGFtIHRoaW5raW5nIGlzIGlmIG13X2N1aW50cyByZXBvaW50 cyAwLCBidXQgd3NfbWluID4gMC4gSW4gdGhpcyBjYXNlLA0KPiB3ZSBzdGlsbCBuZWVkIGEgaG9z dCBzaWRlIGJ1ZmZlciB0byBzZXJ2ZSA8IHdzX21pbiBJL09zLCBldmVuIHRob3VnaCB0aGUNCj4g ZGV2aWNlIGRvZXMgbm90IHJlcXVpcmUgdGhlIGJ1ZmZlciB0byBndWFyYW50ZWUgcmVhZHMuDQoN Ck9oLCBvayBub3cgd2UgYXJlIG9uIHRoZSBzYW1lIHBhZ2UuIEluIHRoaXMgcGF0Y2ggSSB3YXMg dHJ5aW5nIHRvIGFkZHJlc3Mgc3VjaCBjYXNlLiBEbyB5b3UgaGF2ZSBvdGhlciBpZGVhIGhvdyB0 byBkbyBpdCBvciBoZXJlIGFyZSB5b3UgdGhpbmtpbmcgb25seSBvbiB2YWx1ZSBvZiBkZWZhdWx0 IHZhcmlhYmxlPw0KDQo+IA0KPiA+PiBKYXZpZXINCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBNYXJj aW4NCj4gDQo+IEphdmllcg0KVGhhbmtzLA0KTWFyY2luDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752660AbeFDLLt (ORCPT ); Mon, 4 Jun 2018 07:11:49 -0400 Received: from mga11.intel.com ([192.55.52.93]:12115 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752628AbeFDLLs (ORCPT ); Mon, 4 Jun 2018 07:11:48 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,476,1520924400"; d="scan'208";a="234446126" From: "Dziegielewski, Marcin" To: Javier Gonzalez CC: Matias Bjorling , Jens Axboe , "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "Konopko, Igor J" Subject: RE: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0 Thread-Topic: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0 Thread-Index: AQHT9mJJ9Oeppdx29kSrRWdMkH84gaRE6UWAgArugQCAAAZRAIAAExfA Date: Mon, 4 Jun 2018 11:11:45 +0000 Message-ID: <9FC4315EA6BEAA449828D92CF173A10D3E3833ED@IRSMSX109.ger.corp.intel.com> References: <20180528085841.26684-1-mb@lightnvm.io> <20180528085841.26684-19-mb@lightnvm.io> <54B2CCDB-B869-4087-8AE2-2AC73381B1FF@cnexlabs.com> <9FC4315EA6BEAA449828D92CF173A10D3E382351@IRSMSX109.ger.corp.intel.com> <3B216FC2-D5EB-4A36-8946-27307DA3D1B1@cnexlabs.com> In-Reply-To: <3B216FC2-D5EB-4A36-8946-27307DA3D1B1@cnexlabs.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMTczYjhkNWMtMjY1Yy00NTNkLWEzMDctODM0ZjFiNmYyZmEyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiZ2hpWTI1amVqekthVmU4Mnh1a0UyKzFqNVgrYlJQRnNCWnFnajdQNGNlVjJkVzI2alNXUHFuNWpBXC9oTm52N08ifQ== x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id w54BBskL007873 > -----Original Message----- > From: Javier Gonzalez [mailto:javier@cnexlabs.com] > Sent: Monday, June 4, 2018 12:22 PM > To: Dziegielewski, Marcin > Cc: Matias Bjørling ; Jens Axboe ; linux- > block@vger.kernel.org; linux-kernel@vger.kernel.org; Konopko, Igor J > > Subject: Re: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits > equals to 0 > > > On 4 Jun 2018, at 12.09, Dziegielewski, Marcin > wrote: > > > > > > Frist of all I want to say sorry for late response - I was on holiday. > > > >> From: Javier Gonzalez [mailto:javier@cnexlabs.com] > >> Sent: Monday, May 28, 2018 1:03 PM > >> To: Matias Bjørling > >> Cc: Jens Axboe ; linux-block@vger.kernel.org; linux- > >> kernel@vger.kernel.org; Dziegielewski, Marcin > >> ; Konopko, Igor J > >> > >> Subject: Re: [GIT PULL 18/20] lightnvm: pblk: handle case when > >> mw_cunits equals to 0 > >> > >>> On 28 May 2018, at 10.58, Matias Bjørling wrote: > >>> > >>> From: Marcin Dziegielewski > >>> > >>> Some devices can expose mw_cunits equal to 0, it can cause creation > >>> of too small write buffer and cause performance to drop on write > >>> workloads. > >>> > >>> To handle that, we use the default value for MLC and beacause it > >>> covers both 1.2 and 2.0 OC specification, setting up mw_cunits in > >>> nvme_nvm_setup_12 function isn't longer necessary. > >>> > >>> Signed-off-by: Marcin Dziegielewski > >>> Signed-off-by: Igor Konopko > >>> Signed-off-by: Matias Bjørling > >>> --- > >>> drivers/lightnvm/pblk-init.c | 10 +++++++++- > >>> drivers/nvme/host/lightnvm.c | 1 - > >>> 2 files changed, 9 insertions(+), 2 deletions(-) > >>> > >>> diff --git a/drivers/lightnvm/pblk-init.c > >>> b/drivers/lightnvm/pblk-init.c index d65d2f972ccf..0f277744266b > >>> 100644 > >>> --- a/drivers/lightnvm/pblk-init.c > >>> +++ b/drivers/lightnvm/pblk-init.c > >>> @@ -356,7 +356,15 @@ static int pblk_core_init(struct pblk *pblk) > >>> atomic64_set(&pblk->nr_flush, 0); > >>> pblk->nr_flush_rst = 0; > >>> > >>> - pblk->pgs_in_buffer = geo->mw_cunits * geo->all_luns; > >>> + if (geo->mw_cunits) { > >>> + pblk->pgs_in_buffer = geo->mw_cunits * geo->all_luns; > >>> + } else { > >>> + pblk->pgs_in_buffer = (geo->ws_opt << 3) * geo->all_luns; > >>> + /* > >>> + * Some devices can expose mw_cunits equal to 0, so let's > >> use > >>> + * here default safe value for MLC. > >>> + */ > >>> + } > >>> > >>> pblk->min_write_pgs = geo->ws_opt * (geo->csecs / PAGE_SIZE); > >>> max_write_ppas = pblk->min_write_pgs * geo->all_luns; diff --git > >>> a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c index > >>> 41279da799ed..c747792da915 100644 > >>> --- a/drivers/nvme/host/lightnvm.c > >>> +++ b/drivers/nvme/host/lightnvm.c > >>> @@ -338,7 +338,6 @@ static int nvme_nvm_setup_12(struct > >> nvme_nvm_id12 > >>> *id, > >>> > >>> geo->ws_min = sec_per_pg; > >>> geo->ws_opt = sec_per_pg; > >>> - geo->mw_cunits = geo->ws_opt << 3; /* default to MLC safe values > >> */ > >>> /* Do not impose values for maximum number of open blocks as it is > >>> * unspecified in 1.2. Users of 1.2 must be aware of this and > >>> eventually > >>> -- > >>> 2.11.0 > >> > >> By doing this, 1.2 future users (beyond pblk), will fail to have a > >> valid mw_cunits value. It's ok to deal with the 0 case in pblk, but I > >> believe that we should have the default value for 1.2 either way. > > > > I'm not sure. From my understanding, setting of default value was > > workaround for pblk case, am I right ?. > > The default value covers the MLC case directly at the lightnvm layer, as > opposed to doing it directly in pblk. Since pblk is the only user now, you can > argue that all changes in the lightnvm layer are to solve pblk issues, but the > idea is that the geometry should be generic. > > > In my opinion any user of 1.2 > > spec should be aware that there is not mw_cunit value. From my point > > of view, leaving here 0 (and decision what do with it to lightnvm > > user) is more safer way, but maybe I'm wrong. I believe that it is > > topic to wider discussion with maintainers. > > > > 1.2 and 2.0 have different geometries, but when we designed the common > nvm_geo structure, the idea was to abstract both specs and allow the upper > layers to use the geometry transparently. > > Specifically in pblk, I would prefer to keep it in such a way that we don't need > to media specific policies (e.g., set default values for MLC memories), as a > general design principle. We already do some geometry version checks to > avoid dereferencing unnecessary pointers on the fast path, which I would > eventually like to remove. > Ok, now I understand your point of view and agree with that, I will prepare second version of this patch without this change. Thanks for the clarification. > >> A more generic way of doing this would be to have a default value for > >> 2.0 too, in case mw_cunits is reported as 0. > > > > Since 0 is correct value and users can make different decisions based > > on it, I think we shouldn't overwrite it by default value. Is it make > > sense? > > Here I meant at a pblk level - I should have specified it. At the geometry > level, we should not change it. > > The case I am thinking is if mw_cuints repoints 0, but ws_min > 0. In this case, > we still need a host side buffer to serve < ws_min I/Os, even though the > device does not require the buffer to guarantee reads. Oh, ok now we are on the same page. In this patch I was trying to address such case. Do you have other idea how to do it or here are you thinking only on value of default variable? > > >> Javier > > > > Thanks, > > Marcin > > Javier Thanks, Marcin