All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1484776549.4358.33.camel@intel.com>

diff --git a/a/1.txt b/N1/1.txt
index ea54898..50a53a5 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,40 +1,60 @@
-T24gV2VkLCAyMDE3LTAxLTE4IGF0IDEzOjMyIC0wODAwLCBEYW4gV2lsbGlhbXMgd3JvdGU6DQo+
-IE9uIFdlZCwgSmFuIDE4LCAyMDE3IGF0IDE6MDIgUE0sIERhcnJpY2sgSi4gV29uZw0KPiA8ZGFy
-cmljay53b25nQG9yYWNsZS5jb20+IHdyb3RlOg0KPiA+IE9uIFdlZCwgSmFuIDE4LCAyMDE3IGF0
-IDAzOjM5OjE3UE0gLTA1MDAsIEplZmYgTW95ZXIgd3JvdGU6DQo+ID4gPiBKYW4gS2FyYSA8amFj
-a0BzdXNlLmN6PiB3cml0ZXM6DQo+ID4gPiANCj4gPiA+ID4gT24gVHVlIDE3LTAxLTE3IDE1OjE0
-OjIxLCBWaXNoYWwgVmVybWEgd3JvdGU6DQo+ID4gPiA+ID4gWW91ciBub3RlIG9uIHRoZSBvbmxp
-bmUgcmVwYWlyIGRvZXMgcmFpc2UgYW5vdGhlciB0YW5nZW50aWFsbHkNCj4gPiA+ID4gPiByZWxh
-dGVkDQo+ID4gPiA+ID4gdG9waWMuIEN1cnJlbnRseSwgaWYgdGhlcmUgYXJlIGJhZGJsb2Nrcywg
-d3JpdGVzIHZpYSB0aGUgYmlvDQo+ID4gPiA+ID4gc3VibWlzc2lvbg0KPiA+ID4gPiA+IHBhdGgg
-d2lsbCBjbGVhciB0aGUgZXJyb3IgKGlmIHRoZSBoYXJkd2FyZSBpcyBhYmxlIHRvIHJlbWFwDQo+
-ID4gPiA+ID4gdGhlIGJhZA0KPiA+ID4gPiA+IGxvY2F0aW9ucykuIEhvd2V2ZXIsIGlmIHRoZSBm
-aWxlc3lzdGVtIGlzIG1vdW50ZWQgZWl0aCBEQVgsDQo+ID4gPiA+ID4gZXZlbg0KPiA+ID4gPiA+
-IG5vbi1tbWFwIG9wZXJhdGlvbnMgLSByZWFkKCkgYW5kIHdyaXRlKCkgd2lsbCBnbyB0aHJvdWdo
-IHRoZQ0KPiA+ID4gPiA+IGRheCBwYXRocw0KPiA+ID4gPiA+IChkYXhfZG9faW8oKSkuIFdlIGhh
-dmVuJ3QgZm91bmQgYSBnb29kL2FncmVlYWJsZSB3YXkgdG8NCj4gPiA+ID4gPiBwZXJmb3JtDQo+
-ID4gPiA+ID4gZXJyb3ItY2xlYXJpbmcgaW4gdGhpcyBjYXNlLiBTbyBjdXJyZW50bHksIGlmIGEg
-ZGF4IG1vdW50ZWQNCj4gPiA+ID4gPiBmaWxlc3lzdGVtDQo+ID4gPiA+ID4gaGFzIGJhZGJsb2Nr
-cywgdGhlIG9ubHkgd2F5IHRvIGNsZWFyIHRob3NlIGJhZGJsb2NrcyBpcyB0bw0KPiA+ID4gPiA+
-IG1vdW50IGl0DQo+ID4gPiA+ID4gd2l0aG91dCBEQVgsIGFuZCBvdmVyd3JpdGUvemVybyB0aGUg
-YmFkIGxvY2F0aW9ucy4gVGhpcyBpcyBhDQo+ID4gPiA+ID4gcHJldHR5DQo+ID4gPiA+ID4gdGVy
-cmlibGUgdXNlciBleHBlcmllbmNlLCBhbmQgSSdtIGhvcGluZyB0aGlzIGNhbiBiZSBzb2x2ZWQg
-aW4NCj4gPiA+ID4gPiBhIGJldHRlcg0KPiA+ID4gPiA+IHdheS4NCj4gPiA+ID4gDQo+ID4gPiA+
-IFBsZWFzZSByZW1pbmQgbWUsIHdoYXQgaXMgdGhlIHByb2JsZW0gd2l0aCBEQVggY29kZSBkb2lu
-Zw0KPiA+ID4gPiBuZWNlc3Nhcnkgd29yayB0bw0KPiA+ID4gPiBjbGVhciB0aGUgZXJyb3Igd2hl
-biBpdCBnZXRzIEVJTyBmcm9tIG1lbWNweSBvbiB3cml0ZT8NCj4gPiA+IA0KPiA+ID4gWW91IHdv
-bid0IGdldCBhbiBNQ0UgZm9yIGEgc3RvcmU7wqDCoG9ubHkgbG9hZHMgZ2VuZXJhdGUgdGhlbS4N
-Cj4gPiA+IA0KPiA+ID4gV29uJ3QgZmFsbG9jYXRlIEZMX1pFUk9fUkFOR0UgY2xlYXIgYmFkIGJs
-b2NrcyB3aGVuIG1vdW50ZWQgd2l0aA0KPiA+ID4gLW8gZGF4Pw0KPiA+IA0KPiA+IE5vdCBuZWNl
-c3NhcmlseTsgWEZTIHVzdWFsbHkgaW1wbGVtZW50cyB0aGlzIGJ5IHB1bmNoaW5nIG91dCB0aGUN
-Cj4gPiByYW5nZQ0KPiA+IGFuZCB0aGVuIHJlYWxsb2NhdGluZyBpdCBhcyB1bndyaXR0ZW4gYmxv
-Y2tzLg0KPiA+IA0KPiANCj4gVGhhdCBkb2VzIGNsZWFyIHRoZSBlcnJvciBiZWNhdXNlIHRoZSB1
-bndyaXR0ZW4gYmxvY2tzIGFyZSB6ZXJvZWQgYW5kDQo+IGVycm9ycyBjbGVhcmVkIHdoZW4gdGhl
-eSBiZWNvbWUgYWxsb2NhdGVkIGFnYWluLg0KDQpZZXMsIHRoZSBwcm9ibGVtIHdhcyB0aGF0IHdy
-aXRlcyB3b24ndCBjbGVhciBlcnJvcnMuIHplcm9pbmcgdGhyb3VnaA0KZWl0aGVyIGhvbGUtcHVu
-Y2gsIHRydW5jYXRlLCB1bmxpbmtpbmcgdGhlIGZpbGUgc2hvdWxkIGFsbCB3b3JrDQooYXNzdW1p
-bmcgdGhlIGhvbGUtcHVuY2ggb3IgdHJ1bmNhdGUgcmFuZ2VzIHdob2xseSBjb250YWluIHRoZQ0K
-J2JhZGJsb2NrJyBzZWN0b3IpLg0KDQoNCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fX18NCj4gTGludXgtbnZkaW1tIG1haWxpbmcgbGlzdA0KPiBMaW51eC1u
-dmRpbW1AbGlzdHMuMDEub3JnDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGlu
-Zm8vbGludXgtbnZkaW1t
+On Wed, 2017-01-18 at 13:32 -0800, Dan Williams wrote:
+> On Wed, Jan 18, 2017 at 1:02 PM, Darrick J. Wong
+> <darrick.wong@oracle.com> wrote:
+> > On Wed, Jan 18, 2017 at 03:39:17PM -0500, Jeff Moyer wrote:
+> > > Jan Kara <jack@suse.cz> writes:
+> > > 
+> > > > On Tue 17-01-17 15:14:21, Vishal Verma wrote:
+> > > > > Your note on the online repair does raise another tangentially
+> > > > > related
+> > > > > topic. Currently, if there are badblocks, writes via the bio
+> > > > > submission
+> > > > > path will clear the error (if the hardware is able to remap
+> > > > > the bad
+> > > > > locations). However, if the filesystem is mounted eith DAX,
+> > > > > even
+> > > > > non-mmap operations - read() and write() will go through the
+> > > > > dax paths
+> > > > > (dax_do_io()). We haven't found a good/agreeable way to
+> > > > > perform
+> > > > > error-clearing in this case. So currently, if a dax mounted
+> > > > > filesystem
+> > > > > has badblocks, the only way to clear those badblocks is to
+> > > > > mount it
+> > > > > without DAX, and overwrite/zero the bad locations. This is a
+> > > > > pretty
+> > > > > terrible user experience, and I'm hoping this can be solved in
+> > > > > a better
+> > > > > way.
+> > > > 
+> > > > Please remind me, what is the problem with DAX code doing
+> > > > necessary work to
+> > > > clear the error when it gets EIO from memcpy on write?
+> > > 
+> > > You won't get an MCE for a store;  only loads generate them.
+> > > 
+> > > Won't fallocate FL_ZERO_RANGE clear bad blocks when mounted with
+> > > -o dax?
+> > 
+> > Not necessarily; XFS usually implements this by punching out the
+> > range
+> > and then reallocating it as unwritten blocks.
+> > 
+> 
+> That does clear the error because the unwritten blocks are zeroed and
+> errors cleared when they become allocated again.
+
+Yes, the problem was that writes won't clear errors. zeroing through
+either hole-punch, truncate, unlinking the file should all work
+(assuming the hole-punch or truncate ranges wholly contain the
+'badblock' sector).
+
+
+> _______________________________________________
+> Linux-nvdimm mailing list
+> Linux-nvdimm@lists.01.org
+> https://lists.01.org/mailman/listinfo/linux-nvdimm
+_______________________________________________
+Linux-nvdimm mailing list
+Linux-nvdimm@lists.01.org
+https://lists.01.org/mailman/listinfo/linux-nvdimm
diff --git a/a/content_digest b/N1/content_digest
index dd6dd88..0338188 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -9,60 +9,81 @@
  "ref\0x49r3406r2i.fsf@segfault.boston.devel.redhat.com\0"
  "ref\020170118210241.GE10498@birch.djwong.org\0"
  "ref\0CAPcyv4hd7bpCa7d9msX0Y8gLz7WsqXT3VExQwwLuAcsmMxVTPg@mail.gmail.com\0"
- "From\0Verma, Vishal L <vishal.l.verma@intel.com>\0"
+ "ref\0CAPcyv4hd7bpCa7d9msX0Y8gLz7WsqXT3VExQwwLuAcsmMxVTPg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org\0"
+ "From\0Verma, Vishal L <vishal.l.verma-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>\0"
  "Subject\0Re: [Lsf-pc] [LSF/MM TOPIC] Badblocks checking/representation in filesystems\0"
  "Date\0Wed, 18 Jan 2017 21:56:58 +0000\0"
  "To\0Williams"
-  Dan J <dan.j.williams@intel.com>
- " darrick.wong@oracle.com <darrick.wong@oracle.com>\0"
- "Cc\0Vyacheslav.Dubeyko@wdc.com <Vyacheslav.Dubeyko@wdc.com>"
-  jack@suse.cz <jack@suse.cz>
-  linux-block@vger.kernel.org <linux-block@vger.kernel.org>
-  linux-fsdevel@vger.kernel.org <linux-fsdevel@vger.kernel.org>
-  lsf-pc@lists.linux-foundation.org <lsf-pc@lists.linux-foundation.org>
-  linux-nvdimm@ml01.01.org <linux-nvdimm@ml01.01.org>
- " slava@dubeyko.com <slava@dubeyko.com>\0"
+  Dan J <dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
+ " darrick.wong-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org <darrick.wong-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>\0"
+ "Cc\0jack-AlSwsSmVLrQ@public.gmane.org <jack-AlSwsSmVLrQ@public.gmane.org>"
+  Vyacheslav.Dubeyko-Sjgp3cTcYWE@public.gmane.org <Vyacheslav.Dubeyko-Sjgp3cTcYWE@public.gmane.org>
+  linux-nvdimm-y27Ovi1pjclAfugRpC6u6w@public.gmane.org <linux-nvdimm-y27Ovi1pjclAfugRpC6u6w@public.gmane.org>
+  linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
+  slava-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org <slava-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
+  linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
+ " lsf-pc-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org <lsf-pc-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>\0"
  "\00:1\0"
  "b\0"
- "T24gV2VkLCAyMDE3LTAxLTE4IGF0IDEzOjMyIC0wODAwLCBEYW4gV2lsbGlhbXMgd3JvdGU6DQo+\n"
- "IE9uIFdlZCwgSmFuIDE4LCAyMDE3IGF0IDE6MDIgUE0sIERhcnJpY2sgSi4gV29uZw0KPiA8ZGFy\n"
- "cmljay53b25nQG9yYWNsZS5jb20+IHdyb3RlOg0KPiA+IE9uIFdlZCwgSmFuIDE4LCAyMDE3IGF0\n"
- "IDAzOjM5OjE3UE0gLTA1MDAsIEplZmYgTW95ZXIgd3JvdGU6DQo+ID4gPiBKYW4gS2FyYSA8amFj\n"
- "a0BzdXNlLmN6PiB3cml0ZXM6DQo+ID4gPiANCj4gPiA+ID4gT24gVHVlIDE3LTAxLTE3IDE1OjE0\n"
- "OjIxLCBWaXNoYWwgVmVybWEgd3JvdGU6DQo+ID4gPiA+ID4gWW91ciBub3RlIG9uIHRoZSBvbmxp\n"
- "bmUgcmVwYWlyIGRvZXMgcmFpc2UgYW5vdGhlciB0YW5nZW50aWFsbHkNCj4gPiA+ID4gPiByZWxh\n"
- "dGVkDQo+ID4gPiA+ID4gdG9waWMuIEN1cnJlbnRseSwgaWYgdGhlcmUgYXJlIGJhZGJsb2Nrcywg\n"
- "d3JpdGVzIHZpYSB0aGUgYmlvDQo+ID4gPiA+ID4gc3VibWlzc2lvbg0KPiA+ID4gPiA+IHBhdGgg\n"
- "d2lsbCBjbGVhciB0aGUgZXJyb3IgKGlmIHRoZSBoYXJkd2FyZSBpcyBhYmxlIHRvIHJlbWFwDQo+\n"
- "ID4gPiA+ID4gdGhlIGJhZA0KPiA+ID4gPiA+IGxvY2F0aW9ucykuIEhvd2V2ZXIsIGlmIHRoZSBm\n"
- "aWxlc3lzdGVtIGlzIG1vdW50ZWQgZWl0aCBEQVgsDQo+ID4gPiA+ID4gZXZlbg0KPiA+ID4gPiA+\n"
- "IG5vbi1tbWFwIG9wZXJhdGlvbnMgLSByZWFkKCkgYW5kIHdyaXRlKCkgd2lsbCBnbyB0aHJvdWdo\n"
- "IHRoZQ0KPiA+ID4gPiA+IGRheCBwYXRocw0KPiA+ID4gPiA+IChkYXhfZG9faW8oKSkuIFdlIGhh\n"
- "dmVuJ3QgZm91bmQgYSBnb29kL2FncmVlYWJsZSB3YXkgdG8NCj4gPiA+ID4gPiBwZXJmb3JtDQo+\n"
- "ID4gPiA+ID4gZXJyb3ItY2xlYXJpbmcgaW4gdGhpcyBjYXNlLiBTbyBjdXJyZW50bHksIGlmIGEg\n"
- "ZGF4IG1vdW50ZWQNCj4gPiA+ID4gPiBmaWxlc3lzdGVtDQo+ID4gPiA+ID4gaGFzIGJhZGJsb2Nr\n"
- "cywgdGhlIG9ubHkgd2F5IHRvIGNsZWFyIHRob3NlIGJhZGJsb2NrcyBpcyB0bw0KPiA+ID4gPiA+\n"
- "IG1vdW50IGl0DQo+ID4gPiA+ID4gd2l0aG91dCBEQVgsIGFuZCBvdmVyd3JpdGUvemVybyB0aGUg\n"
- "YmFkIGxvY2F0aW9ucy4gVGhpcyBpcyBhDQo+ID4gPiA+ID4gcHJldHR5DQo+ID4gPiA+ID4gdGVy\n"
- "cmlibGUgdXNlciBleHBlcmllbmNlLCBhbmQgSSdtIGhvcGluZyB0aGlzIGNhbiBiZSBzb2x2ZWQg\n"
- "aW4NCj4gPiA+ID4gPiBhIGJldHRlcg0KPiA+ID4gPiA+IHdheS4NCj4gPiA+ID4gDQo+ID4gPiA+\n"
- "IFBsZWFzZSByZW1pbmQgbWUsIHdoYXQgaXMgdGhlIHByb2JsZW0gd2l0aCBEQVggY29kZSBkb2lu\n"
- "Zw0KPiA+ID4gPiBuZWNlc3Nhcnkgd29yayB0bw0KPiA+ID4gPiBjbGVhciB0aGUgZXJyb3Igd2hl\n"
- "biBpdCBnZXRzIEVJTyBmcm9tIG1lbWNweSBvbiB3cml0ZT8NCj4gPiA+IA0KPiA+ID4gWW91IHdv\n"
- "bid0IGdldCBhbiBNQ0UgZm9yIGEgc3RvcmU7wqDCoG9ubHkgbG9hZHMgZ2VuZXJhdGUgdGhlbS4N\n"
- "Cj4gPiA+IA0KPiA+ID4gV29uJ3QgZmFsbG9jYXRlIEZMX1pFUk9fUkFOR0UgY2xlYXIgYmFkIGJs\n"
- "b2NrcyB3aGVuIG1vdW50ZWQgd2l0aA0KPiA+ID4gLW8gZGF4Pw0KPiA+IA0KPiA+IE5vdCBuZWNl\n"
- "c3NhcmlseTsgWEZTIHVzdWFsbHkgaW1wbGVtZW50cyB0aGlzIGJ5IHB1bmNoaW5nIG91dCB0aGUN\n"
- "Cj4gPiByYW5nZQ0KPiA+IGFuZCB0aGVuIHJlYWxsb2NhdGluZyBpdCBhcyB1bndyaXR0ZW4gYmxv\n"
- "Y2tzLg0KPiA+IA0KPiANCj4gVGhhdCBkb2VzIGNsZWFyIHRoZSBlcnJvciBiZWNhdXNlIHRoZSB1\n"
- "bndyaXR0ZW4gYmxvY2tzIGFyZSB6ZXJvZWQgYW5kDQo+IGVycm9ycyBjbGVhcmVkIHdoZW4gdGhl\n"
- "eSBiZWNvbWUgYWxsb2NhdGVkIGFnYWluLg0KDQpZZXMsIHRoZSBwcm9ibGVtIHdhcyB0aGF0IHdy\n"
- "aXRlcyB3b24ndCBjbGVhciBlcnJvcnMuIHplcm9pbmcgdGhyb3VnaA0KZWl0aGVyIGhvbGUtcHVu\n"
- "Y2gsIHRydW5jYXRlLCB1bmxpbmtpbmcgdGhlIGZpbGUgc2hvdWxkIGFsbCB3b3JrDQooYXNzdW1p\n"
- "bmcgdGhlIGhvbGUtcHVuY2ggb3IgdHJ1bmNhdGUgcmFuZ2VzIHdob2xseSBjb250YWluIHRoZQ0K\n"
- "J2JhZGJsb2NrJyBzZWN0b3IpLg0KDQoNCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f\n"
- "X19fX19fX19fX19fX19fX18NCj4gTGludXgtbnZkaW1tIG1haWxpbmcgbGlzdA0KPiBMaW51eC1u\n"
- "dmRpbW1AbGlzdHMuMDEub3JnDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGlu\n"
- Zm8vbGludXgtbnZkaW1t
+ "On Wed, 2017-01-18 at 13:32 -0800, Dan Williams wrote:\n"
+ "> On Wed, Jan 18, 2017 at 1:02 PM, Darrick J. Wong\n"
+ "> <darrick.wong@oracle.com> wrote:\n"
+ "> > On Wed, Jan 18, 2017 at 03:39:17PM -0500, Jeff Moyer wrote:\n"
+ "> > > Jan Kara <jack@suse.cz> writes:\n"
+ "> > > \n"
+ "> > > > On Tue 17-01-17 15:14:21, Vishal Verma wrote:\n"
+ "> > > > > Your note on the online repair does raise another tangentially\n"
+ "> > > > > related\n"
+ "> > > > > topic. Currently, if there are badblocks, writes via the bio\n"
+ "> > > > > submission\n"
+ "> > > > > path will clear the error (if the hardware is able to remap\n"
+ "> > > > > the bad\n"
+ "> > > > > locations). However, if the filesystem is mounted eith DAX,\n"
+ "> > > > > even\n"
+ "> > > > > non-mmap operations - read() and write() will go through the\n"
+ "> > > > > dax paths\n"
+ "> > > > > (dax_do_io()). We haven't found a good/agreeable way to\n"
+ "> > > > > perform\n"
+ "> > > > > error-clearing in this case. So currently, if a dax mounted\n"
+ "> > > > > filesystem\n"
+ "> > > > > has badblocks, the only way to clear those badblocks is to\n"
+ "> > > > > mount it\n"
+ "> > > > > without DAX, and overwrite/zero the bad locations. This is a\n"
+ "> > > > > pretty\n"
+ "> > > > > terrible user experience, and I'm hoping this can be solved in\n"
+ "> > > > > a better\n"
+ "> > > > > way.\n"
+ "> > > > \n"
+ "> > > > Please remind me, what is the problem with DAX code doing\n"
+ "> > > > necessary work to\n"
+ "> > > > clear the error when it gets EIO from memcpy on write?\n"
+ "> > > \n"
+ "> > > You won't get an MCE for a store;\302\240\302\240only loads generate them.\n"
+ "> > > \n"
+ "> > > Won't fallocate FL_ZERO_RANGE clear bad blocks when mounted with\n"
+ "> > > -o dax?\n"
+ "> > \n"
+ "> > Not necessarily; XFS usually implements this by punching out the\n"
+ "> > range\n"
+ "> > and then reallocating it as unwritten blocks.\n"
+ "> > \n"
+ "> \n"
+ "> That does clear the error because the unwritten blocks are zeroed and\n"
+ "> errors cleared when they become allocated again.\n"
+ "\n"
+ "Yes, the problem was that writes won't clear errors. zeroing through\n"
+ "either hole-punch, truncate, unlinking the file should all work\n"
+ "(assuming the hole-punch or truncate ranges wholly contain the\n"
+ "'badblock' sector).\n"
+ "\n"
+ "\n"
+ "> _______________________________________________\n"
+ "> Linux-nvdimm mailing list\n"
+ "> Linux-nvdimm@lists.01.org\n"
+ "> https://lists.01.org/mailman/listinfo/linux-nvdimm\n"
+ "_______________________________________________\n"
+ "Linux-nvdimm mailing list\n"
+ "Linux-nvdimm@lists.01.org\n"
+ https://lists.01.org/mailman/listinfo/linux-nvdimm
 
-94538d55ff2361f94764636b72c8da8f16ce1cf27786c21927733905d569f92a
+b20a9cb6ddcbfd331233e849f413c094d2fcd4e3bb98af9fd90ce1c6319203e8

diff --git a/a/1.txt b/N2/1.txt
index ea54898..a7b1bf8 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -1,40 +1,56 @@
-T24gV2VkLCAyMDE3LTAxLTE4IGF0IDEzOjMyIC0wODAwLCBEYW4gV2lsbGlhbXMgd3JvdGU6DQo+
-IE9uIFdlZCwgSmFuIDE4LCAyMDE3IGF0IDE6MDIgUE0sIERhcnJpY2sgSi4gV29uZw0KPiA8ZGFy
-cmljay53b25nQG9yYWNsZS5jb20+IHdyb3RlOg0KPiA+IE9uIFdlZCwgSmFuIDE4LCAyMDE3IGF0
-IDAzOjM5OjE3UE0gLTA1MDAsIEplZmYgTW95ZXIgd3JvdGU6DQo+ID4gPiBKYW4gS2FyYSA8amFj
-a0BzdXNlLmN6PiB3cml0ZXM6DQo+ID4gPiANCj4gPiA+ID4gT24gVHVlIDE3LTAxLTE3IDE1OjE0
-OjIxLCBWaXNoYWwgVmVybWEgd3JvdGU6DQo+ID4gPiA+ID4gWW91ciBub3RlIG9uIHRoZSBvbmxp
-bmUgcmVwYWlyIGRvZXMgcmFpc2UgYW5vdGhlciB0YW5nZW50aWFsbHkNCj4gPiA+ID4gPiByZWxh
-dGVkDQo+ID4gPiA+ID4gdG9waWMuIEN1cnJlbnRseSwgaWYgdGhlcmUgYXJlIGJhZGJsb2Nrcywg
-d3JpdGVzIHZpYSB0aGUgYmlvDQo+ID4gPiA+ID4gc3VibWlzc2lvbg0KPiA+ID4gPiA+IHBhdGgg
-d2lsbCBjbGVhciB0aGUgZXJyb3IgKGlmIHRoZSBoYXJkd2FyZSBpcyBhYmxlIHRvIHJlbWFwDQo+
-ID4gPiA+ID4gdGhlIGJhZA0KPiA+ID4gPiA+IGxvY2F0aW9ucykuIEhvd2V2ZXIsIGlmIHRoZSBm
-aWxlc3lzdGVtIGlzIG1vdW50ZWQgZWl0aCBEQVgsDQo+ID4gPiA+ID4gZXZlbg0KPiA+ID4gPiA+
-IG5vbi1tbWFwIG9wZXJhdGlvbnMgLSByZWFkKCkgYW5kIHdyaXRlKCkgd2lsbCBnbyB0aHJvdWdo
-IHRoZQ0KPiA+ID4gPiA+IGRheCBwYXRocw0KPiA+ID4gPiA+IChkYXhfZG9faW8oKSkuIFdlIGhh
-dmVuJ3QgZm91bmQgYSBnb29kL2FncmVlYWJsZSB3YXkgdG8NCj4gPiA+ID4gPiBwZXJmb3JtDQo+
-ID4gPiA+ID4gZXJyb3ItY2xlYXJpbmcgaW4gdGhpcyBjYXNlLiBTbyBjdXJyZW50bHksIGlmIGEg
-ZGF4IG1vdW50ZWQNCj4gPiA+ID4gPiBmaWxlc3lzdGVtDQo+ID4gPiA+ID4gaGFzIGJhZGJsb2Nr
-cywgdGhlIG9ubHkgd2F5IHRvIGNsZWFyIHRob3NlIGJhZGJsb2NrcyBpcyB0bw0KPiA+ID4gPiA+
-IG1vdW50IGl0DQo+ID4gPiA+ID4gd2l0aG91dCBEQVgsIGFuZCBvdmVyd3JpdGUvemVybyB0aGUg
-YmFkIGxvY2F0aW9ucy4gVGhpcyBpcyBhDQo+ID4gPiA+ID4gcHJldHR5DQo+ID4gPiA+ID4gdGVy
-cmlibGUgdXNlciBleHBlcmllbmNlLCBhbmQgSSdtIGhvcGluZyB0aGlzIGNhbiBiZSBzb2x2ZWQg
-aW4NCj4gPiA+ID4gPiBhIGJldHRlcg0KPiA+ID4gPiA+IHdheS4NCj4gPiA+ID4gDQo+ID4gPiA+
-IFBsZWFzZSByZW1pbmQgbWUsIHdoYXQgaXMgdGhlIHByb2JsZW0gd2l0aCBEQVggY29kZSBkb2lu
-Zw0KPiA+ID4gPiBuZWNlc3Nhcnkgd29yayB0bw0KPiA+ID4gPiBjbGVhciB0aGUgZXJyb3Igd2hl
-biBpdCBnZXRzIEVJTyBmcm9tIG1lbWNweSBvbiB3cml0ZT8NCj4gPiA+IA0KPiA+ID4gWW91IHdv
-bid0IGdldCBhbiBNQ0UgZm9yIGEgc3RvcmU7wqDCoG9ubHkgbG9hZHMgZ2VuZXJhdGUgdGhlbS4N
-Cj4gPiA+IA0KPiA+ID4gV29uJ3QgZmFsbG9jYXRlIEZMX1pFUk9fUkFOR0UgY2xlYXIgYmFkIGJs
-b2NrcyB3aGVuIG1vdW50ZWQgd2l0aA0KPiA+ID4gLW8gZGF4Pw0KPiA+IA0KPiA+IE5vdCBuZWNl
-c3NhcmlseTsgWEZTIHVzdWFsbHkgaW1wbGVtZW50cyB0aGlzIGJ5IHB1bmNoaW5nIG91dCB0aGUN
-Cj4gPiByYW5nZQ0KPiA+IGFuZCB0aGVuIHJlYWxsb2NhdGluZyBpdCBhcyB1bndyaXR0ZW4gYmxv
-Y2tzLg0KPiA+IA0KPiANCj4gVGhhdCBkb2VzIGNsZWFyIHRoZSBlcnJvciBiZWNhdXNlIHRoZSB1
-bndyaXR0ZW4gYmxvY2tzIGFyZSB6ZXJvZWQgYW5kDQo+IGVycm9ycyBjbGVhcmVkIHdoZW4gdGhl
-eSBiZWNvbWUgYWxsb2NhdGVkIGFnYWluLg0KDQpZZXMsIHRoZSBwcm9ibGVtIHdhcyB0aGF0IHdy
-aXRlcyB3b24ndCBjbGVhciBlcnJvcnMuIHplcm9pbmcgdGhyb3VnaA0KZWl0aGVyIGhvbGUtcHVu
-Y2gsIHRydW5jYXRlLCB1bmxpbmtpbmcgdGhlIGZpbGUgc2hvdWxkIGFsbCB3b3JrDQooYXNzdW1p
-bmcgdGhlIGhvbGUtcHVuY2ggb3IgdHJ1bmNhdGUgcmFuZ2VzIHdob2xseSBjb250YWluIHRoZQ0K
-J2JhZGJsb2NrJyBzZWN0b3IpLg0KDQoNCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fX18NCj4gTGludXgtbnZkaW1tIG1haWxpbmcgbGlzdA0KPiBMaW51eC1u
-dmRpbW1AbGlzdHMuMDEub3JnDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGlu
-Zm8vbGludXgtbnZkaW1t
+On Wed, 2017-01-18 at 13:32 -0800, Dan Williams wrote:
+> On Wed, Jan 18, 2017 at 1:02 PM, Darrick J. Wong
+> <darrick.wong@oracle.com> wrote:
+> > On Wed, Jan 18, 2017 at 03:39:17PM -0500, Jeff Moyer wrote:
+> > > Jan Kara <jack@suse.cz> writes:
+> > > 
+> > > > On Tue 17-01-17 15:14:21, Vishal Verma wrote:
+> > > > > Your note on the online repair does raise another tangentially
+> > > > > related
+> > > > > topic. Currently, if there are badblocks, writes via the bio
+> > > > > submission
+> > > > > path will clear the error (if the hardware is able to remap
+> > > > > the bad
+> > > > > locations). However, if the filesystem is mounted eith DAX,
+> > > > > even
+> > > > > non-mmap operations - read() and write() will go through the
+> > > > > dax paths
+> > > > > (dax_do_io()). We haven't found a good/agreeable way to
+> > > > > perform
+> > > > > error-clearing in this case. So currently, if a dax mounted
+> > > > > filesystem
+> > > > > has badblocks, the only way to clear those badblocks is to
+> > > > > mount it
+> > > > > without DAX, and overwrite/zero the bad locations. This is a
+> > > > > pretty
+> > > > > terrible user experience, and I'm hoping this can be solved in
+> > > > > a better
+> > > > > way.
+> > > > 
+> > > > Please remind me, what is the problem with DAX code doing
+> > > > necessary work to
+> > > > clear the error when it gets EIO from memcpy on write?
+> > > 
+> > > You won't get an MCE for a store;  only loads generate them.
+> > > 
+> > > Won't fallocate FL_ZERO_RANGE clear bad blocks when mounted with
+> > > -o dax?
+> > 
+> > Not necessarily; XFS usually implements this by punching out the
+> > range
+> > and then reallocating it as unwritten blocks.
+> > 
+> 
+> That does clear the error because the unwritten blocks are zeroed and
+> errors cleared when they become allocated again.
+
+Yes, the problem was that writes won't clear errors. zeroing through
+either hole-punch, truncate, unlinking the file should all work
+(assuming the hole-punch or truncate ranges wholly contain the
+'badblock' sector).
+
+
+> _______________________________________________
+> Linux-nvdimm mailing list
+> Linux-nvdimm@lists.01.org
+> https://lists.01.org/mailman/listinfo/linux-nvdimm
diff --git a/a/content_digest b/N2/content_digest
index dd6dd88..c7fbd6e 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -24,45 +24,61 @@
  " slava@dubeyko.com <slava@dubeyko.com>\0"
  "\00:1\0"
  "b\0"
- "T24gV2VkLCAyMDE3LTAxLTE4IGF0IDEzOjMyIC0wODAwLCBEYW4gV2lsbGlhbXMgd3JvdGU6DQo+\n"
- "IE9uIFdlZCwgSmFuIDE4LCAyMDE3IGF0IDE6MDIgUE0sIERhcnJpY2sgSi4gV29uZw0KPiA8ZGFy\n"
- "cmljay53b25nQG9yYWNsZS5jb20+IHdyb3RlOg0KPiA+IE9uIFdlZCwgSmFuIDE4LCAyMDE3IGF0\n"
- "IDAzOjM5OjE3UE0gLTA1MDAsIEplZmYgTW95ZXIgd3JvdGU6DQo+ID4gPiBKYW4gS2FyYSA8amFj\n"
- "a0BzdXNlLmN6PiB3cml0ZXM6DQo+ID4gPiANCj4gPiA+ID4gT24gVHVlIDE3LTAxLTE3IDE1OjE0\n"
- "OjIxLCBWaXNoYWwgVmVybWEgd3JvdGU6DQo+ID4gPiA+ID4gWW91ciBub3RlIG9uIHRoZSBvbmxp\n"
- "bmUgcmVwYWlyIGRvZXMgcmFpc2UgYW5vdGhlciB0YW5nZW50aWFsbHkNCj4gPiA+ID4gPiByZWxh\n"
- "dGVkDQo+ID4gPiA+ID4gdG9waWMuIEN1cnJlbnRseSwgaWYgdGhlcmUgYXJlIGJhZGJsb2Nrcywg\n"
- "d3JpdGVzIHZpYSB0aGUgYmlvDQo+ID4gPiA+ID4gc3VibWlzc2lvbg0KPiA+ID4gPiA+IHBhdGgg\n"
- "d2lsbCBjbGVhciB0aGUgZXJyb3IgKGlmIHRoZSBoYXJkd2FyZSBpcyBhYmxlIHRvIHJlbWFwDQo+\n"
- "ID4gPiA+ID4gdGhlIGJhZA0KPiA+ID4gPiA+IGxvY2F0aW9ucykuIEhvd2V2ZXIsIGlmIHRoZSBm\n"
- "aWxlc3lzdGVtIGlzIG1vdW50ZWQgZWl0aCBEQVgsDQo+ID4gPiA+ID4gZXZlbg0KPiA+ID4gPiA+\n"
- "IG5vbi1tbWFwIG9wZXJhdGlvbnMgLSByZWFkKCkgYW5kIHdyaXRlKCkgd2lsbCBnbyB0aHJvdWdo\n"
- "IHRoZQ0KPiA+ID4gPiA+IGRheCBwYXRocw0KPiA+ID4gPiA+IChkYXhfZG9faW8oKSkuIFdlIGhh\n"
- "dmVuJ3QgZm91bmQgYSBnb29kL2FncmVlYWJsZSB3YXkgdG8NCj4gPiA+ID4gPiBwZXJmb3JtDQo+\n"
- "ID4gPiA+ID4gZXJyb3ItY2xlYXJpbmcgaW4gdGhpcyBjYXNlLiBTbyBjdXJyZW50bHksIGlmIGEg\n"
- "ZGF4IG1vdW50ZWQNCj4gPiA+ID4gPiBmaWxlc3lzdGVtDQo+ID4gPiA+ID4gaGFzIGJhZGJsb2Nr\n"
- "cywgdGhlIG9ubHkgd2F5IHRvIGNsZWFyIHRob3NlIGJhZGJsb2NrcyBpcyB0bw0KPiA+ID4gPiA+\n"
- "IG1vdW50IGl0DQo+ID4gPiA+ID4gd2l0aG91dCBEQVgsIGFuZCBvdmVyd3JpdGUvemVybyB0aGUg\n"
- "YmFkIGxvY2F0aW9ucy4gVGhpcyBpcyBhDQo+ID4gPiA+ID4gcHJldHR5DQo+ID4gPiA+ID4gdGVy\n"
- "cmlibGUgdXNlciBleHBlcmllbmNlLCBhbmQgSSdtIGhvcGluZyB0aGlzIGNhbiBiZSBzb2x2ZWQg\n"
- "aW4NCj4gPiA+ID4gPiBhIGJldHRlcg0KPiA+ID4gPiA+IHdheS4NCj4gPiA+ID4gDQo+ID4gPiA+\n"
- "IFBsZWFzZSByZW1pbmQgbWUsIHdoYXQgaXMgdGhlIHByb2JsZW0gd2l0aCBEQVggY29kZSBkb2lu\n"
- "Zw0KPiA+ID4gPiBuZWNlc3Nhcnkgd29yayB0bw0KPiA+ID4gPiBjbGVhciB0aGUgZXJyb3Igd2hl\n"
- "biBpdCBnZXRzIEVJTyBmcm9tIG1lbWNweSBvbiB3cml0ZT8NCj4gPiA+IA0KPiA+ID4gWW91IHdv\n"
- "bid0IGdldCBhbiBNQ0UgZm9yIGEgc3RvcmU7wqDCoG9ubHkgbG9hZHMgZ2VuZXJhdGUgdGhlbS4N\n"
- "Cj4gPiA+IA0KPiA+ID4gV29uJ3QgZmFsbG9jYXRlIEZMX1pFUk9fUkFOR0UgY2xlYXIgYmFkIGJs\n"
- "b2NrcyB3aGVuIG1vdW50ZWQgd2l0aA0KPiA+ID4gLW8gZGF4Pw0KPiA+IA0KPiA+IE5vdCBuZWNl\n"
- "c3NhcmlseTsgWEZTIHVzdWFsbHkgaW1wbGVtZW50cyB0aGlzIGJ5IHB1bmNoaW5nIG91dCB0aGUN\n"
- "Cj4gPiByYW5nZQ0KPiA+IGFuZCB0aGVuIHJlYWxsb2NhdGluZyBpdCBhcyB1bndyaXR0ZW4gYmxv\n"
- "Y2tzLg0KPiA+IA0KPiANCj4gVGhhdCBkb2VzIGNsZWFyIHRoZSBlcnJvciBiZWNhdXNlIHRoZSB1\n"
- "bndyaXR0ZW4gYmxvY2tzIGFyZSB6ZXJvZWQgYW5kDQo+IGVycm9ycyBjbGVhcmVkIHdoZW4gdGhl\n"
- "eSBiZWNvbWUgYWxsb2NhdGVkIGFnYWluLg0KDQpZZXMsIHRoZSBwcm9ibGVtIHdhcyB0aGF0IHdy\n"
- "aXRlcyB3b24ndCBjbGVhciBlcnJvcnMuIHplcm9pbmcgdGhyb3VnaA0KZWl0aGVyIGhvbGUtcHVu\n"
- "Y2gsIHRydW5jYXRlLCB1bmxpbmtpbmcgdGhlIGZpbGUgc2hvdWxkIGFsbCB3b3JrDQooYXNzdW1p\n"
- "bmcgdGhlIGhvbGUtcHVuY2ggb3IgdHJ1bmNhdGUgcmFuZ2VzIHdob2xseSBjb250YWluIHRoZQ0K\n"
- "J2JhZGJsb2NrJyBzZWN0b3IpLg0KDQoNCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f\n"
- "X19fX19fX19fX19fX19fX18NCj4gTGludXgtbnZkaW1tIG1haWxpbmcgbGlzdA0KPiBMaW51eC1u\n"
- "dmRpbW1AbGlzdHMuMDEub3JnDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGlu\n"
- Zm8vbGludXgtbnZkaW1t
+ "On Wed, 2017-01-18 at 13:32 -0800, Dan Williams wrote:\n"
+ "> On Wed, Jan 18, 2017 at 1:02 PM, Darrick J. Wong\n"
+ "> <darrick.wong@oracle.com> wrote:\n"
+ "> > On Wed, Jan 18, 2017 at 03:39:17PM -0500, Jeff Moyer wrote:\n"
+ "> > > Jan Kara <jack@suse.cz> writes:\n"
+ "> > > \n"
+ "> > > > On Tue 17-01-17 15:14:21, Vishal Verma wrote:\n"
+ "> > > > > Your note on the online repair does raise another tangentially\n"
+ "> > > > > related\n"
+ "> > > > > topic. Currently, if there are badblocks, writes via the bio\n"
+ "> > > > > submission\n"
+ "> > > > > path will clear the error (if the hardware is able to remap\n"
+ "> > > > > the bad\n"
+ "> > > > > locations). However, if the filesystem is mounted eith DAX,\n"
+ "> > > > > even\n"
+ "> > > > > non-mmap operations - read() and write() will go through the\n"
+ "> > > > > dax paths\n"
+ "> > > > > (dax_do_io()). We haven't found a good/agreeable way to\n"
+ "> > > > > perform\n"
+ "> > > > > error-clearing in this case. So currently, if a dax mounted\n"
+ "> > > > > filesystem\n"
+ "> > > > > has badblocks, the only way to clear those badblocks is to\n"
+ "> > > > > mount it\n"
+ "> > > > > without DAX, and overwrite/zero the bad locations. This is a\n"
+ "> > > > > pretty\n"
+ "> > > > > terrible user experience, and I'm hoping this can be solved in\n"
+ "> > > > > a better\n"
+ "> > > > > way.\n"
+ "> > > > \n"
+ "> > > > Please remind me, what is the problem with DAX code doing\n"
+ "> > > > necessary work to\n"
+ "> > > > clear the error when it gets EIO from memcpy on write?\n"
+ "> > > \n"
+ "> > > You won't get an MCE for a store;\302\240\302\240only loads generate them.\n"
+ "> > > \n"
+ "> > > Won't fallocate FL_ZERO_RANGE clear bad blocks when mounted with\n"
+ "> > > -o dax?\n"
+ "> > \n"
+ "> > Not necessarily; XFS usually implements this by punching out the\n"
+ "> > range\n"
+ "> > and then reallocating it as unwritten blocks.\n"
+ "> > \n"
+ "> \n"
+ "> That does clear the error because the unwritten blocks are zeroed and\n"
+ "> errors cleared when they become allocated again.\n"
+ "\n"
+ "Yes, the problem was that writes won't clear errors. zeroing through\n"
+ "either hole-punch, truncate, unlinking the file should all work\n"
+ "(assuming the hole-punch or truncate ranges wholly contain the\n"
+ "'badblock' sector).\n"
+ "\n"
+ "\n"
+ "> _______________________________________________\n"
+ "> Linux-nvdimm mailing list\n"
+ "> Linux-nvdimm@lists.01.org\n"
+ > https://lists.01.org/mailman/listinfo/linux-nvdimm
 
-94538d55ff2361f94764636b72c8da8f16ce1cf27786c21927733905d569f92a
+f633cc9255952662cf9e6c405f88cafb86d4b1172a1a46c6a357ec1e05cd4615

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.