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 11:11:45 +0000	[thread overview]
Message-ID: <9FC4315EA6BEAA449828D92CF173A10D3E3833ED@IRSMSX109.ger.corp.intel.com> (raw)
In-Reply-To: <3B216FC2-D5EB-4A36-8946-27307DA3D1B1@cnexlabs.com>

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=

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 11:11:45 +0000	[thread overview]
Message-ID: <9FC4315EA6BEAA449828D92CF173A10D3E3833ED@IRSMSX109.ger.corp.intel.com> (raw)
In-Reply-To: <3B216FC2-D5EB-4A36-8946-27307DA3D1B1@cnexlabs.com>


> -----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. 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

  reply	other threads:[~2018-06-04 11:11 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 [this message]
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
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=9FC4315EA6BEAA449828D92CF173A10D3E3833ED@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.