All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dziegielewski, Marcin" <marcin.dziegielewski@intel.com>
To: Javier Gonzalez <javier@cnexlabs.com>
Cc: Matias Bjorling <mb@lightnvm.io>, Jens Axboe <axboe@fb.com>,
	"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Konopko, Igor J" <igor.j.konopko@intel.com>
Subject: RE: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0
Date: Mon, 4 Jun 2018 17:17:53 +0000	[thread overview]
Message-ID: <9FC4315EA6BEAA449828D92CF173A10D3E38365C@IRSMSX109.ger.corp.intel.com> (raw)
In-Reply-To: <3A87DF02-6471-4B92-9DDC-4E0FD98249A4@cnexlabs.com>

PiBGcm9tOiBKYXZpZXIgR29uemFsZXogW21haWx0bzpqYXZpZXJAY25leGxhYnMuY29tXQ0KPiBT
ZW50OiBNb25kYXksIEp1bmUgNCwgMjAxOCAxOjE2IFBNDQo+IFRvOiBEemllZ2llbGV3c2tpLCBN
YXJjaW4gPG1hcmNpbi5kemllZ2llbGV3c2tpQGludGVsLmNvbT4NCj4gQ2M6IE1hdGlhcyBCasO4
cmxpbmcgPG1iQGxpZ2h0bnZtLmlvPjsgSmVucyBBeGJvZSA8YXhib2VAZmIuY29tPjsgbGludXgt
DQo+IGJsb2NrQHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsg
S29ub3BrbywgSWdvciBKDQo+IDxpZ29yLmoua29ub3Brb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6
IFJlOiBbR0lUIFBVTEwgMTgvMjBdIGxpZ2h0bnZtOiBwYmxrOiBoYW5kbGUgY2FzZSB3aGVuIG13
X2N1bml0cw0KPiBlcXVhbHMgdG8gMA0KPiANCj4gDQo+ID4gT24gNCBKdW4gMjAxOCwgYXQgMTMu
MTEsIER6aWVnaWVsZXdza2ksIE1hcmNpbg0KPiA8bWFyY2luLmR6aWVnaWVsZXdza2lAaW50ZWwu
Y29tPiB3cm90ZToNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBG
cm9tOiBKYXZpZXIgR29uemFsZXogW21haWx0bzpqYXZpZXJAY25leGxhYnMuY29tXQ0KPiA+PiBT
ZW50OiBNb25kYXksIEp1bmUgNCwgMjAxOCAxMjoyMiBQTQ0KPiA+PiBUbzogRHppZWdpZWxld3Nr
aSwgTWFyY2luIDxtYXJjaW4uZHppZWdpZWxld3NraUBpbnRlbC5jb20+DQo+ID4+IENjOiBNYXRp
YXMgQmrDuHJsaW5nIDxtYkBsaWdodG52bS5pbz47IEplbnMgQXhib2UgPGF4Ym9lQGZiLmNvbT47
DQo+ID4+IGxpbnV4LSBibG9ja0B2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtl
cm5lbC5vcmc7IEtvbm9wa28sDQo+ID4+IElnb3IgSiA8aWdvci5qLmtvbm9wa29AaW50ZWwuY29t
Pg0KPiA+PiBTdWJqZWN0OiBSZTogW0dJVCBQVUxMIDE4LzIwXSBsaWdodG52bTogcGJsazogaGFu
ZGxlIGNhc2Ugd2hlbg0KPiA+PiBtd19jdW5pdHMgZXF1YWxzIHRvIDANCj4gPj4NCj4gPj4+IE9u
IDQgSnVuIDIwMTgsIGF0IDEyLjA5LCBEemllZ2llbGV3c2tpLCBNYXJjaW4NCj4gPj4gPG1hcmNp
bi5kemllZ2llbGV3c2tpQGludGVsLmNvbT4gd3JvdGU6DQo+ID4+PiBGcmlzdCBvZiBhbGwgSSB3
YW50IHRvIHNheSBzb3JyeSBmb3IgbGF0ZSByZXNwb25zZSAtIEkgd2FzIG9uIGhvbGlkYXkuDQo+
ID4+Pg0KPiA+Pj4+IEZyb206IEphdmllciBHb256YWxleiBbbWFpbHRvOmphdmllckBjbmV4bGFi
cy5jb21dDQo+ID4+Pj4gU2VudDogTW9uZGF5LCBNYXkgMjgsIDIwMTggMTowMyBQTQ0KPiA+Pj4+
IFRvOiBNYXRpYXMgQmrDuHJsaW5nIDxtYkBsaWdodG52bS5pbz4NCj4gPj4+PiBDYzogSmVucyBB
eGJvZSA8YXhib2VAZmIuY29tPjsgbGludXgtYmxvY2tAdmdlci5rZXJuZWwub3JnOyBsaW51eC0N
Cj4gPj4+PiBrZXJuZWxAdmdlci5rZXJuZWwub3JnOyBEemllZ2llbGV3c2tpLCBNYXJjaW4NCj4g
Pj4+PiA8bWFyY2luLmR6aWVnaWVsZXdza2lAaW50ZWwuY29tPjsgS29ub3BrbywgSWdvciBKDQo+
ID4+Pj4gPGlnb3Iuai5rb25vcGtvQGludGVsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSZTogW0dJ
VCBQVUxMIDE4LzIwXSBsaWdodG52bTogcGJsazogaGFuZGxlIGNhc2Ugd2hlbg0KPiA+Pj4+IG13
X2N1bml0cyBlcXVhbHMgdG8gMA0KPiA+Pj4+DQo+ID4+Pj4+IE9uIDI4IE1heSAyMDE4LCBhdCAx
MC41OCwgTWF0aWFzIEJqw7hybGluZyA8bWJAbGlnaHRudm0uaW8+IHdyb3RlOg0KPiA+Pj4+Pg0K
PiA+Pj4+PiBGcm9tOiBNYXJjaW4gRHppZWdpZWxld3NraSA8bWFyY2luLmR6aWVnaWVsZXdza2lA
aW50ZWwuY29tPg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTb21lIGRldmljZXMgY2FuIGV4cG9zZSBtd19j
dW5pdHMgZXF1YWwgdG8gMCwgaXQgY2FuIGNhdXNlDQo+ID4+Pj4+IGNyZWF0aW9uIG9mIHRvbyBz
bWFsbCB3cml0ZSBidWZmZXIgYW5kIGNhdXNlIHBlcmZvcm1hbmNlIHRvIGRyb3ANCj4gPj4+Pj4g
b24gd3JpdGUgd29ya2xvYWRzLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUbyBoYW5kbGUgdGhhdCwgd2Ug
dXNlIHRoZSBkZWZhdWx0IHZhbHVlIGZvciBNTEMgYW5kIGJlYWNhdXNlIGl0DQo+ID4+Pj4+IGNv
dmVycyBib3RoIDEuMiBhbmQgMi4wIE9DIHNwZWNpZmljYXRpb24sIHNldHRpbmcgdXAgbXdfY3Vu
aXRzIGluDQo+ID4+Pj4+IG52bWVfbnZtX3NldHVwXzEyIGZ1bmN0aW9uIGlzbid0IGxvbmdlciBu
ZWNlc3NhcnkuDQo+ID4+Pj4+DQo+ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IE1hcmNpbiBEemllZ2ll
bGV3c2tpDQo+ID4+Pj4+IDxtYXJjaW4uZHppZWdpZWxld3NraUBpbnRlbC5jb20+DQo+ID4+Pj4+
IFNpZ25lZC1vZmYtYnk6IElnb3IgS29ub3BrbyA8aWdvci5qLmtvbm9wa29AaW50ZWwuY29tPg0K
PiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBNYXRpYXMgQmrDuHJsaW5nIDxtYkBsaWdodG52bS5pbz4N
Cj4gPj4+Pj4gLS0tDQo+ID4+Pj4+IGRyaXZlcnMvbGlnaHRudm0vcGJsay1pbml0LmMgfCAxMCAr
KysrKysrKystDQo+ID4+Pj4+IGRyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0bnZtLmMgfCAgMSAtDQo+
ID4+Pj4+IDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0K
PiA+Pj4+Pg0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9saWdodG52bS9wYmxrLWluaXQu
Yw0KPiA+Pj4+PiBiL2RyaXZlcnMvbGlnaHRudm0vcGJsay1pbml0LmMgaW5kZXggZDY1ZDJmOTcy
Y2NmLi4wZjI3Nzc0NDI2NmINCj4gPj4+Pj4gMTAwNjQ0DQo+ID4+Pj4+IC0tLSBhL2RyaXZlcnMv
bGlnaHRudm0vcGJsay1pbml0LmMNCj4gPj4+Pj4gKysrIGIvZHJpdmVycy9saWdodG52bS9wYmxr
LWluaXQuYw0KPiA+Pj4+PiBAQCAtMzU2LDcgKzM1NiwxNSBAQCBzdGF0aWMgaW50IHBibGtfY29y
ZV9pbml0KHN0cnVjdCBwYmxrICpwYmxrKQ0KPiA+Pj4+PiAJYXRvbWljNjRfc2V0KCZwYmxrLT5u
cl9mbHVzaCwgMCk7DQo+ID4+Pj4+IAlwYmxrLT5ucl9mbHVzaF9yc3QgPSAwOw0KPiA+Pj4+Pg0K
PiA+Pj4+PiAtCXBibGstPnBnc19pbl9idWZmZXIgPSBnZW8tPm13X2N1bml0cyAqIGdlby0+YWxs
X2x1bnM7DQo+ID4+Pj4+ICsJaWYgKGdlby0+bXdfY3VuaXRzKSB7DQo+ID4+Pj4+ICsJCXBibGst
PnBnc19pbl9idWZmZXIgPSBnZW8tPm13X2N1bml0cyAqIGdlby0NCj4gPmFsbF9sdW5zOw0KPiA+
Pj4+PiArCX0gZWxzZSB7DQo+ID4+Pj4+ICsJCXBibGstPnBnc19pbl9idWZmZXIgPSAoZ2VvLT53
c19vcHQgPDwgMykgKiBnZW8tDQo+ID5hbGxfbHVuczsNCj4gPj4+Pj4gKwkJLyoNCj4gPj4+Pj4g
KwkJICogU29tZSBkZXZpY2VzIGNhbiBleHBvc2UgbXdfY3VuaXRzIGVxdWFsIHRvIDAsIHNvDQo+
IGxldCdzDQo+ID4+Pj4gdXNlDQo+ID4+Pj4+ICsJCSAqIGhlcmUgZGVmYXVsdCBzYWZlIHZhbHVl
IGZvciBNTEMuDQo+ID4+Pj4+ICsJCSAqLw0KPiA+Pj4+PiArCX0NCj4gPj4+Pj4NCj4gPj4+Pj4g
CXBibGstPm1pbl93cml0ZV9wZ3MgPSBnZW8tPndzX29wdCAqIChnZW8tPmNzZWNzIC8gUEFHRV9T
SVpFKTsNCj4gPj4+Pj4gCW1heF93cml0ZV9wcGFzID0gcGJsay0+bWluX3dyaXRlX3BncyAqIGdl
by0+YWxsX2x1bnM7IGRpZmYgLS1naXQNCj4gPj4+Pj4gYS9kcml2ZXJzL252bWUvaG9zdC9saWdo
dG52bS5jIGIvZHJpdmVycy9udm1lL2hvc3QvbGlnaHRudm0uYw0KPiA+Pj4+PiBpbmRleA0KPiA+
Pj4+PiA0MTI3OWRhNzk5ZWQuLmM3NDc3OTJkYTkxNSAxMDA2NDQNCj4gPj4+Pj4gLS0tIGEvZHJp
dmVycy9udm1lL2hvc3QvbGlnaHRudm0uYw0KPiA+Pj4+PiArKysgYi9kcml2ZXJzL252bWUvaG9z
dC9saWdodG52bS5jDQo+ID4+Pj4+IEBAIC0zMzgsNyArMzM4LDYgQEAgc3RhdGljIGludCBudm1l
X252bV9zZXR1cF8xMihzdHJ1Y3QNCj4gPj4+PiBudm1lX252bV9pZDEyDQo+ID4+Pj4+ICppZCwN
Cj4gPj4+Pj4NCj4gPj4+Pj4gCWdlby0+d3NfbWluID0gc2VjX3Blcl9wZzsNCj4gPj4+Pj4gCWdl
by0+d3Nfb3B0ID0gc2VjX3Blcl9wZzsNCj4gPj4+Pj4gLQlnZW8tPm13X2N1bml0cyA9IGdlby0+
d3Nfb3B0IDw8IDM7CS8qIGRlZmF1bHQgdG8gTUxDDQo+IHNhZmUgdmFsdWVzDQo+ID4+Pj4gKi8N
Cj4gPj4+Pj4gLyogRG8gbm90IGltcG9zZSB2YWx1ZXMgZm9yIG1heGltdW0gbnVtYmVyIG9mIG9w
ZW4gYmxvY2tzIGFzIGl0IGlzDQo+ID4+Pj4+IAkgKiB1bnNwZWNpZmllZCBpbiAxLjIuIFVzZXJz
IG9mIDEuMiBtdXN0IGJlIGF3YXJlIG9mIHRoaXMgYW5kDQo+ID4+Pj4+IGV2ZW50dWFsbHkNCj4g
Pj4+Pj4gLS0NCj4gPj4+Pj4gMi4xMS4wDQo+ID4+Pj4NCj4gPj4+PiBCeSBkb2luZyB0aGlzLCAx
LjIgZnV0dXJlIHVzZXJzIChiZXlvbmQgcGJsayksIHdpbGwgZmFpbCB0byBoYXZlIGENCj4gPj4+
PiB2YWxpZCBtd19jdW5pdHMgdmFsdWUuIEl0J3Mgb2sgdG8gZGVhbCB3aXRoIHRoZSAwIGNhc2Ug
aW4gcGJsaywgYnV0DQo+ID4+Pj4gSSBiZWxpZXZlIHRoYXQgd2Ugc2hvdWxkIGhhdmUgdGhlIGRl
ZmF1bHQgdmFsdWUgZm9yIDEuMiBlaXRoZXIgd2F5Lg0KPiA+Pj4NCj4gPj4+IEknbSBub3Qgc3Vy
ZS4gRnJvbSBteSB1bmRlcnN0YW5kaW5nLCBzZXR0aW5nIG9mIGRlZmF1bHQgdmFsdWUgd2FzDQo+
ID4+PiB3b3JrYXJvdW5kIGZvciBwYmxrIGNhc2UsIGFtIEkgcmlnaHQgPy4NCj4gPj4NCj4gPj4g
VGhlIGRlZmF1bHQgdmFsdWUgY292ZXJzIHRoZSBNTEMgY2FzZSBkaXJlY3RseSBhdCB0aGUgbGln
aHRudm0gbGF5ZXIsDQo+ID4+IGFzIG9wcG9zZWQgdG8gZG9pbmcgaXQgZGlyZWN0bHkgaW4gcGJs
ay4gU2luY2UgcGJsayBpcyB0aGUgb25seSB1c2VyDQo+ID4+IG5vdywgeW91IGNhbiBhcmd1ZSB0
aGF0IGFsbCBjaGFuZ2VzIGluIHRoZSBsaWdodG52bSBsYXllciBhcmUgdG8NCj4gPj4gc29sdmUg
cGJsayBpc3N1ZXMsIGJ1dCB0aGUgaWRlYSBpcyB0aGF0IHRoZSBnZW9tZXRyeSBzaG91bGQgYmUg
Z2VuZXJpYy4NCj4gPj4NCj4gPj4+IEluIG15IG9waW5pb24gYW55IHVzZXIgb2YgMS4yDQo+ID4+
PiBzcGVjIHNob3VsZCBiZSBhd2FyZSB0aGF0IHRoZXJlIGlzIG5vdCBtd19jdW5pdCB2YWx1ZS4g
RnJvbSBteSBwb2ludA0KPiA+Pj4gb2YgdmlldywgbGVhdmluZyBoZXJlIDAgKGFuZCBkZWNpc2lv
biB3aGF0IGRvIHdpdGggaXQgdG8gbGlnaHRudm0NCj4gPj4+IHVzZXIpIGlzIG1vcmUgc2FmZXIg
d2F5LCBidXQgbWF5YmUgSSdtIHdyb25nLiBJIGJlbGlldmUgdGhhdCBpdCBpcw0KPiA+Pj4gdG9w
aWMgdG8gd2lkZXIgZGlzY3Vzc2lvbiB3aXRoIG1haW50YWluZXJzLg0KPiA+Pg0KPiA+PiAxLjIg
YW5kIDIuMCBoYXZlIGRpZmZlcmVudCBnZW9tZXRyaWVzLCBidXQgd2hlbiB3ZSBkZXNpZ25lZCB0
aGUNCj4gPj4gY29tbW9uIG52bV9nZW8gc3RydWN0dXJlLCB0aGUgaWRlYSB3YXMgdG8gYWJzdHJh
Y3QgYm90aCBzcGVjcyBhbmQNCj4gPj4gYWxsb3cgdGhlIHVwcGVyIGxheWVycyB0byB1c2UgdGhl
IGdlb21ldHJ5IHRyYW5zcGFyZW50bHkuDQo+ID4+DQo+ID4+IFNwZWNpZmljYWxseSBpbiBwYmxr
LCBJIHdvdWxkIHByZWZlciB0byBrZWVwIGl0IGluIHN1Y2ggYSB3YXkgdGhhdCB3ZQ0KPiA+PiBk
b24ndCBuZWVkIHRvIG1lZGlhIHNwZWNpZmljIHBvbGljaWVzIChlLmcuLCBzZXQgZGVmYXVsdCB2
YWx1ZXMgZm9yDQo+ID4+IE1MQyBtZW1vcmllcyksIGFzIGEgZ2VuZXJhbCBkZXNpZ24gcHJpbmNp
cGxlLiBXZSBhbHJlYWR5IGRvIHNvbWUNCj4gPj4gZ2VvbWV0cnkgdmVyc2lvbiBjaGVja3MgdG8g
YXZvaWQgZGVyZWZlcmVuY2luZyB1bm5lY2Vzc2FyeSBwb2ludGVycw0KPiA+PiBvbiB0aGUgZmFz
dCBwYXRoLCB3aGljaCBJIHdvdWxkIGV2ZW50dWFsbHkgbGlrZSB0byByZW1vdmUuDQo+ID4NCj4g
PiBPaywgbm93IEkgdW5kZXJzdGFuZCB5b3VyIHBvaW50IG9mIHZpZXcgYW5kIGFncmVlIHdpdGgg
dGhhdCwgSSB3aWxsDQo+ID4gcHJlcGFyZSBzZWNvbmQgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIHdp
dGhvdXQgdGhpcyBjaGFuZ2UuDQo+IA0KPiBTb3VuZHMgZ29vZC4NCj4gDQo+ID4gVGhhbmtzIGZv
cg0KPiA+IHRoZSBjbGFyaWZpY2F0aW9uLg0KPiA+DQo+IA0KPiBTdXJlIDopDQo+IA0KPiA+Pj4+
IEEgbW9yZSBnZW5lcmljIHdheSBvZiBkb2luZyB0aGlzIHdvdWxkIGJlIHRvIGhhdmUgYSBkZWZh
dWx0IHZhbHVlDQo+ID4+Pj4gZm9yDQo+ID4+Pj4gMi4wIHRvbywgaW4gY2FzZSBtd19jdW5pdHMg
aXMgcmVwb3J0ZWQgYXMgMC4NCj4gPj4+DQo+ID4+PiBTaW5jZSAwIGlzIGNvcnJlY3QgdmFsdWUg
YW5kIHVzZXJzIGNhbiBtYWtlIGRpZmZlcmVudCBkZWNpc2lvbnMNCj4gPj4+IGJhc2VkIG9uIGl0
LCBJIHRoaW5rIHdlIHNob3VsZG4ndCBvdmVyd3JpdGUgaXQgYnkgZGVmYXVsdCB2YWx1ZS4gSXMN
Cj4gPj4+IGl0IG1ha2Ugc2Vuc2U/DQo+ID4+DQo+ID4+IEhlcmUgSSBtZWFudCBhdCBhIHBibGsg
bGV2ZWwgLSBJIHNob3VsZCBoYXZlIHNwZWNpZmllZCBpdC4gQXQgdGhlDQo+ID4+IGdlb21ldHJ5
IGxldmVsLCB3ZSBzaG91bGQgbm90IGNoYW5nZSBpdC4NCj4gPj4NCj4gPj4gVGhlIGNhc2UgSSBh
bSB0aGlua2luZyBpcyBpZiBtd19jdWludHMgcmVwb2ludHMgMCwgYnV0IHdzX21pbiA+IDAuIElu
DQo+ID4+IHRoaXMgY2FzZSwgd2Ugc3RpbGwgbmVlZCBhIGhvc3Qgc2lkZSBidWZmZXIgdG8gc2Vy
dmUgPCB3c19taW4gSS9PcywNCj4gPj4gZXZlbiB0aG91Z2ggdGhlIGRldmljZSBkb2VzIG5vdCBy
ZXF1aXJlIHRoZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJlYWRzLg0KPiA+DQo+ID4gT2gsIG9rIG5v
dyB3ZSBhcmUgb24gdGhlIHNhbWUgcGFnZS4gSW4gdGhpcyBwYXRjaCBJIHdhcyB0cnlpbmcgdG8N
Cj4gPiBhZGRyZXNzIHN1Y2ggY2FzZS4gRG8geW91IGhhdmUgb3RoZXIgaWRlYSBob3cgdG8gZG8g
aXQgb3IgaGVyZSBhcmUgeW91DQo+ID4gdGhpbmtpbmcgb25seSBvbiB2YWx1ZSBvZiBkZWZhdWx0
IHZhcmlhYmxlPw0KPiANCj4gSWYgZG9pbmcgdGhpcywgSSBndWVzcyB0aGF0IHNvbWV0aGluZyBp
biB0aGUgbGluZSBvZiB3aGF0IHlvdSBkaWQgd2l0aA0KPiBpbmNyZWFzaW5nIHRoZSBzaXplIG9m
IHRoZSB3cml0ZSBidWZmZXIgdmlhIGEgbW9kdWxlIHBhcmFtZXRlci4gRm9yIGV4YW1wbGUsDQo+
IGNoZWNraW5nIGlmIHRoZSBzaXplIG9mIHRoZSB3cml0ZSBidWZmZXIgYmFzZWQgb24gbXdfY3Vp
bnRzIGlzIGVub3VnaCB0bw0KPiBjb3ZlciB3c19taW4sIHdoaWNoIG5vcm1hbGx5IHdvdWxkIG9u
bHkgYmUgYW4gaXNzdWUgd2hlbiBtd19jdWludHMgPT0gMA0KPiBvciB3aGVuIHRoZSBudW1iZXIg
b2YgUFVzIHVzZWQgZm9yIHRoZSBwYmxrIGluc3RhbmNlIGlzIHZlcnkgc21hbGwgYW5kDQo+IG13
X2N1aW50cyA8IG5yX2x1bnMgKiB3c19taW4uDQoNCg0KSSBzZWUgaGVyZSB0d28gY2FzZXM6DQot
IHdoZW4gbXdfY3VuaXRzID4gMCAgYnVmZmVyIHNpemUgc2hvdWxkIGhhdmUgbnVtYmVyIG9mIGVu
dHJpZXMgYXQgbGVhc3QgIG1heChtd19jdW5pdHMsIHdzX21pbikgKiBucl9sdW5zIGFuZCBoZXJl
IHdlIGFyZSB0YWtpbmcgY2FyZSBvZiBib3RoIGNhc2VzIG13X2N1bml0cyA+IHdzX21pbiBhbmQg
bXdfY3VuaXRzIDwgd3NfbWluLg0KLSB3aGVuIG13X2N1bml0ID09IDAgIGJ1ZmZlciBzaXplIHNo
b3VsZCBoYXZlIG51bWJlciBvZiBlbnRyaWVzIGF0IGxlYXN0ICB3c19taW4gKiBuciBfbHVucyBh
bmQgd2UgY2FuIHVzZSB0aGUgc2FtZSBwdXNldWRvY29kZSBhcyBhYm92ZS4NCg0KRG8geW91IHNl
ZSBhbnkgb3RoZXIgY2FzZT8gQ291bGQgeW91IGNsYXJpZnkgc2Vjb25kIGNhc2UgbWVudGlvbmVk
IGJ5IHlvdSBvciBtYXliZSBkaWQgeW91IG1lYW4gb3Bwb3NpdGUgY2FzZT8gSWYgeWVzLCBJIGJl
bGlldmUgdGhhdCBhYm92ZSBwc2V1ZG8gY29kZSB3aWxsIGhhbmRsZSBzdWNoIGNhc2UgdG9vLg0K
DQo+IA0KPiA+DQo+ID4+Pj4gSmF2aWVyDQo+ID4+Pg0KPiA+Pj4gVGhhbmtzLA0KPiA+Pj4gTWFy
Y2luDQo+ID4+DQo+ID4+IEphdmllcg0KPiA+IFRoYW5rcywNCj4gPiBNYXJjaW4NClRoYW5rcyEs
DQpNYXJjaW4NCg0KDQo=

WARNING: multiple messages have this Message-ID (diff)
From: "Dziegielewski, Marcin" <marcin.dziegielewski@intel.com>
To: Javier Gonzalez <javier@cnexlabs.com>
Cc: Matias Bjorling <mb@lightnvm.io>, Jens Axboe <axboe@fb.com>,
	"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Konopko, Igor J" <igor.j.konopko@intel.com>
Subject: RE: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0
Date: Mon, 4 Jun 2018 17:17:53 +0000	[thread overview]
Message-ID: <9FC4315EA6BEAA449828D92CF173A10D3E38365C@IRSMSX109.ger.corp.intel.com> (raw)
In-Reply-To: <3A87DF02-6471-4B92-9DDC-4E0FD98249A4@cnexlabs.com>

> From: Javier Gonzalez [mailto:javier@cnexlabs.com]
> Sent: Monday, June 4, 2018 1:16 PM
> To: Dziegielewski, Marcin <marcin.dziegielewski@intel.com>
> Cc: Matias Bjørling <mb@lightnvm.io>; Jens Axboe <axboe@fb.com>; linux-
> block@vger.kernel.org; linux-kernel@vger.kernel.org; Konopko, Igor J
> <igor.j.konopko@intel.com>
> Subject: Re: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits
> equals to 0
> 
> 
> > On 4 Jun 2018, at 13.11, Dziegielewski, Marcin
> <marcin.dziegielewski@intel.com> wrote:
> >
> >> -----Original Message-----
> >> From: Javier Gonzalez [mailto:javier@cnexlabs.com]
> >> Sent: Monday, June 4, 2018 12:22 PM
> >> To: Dziegielewski, Marcin <marcin.dziegielewski@intel.com>
> >> Cc: Matias Bjørling <mb@lightnvm.io>; Jens Axboe <axboe@fb.com>;
> >> linux- block@vger.kernel.org; linux-kernel@vger.kernel.org; Konopko,
> >> Igor J <igor.j.konopko@intel.com>
> >> 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
> >> <marcin.dziegielewski@intel.com> 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 <mb@lightnvm.io>
> >>>> Cc: Jens Axboe <axboe@fb.com>; linux-block@vger.kernel.org; linux-
> >>>> kernel@vger.kernel.org; Dziegielewski, Marcin
> >>>> <marcin.dziegielewski@intel.com>; Konopko, Igor J
> >>>> <igor.j.konopko@intel.com>
> >>>> 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 <mb@lightnvm.io> wrote:
> >>>>>
> >>>>> From: Marcin Dziegielewski <marcin.dziegielewski@intel.com>
> >>>>>
> >>>>> 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
> >>>>> <marcin.dziegielewski@intel.com>
> >>>>> Signed-off-by: Igor Konopko <igor.j.konopko@intel.com>
> >>>>> Signed-off-by: Matias Bjørling <mb@lightnvm.io>
> >>>>> ---
> >>>>> 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.
> 
> Sounds good.
> 
> > Thanks for
> > the clarification.
> >
> 
> Sure :)
> 
> >>>> 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?
> 
> If doing this, I guess that something in the line of what you did with
> increasing the size of the write buffer via a module parameter. For example,
> checking if the size of the write buffer based on mw_cuints is enough to
> cover ws_min, which normally would only be an issue when mw_cuints == 0
> or when the number of PUs used for the pblk instance is very small and
> mw_cuints < nr_luns * ws_min.


I see here two cases:
- when mw_cunits > 0  buffer size should have number of entries at least  max(mw_cunits, ws_min) * nr_luns and here we are taking care of both cases mw_cunits > ws_min and mw_cunits < ws_min.
- when mw_cunit == 0  buffer size should have number of entries at least  ws_min * nr _luns and we can use the same puseudocode as above.

Do you see any other case? Could you clarify second case mentioned by you or maybe did you mean opposite case? If yes, I believe that above pseudo code will handle such case too.

> 
> >
> >>>> Javier
> >>>
> >>> Thanks,
> >>> Marcin
> >>
> >> Javier
> > Thanks,
> > Marcin
Thanks!,
Marcin

  reply	other threads:[~2018-06-04 17:17 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-28  8:58 [GIT PULL 00/20] lightnvm updates for 4.18 Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 01/20] lightnvm: pblk: fail gracefully on line alloc. failure Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 02/20] lightnvm: pblk: recheck for bad lines at runtime Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 03/20] lightnvm: pblk: check read lba on gc path Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 04/20] lightnvm: pblk: improve error msg on corrupted LBAs Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 05/20] lightnvm: pblk: warn in case of corrupted write buffer Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 06/20] lightnvm: pblk: return NVM_ error on failed submission Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 07/20] lightnvm: pblk: remove unnecessary indirection Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 08/20] lightnvm: pblk: remove unnecessary argument Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 09/20] lightnvm: pblk: check for chunk size before allocating it Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 10/20] lightnvm: pass flag on graceful teardown to targets Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 11/20] lightnvm: pblk: remove dead function Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 12/20] lightnvm: pblk: rework write error recovery path Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 13/20] lightnvm: pblk: garbage collect lines with failed writes Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 14/20] lightnvm: pblk: fix smeta write error path Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 15/20] lightnvm: proper error handling for pblk_bio_add_pages Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 16/20] lightnvm: error handling when whole line is bad Matias Bjørling
2018-05-28 10:59   ` Javier Gonzalez
2018-05-29 13:15     ` Konopko, Igor J
2018-05-29 18:29       ` Javier Gonzalez
2018-05-28  8:58 ` [GIT PULL 17/20] lightnvm: fix partial read error path Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0 Matias Bjørling
2018-05-28 11:02   ` Javier Gonzalez
2018-06-04 10:09     ` Dziegielewski, Marcin
2018-06-04 10:09       ` Dziegielewski, Marcin
2018-06-04 10:21       ` Javier Gonzalez
2018-06-04 10:21         ` Javier Gonzalez
2018-06-04 11:11         ` Dziegielewski, Marcin
2018-06-04 11:11           ` Dziegielewski, Marcin
2018-06-04 11:15           ` Javier Gonzalez
2018-06-04 11:15             ` Javier Gonzalez
2018-06-04 17:17             ` Dziegielewski, Marcin [this message]
2018-06-04 17:17               ` Dziegielewski, Marcin
2018-06-05  7:12               ` Javier Gonzalez
2018-06-05  9:18                 ` Dziegielewski, Marcin
2018-05-28  8:58 ` [GIT PULL 19/20] lightnvm: pblk: add possibility to set write buffer size manually Matias Bjørling
2018-05-28  8:58 ` [GIT PULL 20/20] lightnvm: pblk: sync RB and RL states during GC Matias Bjørling
2018-05-28 10:51   ` Javier Gonzalez
2018-05-29 13:07     ` Konopko, Igor J
2018-05-29 17:58       ` Javier Gonzalez
2018-06-01 10:45 ` [GIT PULL 00/20] lightnvm updates for 4.18 Matias Bjørling
2018-06-01 12:36   ` Jens Axboe
2018-06-01 12:36     ` Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9FC4315EA6BEAA449828D92CF173A10D3E38365C@IRSMSX109.ger.corp.intel.com \
    --to=marcin.dziegielewski@intel.com \
    --cc=axboe@fb.com \
    --cc=igor.j.konopko@intel.com \
    --cc=javier@cnexlabs.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mb@lightnvm.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.