From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D99ADC072A4 for ; Thu, 16 May 2019 06:28:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B19CD2087B for ; Thu, 16 May 2019 06:28:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726545AbfEPG2Y convert rfc822-to-8bit (ORCPT ); Thu, 16 May 2019 02:28:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34732 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726221AbfEPG2Y (ORCPT ); Thu, 16 May 2019 02:28:24 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 21F1B3DDBE; Thu, 16 May 2019 06:28:23 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F29145D9C3; Thu, 16 May 2019 06:28:22 +0000 (UTC) Received: from zmail21.collab.prod.int.phx2.redhat.com (zmail21.collab.prod.int.phx2.redhat.com [10.5.83.24]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 973501806B11; Thu, 16 May 2019 06:28:21 +0000 (UTC) Date: Thu, 16 May 2019 02:28:20 -0400 (EDT) From: Pankaj Gupta To: Dan Williams Cc: linux-nvdimm , Linux Kernel Mailing List , virtualization@lists.linux-foundation.org, KVM list , linux-fsdevel , Linux ACPI , Qemu Developers , linux-ext4 , linux-xfs , Ross Zwisler , Vishal L Verma , Dave Jiang , "Michael S. Tsirkin" , Jason Wang , Matthew Wilcox , "Rafael J. Wysocki" , Christoph Hellwig , Len Brown , Jan Kara , Theodore Ts'o , Andreas Dilger , "Darrick J. Wong" , lcapitulino@redhat.com, Kevin Wolf , Igor Mammedov , jmoyer , Nitesh Narayan Lal , Rik van Riel , Stefan Hajnoczi , Andrea Arcangeli , David Hildenbrand , david , cohuck@redhat.com, Xiao Guangrong , Paolo Bonzini , Adam Borowski , yuval shaia , jstaron@google.com Message-ID: <1906905099.29162562.1557988100975.JavaMail.zimbra@redhat.com> In-Reply-To: References: <20190514145422.16923-1-pagupta@redhat.com> <20190514145422.16923-2-pagupta@redhat.com> Subject: Re: [PATCH v9 1/7] libnvdimm: nd_region flush callback support MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT X-Originating-IP: [10.65.16.97, 10.4.195.4] Thread-Topic: libnvdimm: nd_region flush callback support Thread-Index: VrjlK3y+QUdLL94hHE7OyUkrop5Ojw== X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Thu, 16 May 2019 06:28:23 +0000 (UTC) Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org > > > > This patch adds functionality to perform flush from guest > > to host over VIRTIO. We are registering a callback based > > on 'nd_region' type. virtio_pmem driver requires this special > > flush function. For rest of the region types we are registering > > existing flush function. Report error returned by host fsync > > failure to userspace. > > > > Signed-off-by: Pankaj Gupta > > --- > > drivers/acpi/nfit/core.c | 4 ++-- > > drivers/nvdimm/claim.c | 6 ++++-- > > drivers/nvdimm/nd.h | 1 + > > drivers/nvdimm/pmem.c | 13 ++++++++----- > > drivers/nvdimm/region_devs.c | 26 ++++++++++++++++++++++++-- > > include/linux/libnvdimm.h | 8 +++++++- > > 6 files changed, 46 insertions(+), 12 deletions(-) > > > > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c > > index 5a389a4f4f65..08dde76cf459 100644 > > --- a/drivers/acpi/nfit/core.c > > +++ b/drivers/acpi/nfit/core.c > > @@ -2434,7 +2434,7 @@ static void write_blk_ctl(struct nfit_blk *nfit_blk, > > unsigned int bw, > > offset = to_interleave_offset(offset, mmio); > > > > writeq(cmd, mmio->addr.base + offset); > > - nvdimm_flush(nfit_blk->nd_region); > > + nvdimm_flush(nfit_blk->nd_region, NULL); > > > > if (nfit_blk->dimm_flags & NFIT_BLK_DCR_LATCH) > > readq(mmio->addr.base + offset); > > @@ -2483,7 +2483,7 @@ static int acpi_nfit_blk_single_io(struct nfit_blk > > *nfit_blk, > > } > > > > if (rw) > > - nvdimm_flush(nfit_blk->nd_region); > > + nvdimm_flush(nfit_blk->nd_region, NULL); > > > > rc = read_blk_stat(nfit_blk, lane) ? -EIO : 0; > > return rc; > > diff --git a/drivers/nvdimm/claim.c b/drivers/nvdimm/claim.c > > index fb667bf469c7..13510bae1e6f 100644 > > --- a/drivers/nvdimm/claim.c > > +++ b/drivers/nvdimm/claim.c > > @@ -263,7 +263,7 @@ static int nsio_rw_bytes(struct nd_namespace_common > > *ndns, > > struct nd_namespace_io *nsio = to_nd_namespace_io(&ndns->dev); > > unsigned int sz_align = ALIGN(size + (offset & (512 - 1)), 512); > > sector_t sector = offset >> 9; > > - int rc = 0; > > + int rc = 0, ret = 0; > > > > if (unlikely(!size)) > > return 0; > > @@ -301,7 +301,9 @@ static int nsio_rw_bytes(struct nd_namespace_common > > *ndns, > > } > > > > memcpy_flushcache(nsio->addr + offset, buf, size); > > - nvdimm_flush(to_nd_region(ndns->dev.parent)); > > + ret = nvdimm_flush(to_nd_region(ndns->dev.parent), NULL); > > + if (ret) > > + rc = ret; > > > > return rc; > > } > > diff --git a/drivers/nvdimm/nd.h b/drivers/nvdimm/nd.h > > index a5ac3b240293..0c74d2428bd7 100644 > > --- a/drivers/nvdimm/nd.h > > +++ b/drivers/nvdimm/nd.h > > @@ -159,6 +159,7 @@ struct nd_region { > > struct badblocks bb; > > struct nd_interleave_set *nd_set; > > struct nd_percpu_lane __percpu *lane; > > + int (*flush)(struct nd_region *nd_region, struct bio *bio); > > So this triggers: > > In file included from drivers/nvdimm/e820.c:7: > ./include/linux/libnvdimm.h:140:51: warning: ‘struct bio’ declared > inside parameter list will not be visible outside of this definition > or declaration > int (*flush)(struct nd_region *nd_region, struct bio *bio); > ^~~ Sorry! for this. Fixed now. > I was already feeling uneasy about trying to squeeze this into v5.2, > but this warning and the continued drip of comments leads me to > conclude that this driver would do well to wait one more development > cycle. Lets close out the final fixups and let this driver soak in > -next. Then for the v5.3 cycle I'll redouble my efforts towards the > goal of closing patch acceptance at the -rc6 / -rc7 development > milestone. o.k. Will wait for Mike's ACK on device mapper patch and send the v10 with final fix-ups. Thank you for your help. Best regards, Pankaj > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id C5A5F21250C96 for ; Wed, 15 May 2019 23:28:23 -0700 (PDT) Date: Thu, 16 May 2019 02:28:20 -0400 (EDT) From: Pankaj Gupta Message-ID: <1906905099.29162562.1557988100975.JavaMail.zimbra@redhat.com> In-Reply-To: References: <20190514145422.16923-1-pagupta@redhat.com> <20190514145422.16923-2-pagupta@redhat.com> Subject: Re: [PATCH v9 1/7] libnvdimm: nd_region flush callback support MIME-Version: 1.0 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" To: Dan Williams Cc: cohuck@redhat.com, Jan Kara , KVM list , "Michael S. Tsirkin" , Jason Wang , david , Qemu Developers , virtualization@lists.linux-foundation.org, Andreas Dilger , Ross Zwisler , Andrea Arcangeli , jstaron@google.com, linux-nvdimm , David Hildenbrand , Matthew Wilcox , Christoph Hellwig , Linux ACPI , linux-ext4 , Len Brown , Adam Borowski , Rik van Riel , yuval shaia , Stefan Hajnoczi , Paolo Bonzini , lcapitulino@redhat.com, Kevin Wolf , Nitesh Narayan Lal , Theodore Ts'o , Xiao Guangrong , "Darrick J. Wong" , "Rafael J. Wysocki" , Linux Kernel Mailing List , linux-xfs , linux-fsdevel , Igor Mammedov List-ID: Cj4gPgo+ID4gVGhpcyBwYXRjaCBhZGRzIGZ1bmN0aW9uYWxpdHkgdG8gcGVyZm9ybSBmbHVzaCBm cm9tIGd1ZXN0Cj4gPiB0byBob3N0IG92ZXIgVklSVElPLiBXZSBhcmUgcmVnaXN0ZXJpbmcgYSBj YWxsYmFjayBiYXNlZAo+ID4gb24gJ25kX3JlZ2lvbicgdHlwZS4gdmlydGlvX3BtZW0gZHJpdmVy IHJlcXVpcmVzIHRoaXMgc3BlY2lhbAo+ID4gZmx1c2ggZnVuY3Rpb24uIEZvciByZXN0IG9mIHRo ZSByZWdpb24gdHlwZXMgd2UgYXJlIHJlZ2lzdGVyaW5nCj4gPiBleGlzdGluZyBmbHVzaCBmdW5j dGlvbi4gUmVwb3J0IGVycm9yIHJldHVybmVkIGJ5IGhvc3QgZnN5bmMKPiA+IGZhaWx1cmUgdG8g dXNlcnNwYWNlLgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFBhbmthaiBHdXB0YSA8cGFndXB0YUBy ZWRoYXQuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9hY3BpL25maXQvY29yZS5jICAgICB8ICA0 ICsrLS0KPiA+ICBkcml2ZXJzL252ZGltbS9jbGFpbS5jICAgICAgIHwgIDYgKysrKy0tCj4gPiAg ZHJpdmVycy9udmRpbW0vbmQuaCAgICAgICAgICB8ICAxICsKPiA+ICBkcml2ZXJzL252ZGltbS9w bWVtLmMgICAgICAgIHwgMTMgKysrKysrKystLS0tLQo+ID4gIGRyaXZlcnMvbnZkaW1tL3JlZ2lv bl9kZXZzLmMgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKystLQo+ID4gIGluY2x1ZGUvbGlu dXgvbGlibnZkaW1tLmggICAgfCAgOCArKysrKysrLQo+ID4gIDYgZmlsZXMgY2hhbmdlZCwgNDYg aW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvYWNwaS9uZml0L2NvcmUuYyBiL2RyaXZlcnMvYWNwaS9uZml0L2NvcmUuYwo+ID4gaW5kZXgg NWEzODlhNGY0ZjY1Li4wOGRkZTc2Y2Y0NTkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2FjcGkv bmZpdC9jb3JlLmMKPiA+ICsrKyBiL2RyaXZlcnMvYWNwaS9uZml0L2NvcmUuYwo+ID4gQEAgLTI0 MzQsNyArMjQzNCw3IEBAIHN0YXRpYyB2b2lkIHdyaXRlX2Jsa19jdGwoc3RydWN0IG5maXRfYmxr ICpuZml0X2JsaywKPiA+IHVuc2lnbmVkIGludCBidywKPiA+ICAgICAgICAgICAgICAgICBvZmZz ZXQgPSB0b19pbnRlcmxlYXZlX29mZnNldChvZmZzZXQsIG1taW8pOwo+ID4KPiA+ICAgICAgICAg d3JpdGVxKGNtZCwgbW1pby0+YWRkci5iYXNlICsgb2Zmc2V0KTsKPiA+IC0gICAgICAgbnZkaW1t X2ZsdXNoKG5maXRfYmxrLT5uZF9yZWdpb24pOwo+ID4gKyAgICAgICBudmRpbW1fZmx1c2gobmZp dF9ibGstPm5kX3JlZ2lvbiwgTlVMTCk7Cj4gPgo+ID4gICAgICAgICBpZiAobmZpdF9ibGstPmRp bW1fZmxhZ3MgJiBORklUX0JMS19EQ1JfTEFUQ0gpCj4gPiAgICAgICAgICAgICAgICAgcmVhZHEo bW1pby0+YWRkci5iYXNlICsgb2Zmc2V0KTsKPiA+IEBAIC0yNDgzLDcgKzI0ODMsNyBAQCBzdGF0 aWMgaW50IGFjcGlfbmZpdF9ibGtfc2luZ2xlX2lvKHN0cnVjdCBuZml0X2Jsawo+ID4gKm5maXRf YmxrLAo+ID4gICAgICAgICB9Cj4gPgo+ID4gICAgICAgICBpZiAocncpCj4gPiAtICAgICAgICAg ICAgICAgbnZkaW1tX2ZsdXNoKG5maXRfYmxrLT5uZF9yZWdpb24pOwo+ID4gKyAgICAgICAgICAg ICAgIG52ZGltbV9mbHVzaChuZml0X2Jsay0+bmRfcmVnaW9uLCBOVUxMKTsKPiA+Cj4gPiAgICAg ICAgIHJjID0gcmVhZF9ibGtfc3RhdChuZml0X2JsaywgbGFuZSkgPyAtRUlPIDogMDsKPiA+ICAg ICAgICAgcmV0dXJuIHJjOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1tL2NsYWltLmMg Yi9kcml2ZXJzL252ZGltbS9jbGFpbS5jCj4gPiBpbmRleCBmYjY2N2JmNDY5YzcuLjEzNTEwYmFl MWU2ZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvbnZkaW1tL2NsYWltLmMKPiA+ICsrKyBiL2Ry aXZlcnMvbnZkaW1tL2NsYWltLmMKPiA+IEBAIC0yNjMsNyArMjYzLDcgQEAgc3RhdGljIGludCBu c2lvX3J3X2J5dGVzKHN0cnVjdCBuZF9uYW1lc3BhY2VfY29tbW9uCj4gPiAqbmRucywKPiA+ICAg ICAgICAgc3RydWN0IG5kX25hbWVzcGFjZV9pbyAqbnNpbyA9IHRvX25kX25hbWVzcGFjZV9pbygm bmRucy0+ZGV2KTsKPiA+ICAgICAgICAgdW5zaWduZWQgaW50IHN6X2FsaWduID0gQUxJR04oc2l6 ZSArIChvZmZzZXQgJiAoNTEyIC0gMSkpLCA1MTIpOwo+ID4gICAgICAgICBzZWN0b3JfdCBzZWN0 b3IgPSBvZmZzZXQgPj4gOTsKPiA+IC0gICAgICAgaW50IHJjID0gMDsKPiA+ICsgICAgICAgaW50 IHJjID0gMCwgcmV0ID0gMDsKPiA+Cj4gPiAgICAgICAgIGlmICh1bmxpa2VseSghc2l6ZSkpCj4g PiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiBAQCAtMzAxLDcgKzMwMSw5IEBAIHN0YXRp YyBpbnQgbnNpb19yd19ieXRlcyhzdHJ1Y3QgbmRfbmFtZXNwYWNlX2NvbW1vbgo+ID4gKm5kbnMs Cj4gPiAgICAgICAgIH0KPiA+Cj4gPiAgICAgICAgIG1lbWNweV9mbHVzaGNhY2hlKG5zaW8tPmFk ZHIgKyBvZmZzZXQsIGJ1Ziwgc2l6ZSk7Cj4gPiAtICAgICAgIG52ZGltbV9mbHVzaCh0b19uZF9y ZWdpb24obmRucy0+ZGV2LnBhcmVudCkpOwo+ID4gKyAgICAgICByZXQgPSBudmRpbW1fZmx1c2go dG9fbmRfcmVnaW9uKG5kbnMtPmRldi5wYXJlbnQpLCBOVUxMKTsKPiA+ICsgICAgICAgaWYgKHJl dCkKPiA+ICsgICAgICAgICAgICAgICByYyA9IHJldDsKPiA+Cj4gPiAgICAgICAgIHJldHVybiBy YzsKPiA+ICB9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udmRpbW0vbmQuaCBiL2RyaXZlcnMv bnZkaW1tL25kLmgKPiA+IGluZGV4IGE1YWMzYjI0MDI5My4uMGM3NGQyNDI4YmQ3IDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9udmRpbW0vbmQuaAo+ID4gKysrIGIvZHJpdmVycy9udmRpbW0vbmQu aAo+ID4gQEAgLTE1OSw2ICsxNTksNyBAQCBzdHJ1Y3QgbmRfcmVnaW9uIHsKPiA+ICAgICAgICAg c3RydWN0IGJhZGJsb2NrcyBiYjsKPiA+ICAgICAgICAgc3RydWN0IG5kX2ludGVybGVhdmVfc2V0 ICpuZF9zZXQ7Cj4gPiAgICAgICAgIHN0cnVjdCBuZF9wZXJjcHVfbGFuZSBfX3BlcmNwdSAqbGFu ZTsKPiA+ICsgICAgICAgaW50ICgqZmx1c2gpKHN0cnVjdCBuZF9yZWdpb24gKm5kX3JlZ2lvbiwg c3RydWN0IGJpbyAqYmlvKTsKPiAKPiBTbyB0aGlzIHRyaWdnZXJzOgo+IAo+IEluIGZpbGUgaW5j bHVkZWQgZnJvbSBkcml2ZXJzL252ZGltbS9lODIwLmM6NzoKPiAuL2luY2x1ZGUvbGludXgvbGli bnZkaW1tLmg6MTQwOjUxOiB3YXJuaW5nOiDigJhzdHJ1Y3QgYmlv4oCZIGRlY2xhcmVkCj4gaW5z aWRlIHBhcmFtZXRlciBsaXN0IHdpbGwgbm90IGJlIHZpc2libGUgb3V0c2lkZSBvZiB0aGlzIGRl ZmluaXRpb24KPiBvciBkZWNsYXJhdGlvbgo+ICAgaW50ICgqZmx1c2gpKHN0cnVjdCBuZF9yZWdp b24gKm5kX3JlZ2lvbiwgc3RydWN0IGJpbyAqYmlvKTsKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KClNvcnJ5ISBmb3IgdGhpcy4gRml4ZWQg bm93LgoKPiBJIHdhcyBhbHJlYWR5IGZlZWxpbmcgdW5lYXN5IGFib3V0IHRyeWluZyB0byBzcXVl ZXplIHRoaXMgaW50byB2NS4yLAo+IGJ1dCB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjb250aW51ZWQg ZHJpcCBvZiBjb21tZW50cyBsZWFkcyBtZSB0bwo+IGNvbmNsdWRlIHRoYXQgdGhpcyBkcml2ZXIg d291bGQgZG8gd2VsbCB0byB3YWl0IG9uZSBtb3JlIGRldmVsb3BtZW50Cj4gY3ljbGUuIExldHMg Y2xvc2Ugb3V0IHRoZSBmaW5hbCBmaXh1cHMgYW5kIGxldCB0aGlzIGRyaXZlciBzb2FrIGluCj4g LW5leHQuIFRoZW4gZm9yIHRoZSB2NS4zIGN5Y2xlIEknbGwgcmVkb3VibGUgbXkgZWZmb3J0cyB0 b3dhcmRzIHRoZQo+IGdvYWwgb2YgY2xvc2luZyBwYXRjaCBhY2NlcHRhbmNlIGF0IHRoZSAtcmM2 IC8gLXJjNyBkZXZlbG9wbWVudAo+IG1pbGVzdG9uZS4KCm8uay4gV2lsbCB3YWl0IGZvciBNaWtl J3MgQUNLIG9uIGRldmljZSBtYXBwZXIgcGF0Y2ggYW5kIHNlbmQgdGhlIHYxMAp3aXRoIGZpbmFs IGZpeC11cHMuIFRoYW5rIHlvdSBmb3IgeW91ciBoZWxwLgoKQmVzdCByZWdhcmRzLApQYW5rYWoK CgoKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGlu dXgtbnZkaW1tIG1haWxpbmcgbGlzdApMaW51eC1udmRpbW1AbGlzdHMuMDEub3JnCmh0dHBzOi8v bGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbnZkaW1tCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pankaj Gupta Subject: Re: [PATCH v9 1/7] libnvdimm: nd_region flush callback support Date: Thu, 16 May 2019 02:28:20 -0400 (EDT) Message-ID: <1906905099.29162562.1557988100975.JavaMail.zimbra@redhat.com> References: <20190514145422.16923-1-pagupta@redhat.com> <20190514145422.16923-2-pagupta@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Dan Williams Cc: cohuck@redhat.com, Jan Kara , KVM list , "Michael S. Tsirkin" , david , Qemu Developers , virtualization@lists.linux-foundation.org, Andreas Dilger , Ross Zwisler , Andrea Arcangeli , Dave Jiang , jstaron@google.com, linux-nvdimm , Vishal L Verma , Matthew Wilcox , Christoph Hellwig , Linux ACPI , jmoyer , linux-ext4 , Len Brown , Adam Borowski , Rik van Riel , yuval shaia , Stefan Hajnoczi , Paolo Bonzini List-Id: virtualization@lists.linuxfoundation.org Cj4gPgo+ID4gVGhpcyBwYXRjaCBhZGRzIGZ1bmN0aW9uYWxpdHkgdG8gcGVyZm9ybSBmbHVzaCBm cm9tIGd1ZXN0Cj4gPiB0byBob3N0IG92ZXIgVklSVElPLiBXZSBhcmUgcmVnaXN0ZXJpbmcgYSBj YWxsYmFjayBiYXNlZAo+ID4gb24gJ25kX3JlZ2lvbicgdHlwZS4gdmlydGlvX3BtZW0gZHJpdmVy IHJlcXVpcmVzIHRoaXMgc3BlY2lhbAo+ID4gZmx1c2ggZnVuY3Rpb24uIEZvciByZXN0IG9mIHRo ZSByZWdpb24gdHlwZXMgd2UgYXJlIHJlZ2lzdGVyaW5nCj4gPiBleGlzdGluZyBmbHVzaCBmdW5j dGlvbi4gUmVwb3J0IGVycm9yIHJldHVybmVkIGJ5IGhvc3QgZnN5bmMKPiA+IGZhaWx1cmUgdG8g dXNlcnNwYWNlLgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFBhbmthaiBHdXB0YSA8cGFndXB0YUBy ZWRoYXQuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9hY3BpL25maXQvY29yZS5jICAgICB8ICA0 ICsrLS0KPiA+ICBkcml2ZXJzL252ZGltbS9jbGFpbS5jICAgICAgIHwgIDYgKysrKy0tCj4gPiAg ZHJpdmVycy9udmRpbW0vbmQuaCAgICAgICAgICB8ICAxICsKPiA+ICBkcml2ZXJzL252ZGltbS9w bWVtLmMgICAgICAgIHwgMTMgKysrKysrKystLS0tLQo+ID4gIGRyaXZlcnMvbnZkaW1tL3JlZ2lv bl9kZXZzLmMgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKystLQo+ID4gIGluY2x1ZGUvbGlu dXgvbGlibnZkaW1tLmggICAgfCAgOCArKysrKysrLQo+ID4gIDYgZmlsZXMgY2hhbmdlZCwgNDYg aW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvYWNwaS9uZml0L2NvcmUuYyBiL2RyaXZlcnMvYWNwaS9uZml0L2NvcmUuYwo+ID4gaW5kZXgg NWEzODlhNGY0ZjY1Li4wOGRkZTc2Y2Y0NTkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2FjcGkv bmZpdC9jb3JlLmMKPiA+ICsrKyBiL2RyaXZlcnMvYWNwaS9uZml0L2NvcmUuYwo+ID4gQEAgLTI0 MzQsNyArMjQzNCw3IEBAIHN0YXRpYyB2b2lkIHdyaXRlX2Jsa19jdGwoc3RydWN0IG5maXRfYmxr ICpuZml0X2JsaywKPiA+IHVuc2lnbmVkIGludCBidywKPiA+ICAgICAgICAgICAgICAgICBvZmZz ZXQgPSB0b19pbnRlcmxlYXZlX29mZnNldChvZmZzZXQsIG1taW8pOwo+ID4KPiA+ICAgICAgICAg d3JpdGVxKGNtZCwgbW1pby0+YWRkci5iYXNlICsgb2Zmc2V0KTsKPiA+IC0gICAgICAgbnZkaW1t X2ZsdXNoKG5maXRfYmxrLT5uZF9yZWdpb24pOwo+ID4gKyAgICAgICBudmRpbW1fZmx1c2gobmZp dF9ibGstPm5kX3JlZ2lvbiwgTlVMTCk7Cj4gPgo+ID4gICAgICAgICBpZiAobmZpdF9ibGstPmRp bW1fZmxhZ3MgJiBORklUX0JMS19EQ1JfTEFUQ0gpCj4gPiAgICAgICAgICAgICAgICAgcmVhZHEo bW1pby0+YWRkci5iYXNlICsgb2Zmc2V0KTsKPiA+IEBAIC0yNDgzLDcgKzI0ODMsNyBAQCBzdGF0 aWMgaW50IGFjcGlfbmZpdF9ibGtfc2luZ2xlX2lvKHN0cnVjdCBuZml0X2Jsawo+ID4gKm5maXRf YmxrLAo+ID4gICAgICAgICB9Cj4gPgo+ID4gICAgICAgICBpZiAocncpCj4gPiAtICAgICAgICAg ICAgICAgbnZkaW1tX2ZsdXNoKG5maXRfYmxrLT5uZF9yZWdpb24pOwo+ID4gKyAgICAgICAgICAg ICAgIG52ZGltbV9mbHVzaChuZml0X2Jsay0+bmRfcmVnaW9uLCBOVUxMKTsKPiA+Cj4gPiAgICAg ICAgIHJjID0gcmVhZF9ibGtfc3RhdChuZml0X2JsaywgbGFuZSkgPyAtRUlPIDogMDsKPiA+ICAg ICAgICAgcmV0dXJuIHJjOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1tL2NsYWltLmMg Yi9kcml2ZXJzL252ZGltbS9jbGFpbS5jCj4gPiBpbmRleCBmYjY2N2JmNDY5YzcuLjEzNTEwYmFl MWU2ZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvbnZkaW1tL2NsYWltLmMKPiA+ICsrKyBiL2Ry aXZlcnMvbnZkaW1tL2NsYWltLmMKPiA+IEBAIC0yNjMsNyArMjYzLDcgQEAgc3RhdGljIGludCBu c2lvX3J3X2J5dGVzKHN0cnVjdCBuZF9uYW1lc3BhY2VfY29tbW9uCj4gPiAqbmRucywKPiA+ICAg ICAgICAgc3RydWN0IG5kX25hbWVzcGFjZV9pbyAqbnNpbyA9IHRvX25kX25hbWVzcGFjZV9pbygm bmRucy0+ZGV2KTsKPiA+ICAgICAgICAgdW5zaWduZWQgaW50IHN6X2FsaWduID0gQUxJR04oc2l6 ZSArIChvZmZzZXQgJiAoNTEyIC0gMSkpLCA1MTIpOwo+ID4gICAgICAgICBzZWN0b3JfdCBzZWN0 b3IgPSBvZmZzZXQgPj4gOTsKPiA+IC0gICAgICAgaW50IHJjID0gMDsKPiA+ICsgICAgICAgaW50 IHJjID0gMCwgcmV0ID0gMDsKPiA+Cj4gPiAgICAgICAgIGlmICh1bmxpa2VseSghc2l6ZSkpCj4g PiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiBAQCAtMzAxLDcgKzMwMSw5IEBAIHN0YXRp YyBpbnQgbnNpb19yd19ieXRlcyhzdHJ1Y3QgbmRfbmFtZXNwYWNlX2NvbW1vbgo+ID4gKm5kbnMs Cj4gPiAgICAgICAgIH0KPiA+Cj4gPiAgICAgICAgIG1lbWNweV9mbHVzaGNhY2hlKG5zaW8tPmFk ZHIgKyBvZmZzZXQsIGJ1Ziwgc2l6ZSk7Cj4gPiAtICAgICAgIG52ZGltbV9mbHVzaCh0b19uZF9y ZWdpb24obmRucy0+ZGV2LnBhcmVudCkpOwo+ID4gKyAgICAgICByZXQgPSBudmRpbW1fZmx1c2go dG9fbmRfcmVnaW9uKG5kbnMtPmRldi5wYXJlbnQpLCBOVUxMKTsKPiA+ICsgICAgICAgaWYgKHJl dCkKPiA+ICsgICAgICAgICAgICAgICByYyA9IHJldDsKPiA+Cj4gPiAgICAgICAgIHJldHVybiBy YzsKPiA+ICB9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udmRpbW0vbmQuaCBiL2RyaXZlcnMv bnZkaW1tL25kLmgKPiA+IGluZGV4IGE1YWMzYjI0MDI5My4uMGM3NGQyNDI4YmQ3IDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9udmRpbW0vbmQuaAo+ID4gKysrIGIvZHJpdmVycy9udmRpbW0vbmQu aAo+ID4gQEAgLTE1OSw2ICsxNTksNyBAQCBzdHJ1Y3QgbmRfcmVnaW9uIHsKPiA+ICAgICAgICAg c3RydWN0IGJhZGJsb2NrcyBiYjsKPiA+ICAgICAgICAgc3RydWN0IG5kX2ludGVybGVhdmVfc2V0 ICpuZF9zZXQ7Cj4gPiAgICAgICAgIHN0cnVjdCBuZF9wZXJjcHVfbGFuZSBfX3BlcmNwdSAqbGFu ZTsKPiA+ICsgICAgICAgaW50ICgqZmx1c2gpKHN0cnVjdCBuZF9yZWdpb24gKm5kX3JlZ2lvbiwg c3RydWN0IGJpbyAqYmlvKTsKPiAKPiBTbyB0aGlzIHRyaWdnZXJzOgo+IAo+IEluIGZpbGUgaW5j bHVkZWQgZnJvbSBkcml2ZXJzL252ZGltbS9lODIwLmM6NzoKPiAuL2luY2x1ZGUvbGludXgvbGli bnZkaW1tLmg6MTQwOjUxOiB3YXJuaW5nOiDigJhzdHJ1Y3QgYmlv4oCZIGRlY2xhcmVkCj4gaW5z aWRlIHBhcmFtZXRlciBsaXN0IHdpbGwgbm90IGJlIHZpc2libGUgb3V0c2lkZSBvZiB0aGlzIGRl ZmluaXRpb24KPiBvciBkZWNsYXJhdGlvbgo+ICAgaW50ICgqZmx1c2gpKHN0cnVjdCBuZF9yZWdp b24gKm5kX3JlZ2lvbiwgc3RydWN0IGJpbyAqYmlvKTsKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KClNvcnJ5ISBmb3IgdGhpcy4gRml4ZWQg bm93LgoKPiBJIHdhcyBhbHJlYWR5IGZlZWxpbmcgdW5lYXN5IGFib3V0IHRyeWluZyB0byBzcXVl ZXplIHRoaXMgaW50byB2NS4yLAo+IGJ1dCB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjb250aW51ZWQg ZHJpcCBvZiBjb21tZW50cyBsZWFkcyBtZSB0bwo+IGNvbmNsdWRlIHRoYXQgdGhpcyBkcml2ZXIg d291bGQgZG8gd2VsbCB0byB3YWl0IG9uZSBtb3JlIGRldmVsb3BtZW50Cj4gY3ljbGUuIExldHMg Y2xvc2Ugb3V0IHRoZSBmaW5hbCBmaXh1cHMgYW5kIGxldCB0aGlzIGRyaXZlciBzb2FrIGluCj4g LW5leHQuIFRoZW4gZm9yIHRoZSB2NS4zIGN5Y2xlIEknbGwgcmVkb3VibGUgbXkgZWZmb3J0cyB0 b3dhcmRzIHRoZQo+IGdvYWwgb2YgY2xvc2luZyBwYXRjaCBhY2NlcHRhbmNlIGF0IHRoZSAtcmM2 IC8gLXJjNyBkZXZlbG9wbWVudAo+IG1pbGVzdG9uZS4KCm8uay4gV2lsbCB3YWl0IGZvciBNaWtl J3MgQUNLIG9uIGRldmljZSBtYXBwZXIgcGF0Y2ggYW5kIHNlbmQgdGhlIHYxMAp3aXRoIGZpbmFs IGZpeC11cHMuIFRoYW5rIHlvdSBmb3IgeW91ciBoZWxwLgoKQmVzdCByZWdhcmRzLApQYW5rYWoK CgoKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVmly dHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5k YXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3ZpcnR1YWxpemF0aW9u From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6B0D0C04AB4 for ; Thu, 16 May 2019 06:29:13 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2F36920848 for ; Thu, 16 May 2019 06:29:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2F36920848 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([127.0.0.1]:49452 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hR9tA-0006uf-Gw for qemu-devel@archiver.kernel.org; Thu, 16 May 2019 02:29:12 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42753) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hR9sR-0006bT-50 for qemu-devel@nongnu.org; Thu, 16 May 2019 02:28:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hR9sQ-0003Cz-0t for qemu-devel@nongnu.org; Thu, 16 May 2019 02:28:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:18771) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hR9sP-0003Be-P0 for qemu-devel@nongnu.org; Thu, 16 May 2019 02:28:25 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 21F1B3DDBE; Thu, 16 May 2019 06:28:23 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F29145D9C3; Thu, 16 May 2019 06:28:22 +0000 (UTC) Received: from zmail21.collab.prod.int.phx2.redhat.com (zmail21.collab.prod.int.phx2.redhat.com [10.5.83.24]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 973501806B11; Thu, 16 May 2019 06:28:21 +0000 (UTC) Date: Thu, 16 May 2019 02:28:20 -0400 (EDT) From: Pankaj Gupta To: Dan Williams Message-ID: <1906905099.29162562.1557988100975.JavaMail.zimbra@redhat.com> In-Reply-To: References: <20190514145422.16923-1-pagupta@redhat.com> <20190514145422.16923-2-pagupta@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.65.16.97, 10.4.195.4] Thread-Topic: libnvdimm: nd_region flush callback support Thread-Index: VrjlK3y+QUdLL94hHE7OyUkrop5Ojw== X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Thu, 16 May 2019 06:28:23 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: Re: [Qemu-devel] [PATCH v9 1/7] libnvdimm: nd_region flush callback support X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: cohuck@redhat.com, Jan Kara , KVM list , "Michael S. Tsirkin" , Jason Wang , david , Qemu Developers , virtualization@lists.linux-foundation.org, Andreas Dilger , Ross Zwisler , Andrea Arcangeli , Dave Jiang , jstaron@google.com, linux-nvdimm , Vishal L Verma , David Hildenbrand , Matthew Wilcox , Christoph Hellwig , Linux ACPI , jmoyer , linux-ext4 , Len Brown , Adam Borowski , Rik van Riel , yuval shaia , Stefan Hajnoczi , Paolo Bonzini , lcapitulino@redhat.com, Kevin Wolf , Nitesh Narayan Lal , Theodore Ts'o , Xiao Guangrong , "Darrick J. Wong" , "Rafael J. Wysocki" , Linux Kernel Mailing List , linux-xfs , linux-fsdevel , Igor Mammedov Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" > > > > This patch adds functionality to perform flush from guest > > to host over VIRTIO. We are registering a callback based > > on 'nd_region' type. virtio_pmem driver requires this special > > flush function. For rest of the region types we are registering > > existing flush function. Report error returned by host fsync > > failure to userspace. > > > > Signed-off-by: Pankaj Gupta > > --- > > drivers/acpi/nfit/core.c | 4 ++-- > > drivers/nvdimm/claim.c | 6 ++++-- > > drivers/nvdimm/nd.h | 1 + > > drivers/nvdimm/pmem.c | 13 ++++++++----- > > drivers/nvdimm/region_devs.c | 26 ++++++++++++++++++++++++-- > > include/linux/libnvdimm.h | 8 +++++++- > > 6 files changed, 46 insertions(+), 12 deletions(-) > > > > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c > > index 5a389a4f4f65..08dde76cf459 100644 > > --- a/drivers/acpi/nfit/core.c > > +++ b/drivers/acpi/nfit/core.c > > @@ -2434,7 +2434,7 @@ static void write_blk_ctl(struct nfit_blk *nfit_b= lk, > > unsigned int bw, > > offset =3D to_interleave_offset(offset, mmio); > > > > writeq(cmd, mmio->addr.base + offset); > > - nvdimm_flush(nfit_blk->nd_region); > > + nvdimm_flush(nfit_blk->nd_region, NULL); > > > > if (nfit_blk->dimm_flags & NFIT_BLK_DCR_LATCH) > > readq(mmio->addr.base + offset); > > @@ -2483,7 +2483,7 @@ static int acpi_nfit_blk_single_io(struct nfit_bl= k > > *nfit_blk, > > } > > > > if (rw) > > - nvdimm_flush(nfit_blk->nd_region); > > + nvdimm_flush(nfit_blk->nd_region, NULL); > > > > rc =3D read_blk_stat(nfit_blk, lane) ? -EIO : 0; > > return rc; > > diff --git a/drivers/nvdimm/claim.c b/drivers/nvdimm/claim.c > > index fb667bf469c7..13510bae1e6f 100644 > > --- a/drivers/nvdimm/claim.c > > +++ b/drivers/nvdimm/claim.c > > @@ -263,7 +263,7 @@ static int nsio_rw_bytes(struct nd_namespace_common > > *ndns, > > struct nd_namespace_io *nsio =3D to_nd_namespace_io(&ndns->dev)= ; > > unsigned int sz_align =3D ALIGN(size + (offset & (512 - 1)), 51= 2); > > sector_t sector =3D offset >> 9; > > - int rc =3D 0; > > + int rc =3D 0, ret =3D 0; > > > > if (unlikely(!size)) > > return 0; > > @@ -301,7 +301,9 @@ static int nsio_rw_bytes(struct nd_namespace_common > > *ndns, > > } > > > > memcpy_flushcache(nsio->addr + offset, buf, size); > > - nvdimm_flush(to_nd_region(ndns->dev.parent)); > > + ret =3D nvdimm_flush(to_nd_region(ndns->dev.parent), NULL); > > + if (ret) > > + rc =3D ret; > > > > return rc; > > } > > diff --git a/drivers/nvdimm/nd.h b/drivers/nvdimm/nd.h > > index a5ac3b240293..0c74d2428bd7 100644 > > --- a/drivers/nvdimm/nd.h > > +++ b/drivers/nvdimm/nd.h > > @@ -159,6 +159,7 @@ struct nd_region { > > struct badblocks bb; > > struct nd_interleave_set *nd_set; > > struct nd_percpu_lane __percpu *lane; > > + int (*flush)(struct nd_region *nd_region, struct bio *bio); >=20 > So this triggers: >=20 > In file included from drivers/nvdimm/e820.c:7: > ./include/linux/libnvdimm.h:140:51: warning: =E2=80=98struct bio=E2=80=99= declared > inside parameter list will not be visible outside of this definition > or declaration > int (*flush)(struct nd_region *nd_region, struct bio *bio); > ^~~ Sorry! for this. Fixed now. > I was already feeling uneasy about trying to squeeze this into v5.2, > but this warning and the continued drip of comments leads me to > conclude that this driver would do well to wait one more development > cycle. Lets close out the final fixups and let this driver soak in > -next. Then for the v5.3 cycle I'll redouble my efforts towards the > goal of closing patch acceptance at the -rc6 / -rc7 development > milestone. o.k. Will wait for Mike's ACK on device mapper patch and send the v10 with final fix-ups. Thank you for your help. Best regards, Pankaj >=20