diff for duplicates of <1462484695.29294.7.camel@intel.com> diff --git a/a/1.txt b/N1/1.txt index b18755c..3a45571 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,30 +1,40 @@ -T24gVGh1LCAyMDE2LTA1LTA1IGF0IDA4OjIyIC0wNzAwLCBDaHJpc3RvcGggSGVsbHdpZyB3cm90 -ZToNCj4gT24gVGh1LCBNYXkgMDUsIDIwMTYgYXQgMDg6MTU6MzJBTSAtMDcwMCwgRGFuIFdpbGxp -YW1zIHdyb3RlOg0KPiA+IA0KPiA+ID4gDQo+ID4gPiBBZ3JlZWQgLSBtYWtpZyBPX0RJUkVDVCBs -ZXNzIGRpcmVjdCB0aGFuIG5vdCBoYXZpbmcgaXQgaXMgcGxhaW4NCj4gPiA+IHN0dXBpZCwNCj4g -PiA+IGFuZCBJIHNvbWVob3cgbWlzc2VkIHRoaXMgaW5pdGlhbGx5Lg0KPiA+IE9mIGNvdXJzZSBJ -IGRpc2FncmVlIGJlY2F1c2UgbGlrZSBEYXZlIGFyZ3VlcyBpbiB0aGUgbXN5bmMgY2FzZSB3ZQ0K -PiA+IHNob3VsZCBkbyB0aGUgY29ycmVjdCB0aGluZyBmaXJzdCBhbmQgbWFrZSBpdCBmYXN0IGxh -dGVyLCBidXQgYWxzbw0KPiA+IGxpa2UgRGF2ZSB0aGlzIGFyZ3VpbmcgaW4gY2lyY2xlcyBpcyBn -ZXR0aW5nIHRpcmVzb21lLg0KPiBXZSBzaG91bGQgZG8gdGhlIHJpZ2h0IHRoaW5nIGZpcnN0LCBh -bmQgbWFrZSBpdCBmYXN0IGxhdGVyLsKgwqBCdXQgdGhpcw0KPiBwcm9wb3NhbCBpcyBub3QgZ2V0 -dGluZyBpdCByaWdodCAtIGl0IHN0aWxsIGRvZXMgbm90IGhhbmRsZSBlcnJvcnMNCj4gZm9yIHRo -ZSBmYXN0IHBhdGgsIGJ1dCBtYWdpY2FsbHkgbWFrZXMgaXQgd29yayBmb3IgZGlyZWN0IEkvTyBi -eQ0KPiBpbiBnZW5lcmFsIHVzaW5nIGEgbGVzcyBvcHRpb25hbCBwYXRoIGZvciBPX0RJUkVDVC7C -oMKgSXQncyBnZXR0aW5nIHRoZQ0KPiB3b3JzdCBvZiBhbGwgY2hvaWNlcy4NCj4gDQo+IEFzIGZh -ciBhcyBJIGNhbiB0ZWxsIHRoZSBvbmx5IHNlbnNpYmxlIG9wdGlvbiBpcyB0bzoNCj4gDQo+IMKg -LSBhbHdheXMgdHJ5IGRheC1saWtlIEkvTyBmaXJzdA0KPiDCoC0gaGF2ZSBhIGN1c3RvbSBnZXRf -dXNlcl9wYWdlcyArIHJ3X2J5dGVzIGZhbGxiYWNrIGhhbmRsZXMgYmFkIGJsb2Nrcw0KPiDCoMKg -wqB3aGVuIGhpdHRpbmcgRUlPDQoNCkknbSBub3Qgc3VyZSBJIGNvbXBsZXRlbHkgdW5kZXJzdGFu -ZCBob3cgdGhpcyB3aWxsIHdvcms/IENhbiB5b3UgZXhwbGFpbg0KYSBiaXQ/IFdvdWxkIHdlIGhh -dmUgdG8gZXhwb3J0IHJ3X2J5dGVzIHVwIHRvIGxheWVycyBhYm92ZSB0aGUgcG1lbQ0KZHJpdmVy -PyBXaGVyZSBkb2VzIGdldF91c2VyX3BhZ2VzIGNvbWUgaW4/DQoNCj4gDQo+IEFuZCB0aGVuIHdl -IG5lZWQgdG8gc29ydCBvdXQgdGhlIGNvbmN1cnJlbnQgd3JpdGUgc3luY2hyb25pemF0aW9uLg0K -PiBBZ2FpbiB0aGVyZSBJIHRoaW5rIHdlIGFic29sdXRlbHkgaGF2ZSB0byBvYmV5IFBvc2l4IGZv -ciB0aGUgIU9fRElSRUNUDQo+IGNhc2UgYW5kIGNhbiBhdm9pZCBpdCBmb3IgT19ESVJFQ1QsIHNp -bWlsYXIgdG8gdGhlIGV4aXN0aW5nIG5vbi1EQVgNCj4gc2VtYW50aWNzLsKgwqBJZiB3ZSB3YW50 -IGFueSBzcGVjaWFsIGFkZGl0aW9uYWwgc2VtYW50aWNzIHdlIF93aWxsXyBuZWVkDQo+IGEgc3Bl -Y2lhbCBPX0RBWCBmbGFnLg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f -X19fX19fX19fXw0KPiBMaW51eC1udmRpbW0gbWFpbGluZyBsaXN0DQo+IExpbnV4LW52ZGltbUBs -aXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 -eC1udmRpbW0= +On Thu, 2016-05-05 at 08:22 -0700, Christoph Hellwig wrote: +> On Thu, May 05, 2016 at 08:15:32AM -0700, Dan Williams wrote: +> > +> > > +> > > Agreed - makig O_DIRECT less direct than not having it is plain +> > > stupid, +> > > and I somehow missed this initially. +> > Of course I disagree because like Dave argues in the msync case we +> > should do the correct thing first and make it fast later, but also +> > like Dave this arguing in circles is getting tiresome. +> We should do the right thing first, and make it fast later. But this +> proposal is not getting it right - it still does not handle errors +> for the fast path, but magically makes it work for direct I/O by +> in general using a less optional path for O_DIRECT. It's getting the +> worst of all choices. +> +> As far as I can tell the only sensible option is to: +> +> - always try dax-like I/O first +> - have a custom get_user_pages + rw_bytes fallback handles bad blocks +> when hitting EIO + +I'm not sure I completely understand how this will work? Can you explain +a bit? Would we have to export rw_bytes up to layers above the pmem +driver? Where does get_user_pages come in? + +> +> And then we need to sort out the concurrent write synchronization. +> Again there I think we absolutely have to obey Posix for the !O_DIRECT +> case and can avoid it for O_DIRECT, similar to the existing non-DAX +> semantics. If we want any special additional semantics we _will_ need +> a special O_DAX flag. +> _______________________________________________ +> Linux-nvdimm mailing list +> Linux-nvdimm@lists.01.org +> https://lists.01.org/mailman/listinfo/linux-nvdimm +_______________________________________________ +xfs mailing list +xfs@oss.sgi.com +http://oss.sgi.com/mailman/listinfo/xfs diff --git a/a/content_digest b/N1/content_digest index 475c59a..969c7a7 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -10,50 +10,59 @@ "To\0Williams" Dan J <dan.j.williams@intel.com> " hch@infradead.org <hch@infradead.org>\0" - "Cc\0linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>" - linux-block@vger.kernel.org <linux-block@vger.kernel.org> - xfs@oss.sgi.com <xfs@oss.sgi.com> + "Cc\0axboe@fb.com <axboe@fb.com>" + jack@suse.cz <jack@suse.cz> + matthew@wil.cx <matthew@wil.cx> linux-nvdimm@ml01.01.org <linux-nvdimm@ml01.01.org> + linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> + xfs@oss.sgi.com <xfs@oss.sgi.com> + linux-block@vger.kernel.org <linux-block@vger.kernel.org> linux-mm@kvack.org <linux-mm@kvack.org> viro@zeniv.linux.org.uk <viro@zeniv.linux.org.uk> - axboe@fb.com <axboe@fb.com> - akpm@linux-foundation.org <akpm@linux-foundation.org> linux-fsdevel@vger.kernel.org <linux-fsdevel@vger.kernel.org> - linux-ext4@vger.kernel.org <linux-ext4@vger.kernel.org> - david@fromorbit.com <david@fromorbit.com> - jack@suse.cz <jack@suse.cz> - " matthew@wil.cx <matthew@wil.cx>\0" + akpm@linux-foundation.org <akpm@linux-foundation.org> + " linux-ext4@vger.kernel.org <linux-ext4@vger.kernel.org>\0" "\00:1\0" "b\0" - "T24gVGh1LCAyMDE2LTA1LTA1IGF0IDA4OjIyIC0wNzAwLCBDaHJpc3RvcGggSGVsbHdpZyB3cm90\n" - "ZToNCj4gT24gVGh1LCBNYXkgMDUsIDIwMTYgYXQgMDg6MTU6MzJBTSAtMDcwMCwgRGFuIFdpbGxp\n" - "YW1zIHdyb3RlOg0KPiA+IA0KPiA+ID4gDQo+ID4gPiBBZ3JlZWQgLSBtYWtpZyBPX0RJUkVDVCBs\n" - "ZXNzIGRpcmVjdCB0aGFuIG5vdCBoYXZpbmcgaXQgaXMgcGxhaW4NCj4gPiA+IHN0dXBpZCwNCj4g\n" - "PiA+IGFuZCBJIHNvbWVob3cgbWlzc2VkIHRoaXMgaW5pdGlhbGx5Lg0KPiA+IE9mIGNvdXJzZSBJ\n" - "IGRpc2FncmVlIGJlY2F1c2UgbGlrZSBEYXZlIGFyZ3VlcyBpbiB0aGUgbXN5bmMgY2FzZSB3ZQ0K\n" - "PiA+IHNob3VsZCBkbyB0aGUgY29ycmVjdCB0aGluZyBmaXJzdCBhbmQgbWFrZSBpdCBmYXN0IGxh\n" - "dGVyLCBidXQgYWxzbw0KPiA+IGxpa2UgRGF2ZSB0aGlzIGFyZ3VpbmcgaW4gY2lyY2xlcyBpcyBn\n" - "ZXR0aW5nIHRpcmVzb21lLg0KPiBXZSBzaG91bGQgZG8gdGhlIHJpZ2h0IHRoaW5nIGZpcnN0LCBh\n" - "bmQgbWFrZSBpdCBmYXN0IGxhdGVyLsKgwqBCdXQgdGhpcw0KPiBwcm9wb3NhbCBpcyBub3QgZ2V0\n" - "dGluZyBpdCByaWdodCAtIGl0IHN0aWxsIGRvZXMgbm90IGhhbmRsZSBlcnJvcnMNCj4gZm9yIHRo\n" - "ZSBmYXN0IHBhdGgsIGJ1dCBtYWdpY2FsbHkgbWFrZXMgaXQgd29yayBmb3IgZGlyZWN0IEkvTyBi\n" - "eQ0KPiBpbiBnZW5lcmFsIHVzaW5nIGEgbGVzcyBvcHRpb25hbCBwYXRoIGZvciBPX0RJUkVDVC7C\n" - "oMKgSXQncyBnZXR0aW5nIHRoZQ0KPiB3b3JzdCBvZiBhbGwgY2hvaWNlcy4NCj4gDQo+IEFzIGZh\n" - "ciBhcyBJIGNhbiB0ZWxsIHRoZSBvbmx5IHNlbnNpYmxlIG9wdGlvbiBpcyB0bzoNCj4gDQo+IMKg\n" - "LSBhbHdheXMgdHJ5IGRheC1saWtlIEkvTyBmaXJzdA0KPiDCoC0gaGF2ZSBhIGN1c3RvbSBnZXRf\n" - "dXNlcl9wYWdlcyArIHJ3X2J5dGVzIGZhbGxiYWNrIGhhbmRsZXMgYmFkIGJsb2Nrcw0KPiDCoMKg\n" - "wqB3aGVuIGhpdHRpbmcgRUlPDQoNCkknbSBub3Qgc3VyZSBJIGNvbXBsZXRlbHkgdW5kZXJzdGFu\n" - "ZCBob3cgdGhpcyB3aWxsIHdvcms/IENhbiB5b3UgZXhwbGFpbg0KYSBiaXQ/IFdvdWxkIHdlIGhh\n" - "dmUgdG8gZXhwb3J0IHJ3X2J5dGVzIHVwIHRvIGxheWVycyBhYm92ZSB0aGUgcG1lbQ0KZHJpdmVy\n" - "PyBXaGVyZSBkb2VzIGdldF91c2VyX3BhZ2VzIGNvbWUgaW4/DQoNCj4gDQo+IEFuZCB0aGVuIHdl\n" - "IG5lZWQgdG8gc29ydCBvdXQgdGhlIGNvbmN1cnJlbnQgd3JpdGUgc3luY2hyb25pemF0aW9uLg0K\n" - "PiBBZ2FpbiB0aGVyZSBJIHRoaW5rIHdlIGFic29sdXRlbHkgaGF2ZSB0byBvYmV5IFBvc2l4IGZv\n" - "ciB0aGUgIU9fRElSRUNUDQo+IGNhc2UgYW5kIGNhbiBhdm9pZCBpdCBmb3IgT19ESVJFQ1QsIHNp\n" - "bWlsYXIgdG8gdGhlIGV4aXN0aW5nIG5vbi1EQVgNCj4gc2VtYW50aWNzLsKgwqBJZiB3ZSB3YW50\n" - "IGFueSBzcGVjaWFsIGFkZGl0aW9uYWwgc2VtYW50aWNzIHdlIF93aWxsXyBuZWVkDQo+IGEgc3Bl\n" - "Y2lhbCBPX0RBWCBmbGFnLg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f\n" - "X19fX19fX19fXw0KPiBMaW51eC1udmRpbW0gbWFpbGluZyBsaXN0DQo+IExpbnV4LW52ZGltbUBs\n" - "aXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51\n" - eC1udmRpbW0= + "On Thu, 2016-05-05 at 08:22 -0700, Christoph Hellwig wrote:\n" + "> On Thu, May 05, 2016 at 08:15:32AM -0700, Dan Williams wrote:\n" + "> > \n" + "> > > \n" + "> > > Agreed - makig O_DIRECT less direct than not having it is plain\n" + "> > > stupid,\n" + "> > > and I somehow missed this initially.\n" + "> > Of course I disagree because like Dave argues in the msync case we\n" + "> > should do the correct thing first and make it fast later, but also\n" + "> > like Dave this arguing in circles is getting tiresome.\n" + "> We should do the right thing first, and make it fast later.\302\240\302\240But this\n" + "> proposal is not getting it right - it still does not handle errors\n" + "> for the fast path, but magically makes it work for direct I/O by\n" + "> in general using a less optional path for O_DIRECT.\302\240\302\240It's getting the\n" + "> worst of all choices.\n" + "> \n" + "> As far as I can tell the only sensible option is to:\n" + "> \n" + "> \302\240- always try dax-like I/O first\n" + "> \302\240- have a custom get_user_pages + rw_bytes fallback handles bad blocks\n" + "> \302\240\302\240\302\240when hitting EIO\n" + "\n" + "I'm not sure I completely understand how this will work? Can you explain\n" + "a bit? Would we have to export rw_bytes up to layers above the pmem\n" + "driver? Where does get_user_pages come in?\n" + "\n" + "> \n" + "> And then we need to sort out the concurrent write synchronization.\n" + "> Again there I think we absolutely have to obey Posix for the !O_DIRECT\n" + "> case and can avoid it for O_DIRECT, similar to the existing non-DAX\n" + "> semantics.\302\240\302\240If we want any special additional semantics we _will_ need\n" + "> a special O_DAX flag.\n" + "> _______________________________________________\n" + "> Linux-nvdimm mailing list\n" + "> Linux-nvdimm@lists.01.org\n" + "> https://lists.01.org/mailman/listinfo/linux-nvdimm\n" + "_______________________________________________\n" + "xfs mailing list\n" + "xfs@oss.sgi.com\n" + http://oss.sgi.com/mailman/listinfo/xfs -32092709c38194cc19a2c1d44d33d30202ccd28ad53b93a5269b8789ea984828 +a8b2de9c1c4a7e30bcd07e757630402892b93a7b44aa3dbe9e93a695ddb255b8
diff --git a/a/1.txt b/N2/1.txt index b18755c..6b397d3 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -1,30 +1,36 @@ -T24gVGh1LCAyMDE2LTA1LTA1IGF0IDA4OjIyIC0wNzAwLCBDaHJpc3RvcGggSGVsbHdpZyB3cm90 -ZToNCj4gT24gVGh1LCBNYXkgMDUsIDIwMTYgYXQgMDg6MTU6MzJBTSAtMDcwMCwgRGFuIFdpbGxp -YW1zIHdyb3RlOg0KPiA+IA0KPiA+ID4gDQo+ID4gPiBBZ3JlZWQgLSBtYWtpZyBPX0RJUkVDVCBs -ZXNzIGRpcmVjdCB0aGFuIG5vdCBoYXZpbmcgaXQgaXMgcGxhaW4NCj4gPiA+IHN0dXBpZCwNCj4g -PiA+IGFuZCBJIHNvbWVob3cgbWlzc2VkIHRoaXMgaW5pdGlhbGx5Lg0KPiA+IE9mIGNvdXJzZSBJ -IGRpc2FncmVlIGJlY2F1c2UgbGlrZSBEYXZlIGFyZ3VlcyBpbiB0aGUgbXN5bmMgY2FzZSB3ZQ0K -PiA+IHNob3VsZCBkbyB0aGUgY29ycmVjdCB0aGluZyBmaXJzdCBhbmQgbWFrZSBpdCBmYXN0IGxh -dGVyLCBidXQgYWxzbw0KPiA+IGxpa2UgRGF2ZSB0aGlzIGFyZ3VpbmcgaW4gY2lyY2xlcyBpcyBn -ZXR0aW5nIHRpcmVzb21lLg0KPiBXZSBzaG91bGQgZG8gdGhlIHJpZ2h0IHRoaW5nIGZpcnN0LCBh -bmQgbWFrZSBpdCBmYXN0IGxhdGVyLsKgwqBCdXQgdGhpcw0KPiBwcm9wb3NhbCBpcyBub3QgZ2V0 -dGluZyBpdCByaWdodCAtIGl0IHN0aWxsIGRvZXMgbm90IGhhbmRsZSBlcnJvcnMNCj4gZm9yIHRo -ZSBmYXN0IHBhdGgsIGJ1dCBtYWdpY2FsbHkgbWFrZXMgaXQgd29yayBmb3IgZGlyZWN0IEkvTyBi -eQ0KPiBpbiBnZW5lcmFsIHVzaW5nIGEgbGVzcyBvcHRpb25hbCBwYXRoIGZvciBPX0RJUkVDVC7C -oMKgSXQncyBnZXR0aW5nIHRoZQ0KPiB3b3JzdCBvZiBhbGwgY2hvaWNlcy4NCj4gDQo+IEFzIGZh -ciBhcyBJIGNhbiB0ZWxsIHRoZSBvbmx5IHNlbnNpYmxlIG9wdGlvbiBpcyB0bzoNCj4gDQo+IMKg -LSBhbHdheXMgdHJ5IGRheC1saWtlIEkvTyBmaXJzdA0KPiDCoC0gaGF2ZSBhIGN1c3RvbSBnZXRf -dXNlcl9wYWdlcyArIHJ3X2J5dGVzIGZhbGxiYWNrIGhhbmRsZXMgYmFkIGJsb2Nrcw0KPiDCoMKg -wqB3aGVuIGhpdHRpbmcgRUlPDQoNCkknbSBub3Qgc3VyZSBJIGNvbXBsZXRlbHkgdW5kZXJzdGFu -ZCBob3cgdGhpcyB3aWxsIHdvcms/IENhbiB5b3UgZXhwbGFpbg0KYSBiaXQ/IFdvdWxkIHdlIGhh -dmUgdG8gZXhwb3J0IHJ3X2J5dGVzIHVwIHRvIGxheWVycyBhYm92ZSB0aGUgcG1lbQ0KZHJpdmVy -PyBXaGVyZSBkb2VzIGdldF91c2VyX3BhZ2VzIGNvbWUgaW4/DQoNCj4gDQo+IEFuZCB0aGVuIHdl -IG5lZWQgdG8gc29ydCBvdXQgdGhlIGNvbmN1cnJlbnQgd3JpdGUgc3luY2hyb25pemF0aW9uLg0K -PiBBZ2FpbiB0aGVyZSBJIHRoaW5rIHdlIGFic29sdXRlbHkgaGF2ZSB0byBvYmV5IFBvc2l4IGZv -ciB0aGUgIU9fRElSRUNUDQo+IGNhc2UgYW5kIGNhbiBhdm9pZCBpdCBmb3IgT19ESVJFQ1QsIHNp -bWlsYXIgdG8gdGhlIGV4aXN0aW5nIG5vbi1EQVgNCj4gc2VtYW50aWNzLsKgwqBJZiB3ZSB3YW50 -IGFueSBzcGVjaWFsIGFkZGl0aW9uYWwgc2VtYW50aWNzIHdlIF93aWxsXyBuZWVkDQo+IGEgc3Bl -Y2lhbCBPX0RBWCBmbGFnLg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f -X19fX19fX19fXw0KPiBMaW51eC1udmRpbW0gbWFpbGluZyBsaXN0DQo+IExpbnV4LW52ZGltbUBs -aXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 -eC1udmRpbW0= +On Thu, 2016-05-05 at 08:22 -0700, Christoph Hellwig wrote: +> On Thu, May 05, 2016 at 08:15:32AM -0700, Dan Williams wrote: +> > +> > > +> > > Agreed - makig O_DIRECT less direct than not having it is plain +> > > stupid, +> > > and I somehow missed this initially. +> > Of course I disagree because like Dave argues in the msync case we +> > should do the correct thing first and make it fast later, but also +> > like Dave this arguing in circles is getting tiresome. +> We should do the right thing first, and make it fast later. But this +> proposal is not getting it right - it still does not handle errors +> for the fast path, but magically makes it work for direct I/O by +> in general using a less optional path for O_DIRECT. It's getting the +> worst of all choices. +> +> As far as I can tell the only sensible option is to: +> +> - always try dax-like I/O first +> - have a custom get_user_pages + rw_bytes fallback handles bad blocks +> when hitting EIO + +I'm not sure I completely understand how this will work? Can you explain +a bit? Would we have to export rw_bytes up to layers above the pmem +driver? Where does get_user_pages come in? + +> +> And then we need to sort out the concurrent write synchronization. +> Again there I think we absolutely have to obey Posix for the !O_DIRECT +> case and can avoid it for O_DIRECT, similar to the existing non-DAX +> semantics. If we want any special additional semantics we _will_ need +> a special O_DAX flag. +> _______________________________________________ +> 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 475c59a..c48389a 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -25,35 +25,41 @@ " matthew@wil.cx <matthew@wil.cx>\0" "\00:1\0" "b\0" - "T24gVGh1LCAyMDE2LTA1LTA1IGF0IDA4OjIyIC0wNzAwLCBDaHJpc3RvcGggSGVsbHdpZyB3cm90\n" - "ZToNCj4gT24gVGh1LCBNYXkgMDUsIDIwMTYgYXQgMDg6MTU6MzJBTSAtMDcwMCwgRGFuIFdpbGxp\n" - "YW1zIHdyb3RlOg0KPiA+IA0KPiA+ID4gDQo+ID4gPiBBZ3JlZWQgLSBtYWtpZyBPX0RJUkVDVCBs\n" - "ZXNzIGRpcmVjdCB0aGFuIG5vdCBoYXZpbmcgaXQgaXMgcGxhaW4NCj4gPiA+IHN0dXBpZCwNCj4g\n" - "PiA+IGFuZCBJIHNvbWVob3cgbWlzc2VkIHRoaXMgaW5pdGlhbGx5Lg0KPiA+IE9mIGNvdXJzZSBJ\n" - "IGRpc2FncmVlIGJlY2F1c2UgbGlrZSBEYXZlIGFyZ3VlcyBpbiB0aGUgbXN5bmMgY2FzZSB3ZQ0K\n" - "PiA+IHNob3VsZCBkbyB0aGUgY29ycmVjdCB0aGluZyBmaXJzdCBhbmQgbWFrZSBpdCBmYXN0IGxh\n" - "dGVyLCBidXQgYWxzbw0KPiA+IGxpa2UgRGF2ZSB0aGlzIGFyZ3VpbmcgaW4gY2lyY2xlcyBpcyBn\n" - "ZXR0aW5nIHRpcmVzb21lLg0KPiBXZSBzaG91bGQgZG8gdGhlIHJpZ2h0IHRoaW5nIGZpcnN0LCBh\n" - "bmQgbWFrZSBpdCBmYXN0IGxhdGVyLsKgwqBCdXQgdGhpcw0KPiBwcm9wb3NhbCBpcyBub3QgZ2V0\n" - "dGluZyBpdCByaWdodCAtIGl0IHN0aWxsIGRvZXMgbm90IGhhbmRsZSBlcnJvcnMNCj4gZm9yIHRo\n" - "ZSBmYXN0IHBhdGgsIGJ1dCBtYWdpY2FsbHkgbWFrZXMgaXQgd29yayBmb3IgZGlyZWN0IEkvTyBi\n" - "eQ0KPiBpbiBnZW5lcmFsIHVzaW5nIGEgbGVzcyBvcHRpb25hbCBwYXRoIGZvciBPX0RJUkVDVC7C\n" - "oMKgSXQncyBnZXR0aW5nIHRoZQ0KPiB3b3JzdCBvZiBhbGwgY2hvaWNlcy4NCj4gDQo+IEFzIGZh\n" - "ciBhcyBJIGNhbiB0ZWxsIHRoZSBvbmx5IHNlbnNpYmxlIG9wdGlvbiBpcyB0bzoNCj4gDQo+IMKg\n" - "LSBhbHdheXMgdHJ5IGRheC1saWtlIEkvTyBmaXJzdA0KPiDCoC0gaGF2ZSBhIGN1c3RvbSBnZXRf\n" - "dXNlcl9wYWdlcyArIHJ3X2J5dGVzIGZhbGxiYWNrIGhhbmRsZXMgYmFkIGJsb2Nrcw0KPiDCoMKg\n" - "wqB3aGVuIGhpdHRpbmcgRUlPDQoNCkknbSBub3Qgc3VyZSBJIGNvbXBsZXRlbHkgdW5kZXJzdGFu\n" - "ZCBob3cgdGhpcyB3aWxsIHdvcms/IENhbiB5b3UgZXhwbGFpbg0KYSBiaXQ/IFdvdWxkIHdlIGhh\n" - "dmUgdG8gZXhwb3J0IHJ3X2J5dGVzIHVwIHRvIGxheWVycyBhYm92ZSB0aGUgcG1lbQ0KZHJpdmVy\n" - "PyBXaGVyZSBkb2VzIGdldF91c2VyX3BhZ2VzIGNvbWUgaW4/DQoNCj4gDQo+IEFuZCB0aGVuIHdl\n" - "IG5lZWQgdG8gc29ydCBvdXQgdGhlIGNvbmN1cnJlbnQgd3JpdGUgc3luY2hyb25pemF0aW9uLg0K\n" - "PiBBZ2FpbiB0aGVyZSBJIHRoaW5rIHdlIGFic29sdXRlbHkgaGF2ZSB0byBvYmV5IFBvc2l4IGZv\n" - "ciB0aGUgIU9fRElSRUNUDQo+IGNhc2UgYW5kIGNhbiBhdm9pZCBpdCBmb3IgT19ESVJFQ1QsIHNp\n" - "bWlsYXIgdG8gdGhlIGV4aXN0aW5nIG5vbi1EQVgNCj4gc2VtYW50aWNzLsKgwqBJZiB3ZSB3YW50\n" - "IGFueSBzcGVjaWFsIGFkZGl0aW9uYWwgc2VtYW50aWNzIHdlIF93aWxsXyBuZWVkDQo+IGEgc3Bl\n" - "Y2lhbCBPX0RBWCBmbGFnLg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f\n" - "X19fX19fX19fXw0KPiBMaW51eC1udmRpbW0gbWFpbGluZyBsaXN0DQo+IExpbnV4LW52ZGltbUBs\n" - "aXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51\n" - eC1udmRpbW0= + "On Thu, 2016-05-05 at 08:22 -0700, Christoph Hellwig wrote:\n" + "> On Thu, May 05, 2016 at 08:15:32AM -0700, Dan Williams wrote:\n" + "> > \n" + "> > > \n" + "> > > Agreed - makig O_DIRECT less direct than not having it is plain\n" + "> > > stupid,\n" + "> > > and I somehow missed this initially.\n" + "> > Of course I disagree because like Dave argues in the msync case we\n" + "> > should do the correct thing first and make it fast later, but also\n" + "> > like Dave this arguing in circles is getting tiresome.\n" + "> We should do the right thing first, and make it fast later.\302\240\302\240But this\n" + "> proposal is not getting it right - it still does not handle errors\n" + "> for the fast path, but magically makes it work for direct I/O by\n" + "> in general using a less optional path for O_DIRECT.\302\240\302\240It's getting the\n" + "> worst of all choices.\n" + "> \n" + "> As far as I can tell the only sensible option is to:\n" + "> \n" + "> \302\240- always try dax-like I/O first\n" + "> \302\240- have a custom get_user_pages + rw_bytes fallback handles bad blocks\n" + "> \302\240\302\240\302\240when hitting EIO\n" + "\n" + "I'm not sure I completely understand how this will work? Can you explain\n" + "a bit? Would we have to export rw_bytes up to layers above the pmem\n" + "driver? Where does get_user_pages come in?\n" + "\n" + "> \n" + "> And then we need to sort out the concurrent write synchronization.\n" + "> Again there I think we absolutely have to obey Posix for the !O_DIRECT\n" + "> case and can avoid it for O_DIRECT, similar to the existing non-DAX\n" + "> semantics.\302\240\302\240If we want any special additional semantics we _will_ need\n" + "> a special O_DAX flag.\n" + "> _______________________________________________\n" + "> Linux-nvdimm mailing list\n" + "> Linux-nvdimm@lists.01.org\n" + > https://lists.01.org/mailman/listinfo/linux-nvdimm -32092709c38194cc19a2c1d44d33d30202ccd28ad53b93a5269b8789ea984828 +0898e7915ce8a814177ae662f66e5c7663d9b19131ef44249cb4dd8afd914364
diff --git a/a/1.txt b/N3/1.txt index b18755c..6b397d3 100644 --- a/a/1.txt +++ b/N3/1.txt @@ -1,30 +1,36 @@ -T24gVGh1LCAyMDE2LTA1LTA1IGF0IDA4OjIyIC0wNzAwLCBDaHJpc3RvcGggSGVsbHdpZyB3cm90 -ZToNCj4gT24gVGh1LCBNYXkgMDUsIDIwMTYgYXQgMDg6MTU6MzJBTSAtMDcwMCwgRGFuIFdpbGxp -YW1zIHdyb3RlOg0KPiA+IA0KPiA+ID4gDQo+ID4gPiBBZ3JlZWQgLSBtYWtpZyBPX0RJUkVDVCBs -ZXNzIGRpcmVjdCB0aGFuIG5vdCBoYXZpbmcgaXQgaXMgcGxhaW4NCj4gPiA+IHN0dXBpZCwNCj4g -PiA+IGFuZCBJIHNvbWVob3cgbWlzc2VkIHRoaXMgaW5pdGlhbGx5Lg0KPiA+IE9mIGNvdXJzZSBJ -IGRpc2FncmVlIGJlY2F1c2UgbGlrZSBEYXZlIGFyZ3VlcyBpbiB0aGUgbXN5bmMgY2FzZSB3ZQ0K -PiA+IHNob3VsZCBkbyB0aGUgY29ycmVjdCB0aGluZyBmaXJzdCBhbmQgbWFrZSBpdCBmYXN0IGxh -dGVyLCBidXQgYWxzbw0KPiA+IGxpa2UgRGF2ZSB0aGlzIGFyZ3VpbmcgaW4gY2lyY2xlcyBpcyBn -ZXR0aW5nIHRpcmVzb21lLg0KPiBXZSBzaG91bGQgZG8gdGhlIHJpZ2h0IHRoaW5nIGZpcnN0LCBh -bmQgbWFrZSBpdCBmYXN0IGxhdGVyLsKgwqBCdXQgdGhpcw0KPiBwcm9wb3NhbCBpcyBub3QgZ2V0 -dGluZyBpdCByaWdodCAtIGl0IHN0aWxsIGRvZXMgbm90IGhhbmRsZSBlcnJvcnMNCj4gZm9yIHRo -ZSBmYXN0IHBhdGgsIGJ1dCBtYWdpY2FsbHkgbWFrZXMgaXQgd29yayBmb3IgZGlyZWN0IEkvTyBi -eQ0KPiBpbiBnZW5lcmFsIHVzaW5nIGEgbGVzcyBvcHRpb25hbCBwYXRoIGZvciBPX0RJUkVDVC7C -oMKgSXQncyBnZXR0aW5nIHRoZQ0KPiB3b3JzdCBvZiBhbGwgY2hvaWNlcy4NCj4gDQo+IEFzIGZh -ciBhcyBJIGNhbiB0ZWxsIHRoZSBvbmx5IHNlbnNpYmxlIG9wdGlvbiBpcyB0bzoNCj4gDQo+IMKg -LSBhbHdheXMgdHJ5IGRheC1saWtlIEkvTyBmaXJzdA0KPiDCoC0gaGF2ZSBhIGN1c3RvbSBnZXRf -dXNlcl9wYWdlcyArIHJ3X2J5dGVzIGZhbGxiYWNrIGhhbmRsZXMgYmFkIGJsb2Nrcw0KPiDCoMKg -wqB3aGVuIGhpdHRpbmcgRUlPDQoNCkknbSBub3Qgc3VyZSBJIGNvbXBsZXRlbHkgdW5kZXJzdGFu -ZCBob3cgdGhpcyB3aWxsIHdvcms/IENhbiB5b3UgZXhwbGFpbg0KYSBiaXQ/IFdvdWxkIHdlIGhh -dmUgdG8gZXhwb3J0IHJ3X2J5dGVzIHVwIHRvIGxheWVycyBhYm92ZSB0aGUgcG1lbQ0KZHJpdmVy -PyBXaGVyZSBkb2VzIGdldF91c2VyX3BhZ2VzIGNvbWUgaW4/DQoNCj4gDQo+IEFuZCB0aGVuIHdl -IG5lZWQgdG8gc29ydCBvdXQgdGhlIGNvbmN1cnJlbnQgd3JpdGUgc3luY2hyb25pemF0aW9uLg0K -PiBBZ2FpbiB0aGVyZSBJIHRoaW5rIHdlIGFic29sdXRlbHkgaGF2ZSB0byBvYmV5IFBvc2l4IGZv -ciB0aGUgIU9fRElSRUNUDQo+IGNhc2UgYW5kIGNhbiBhdm9pZCBpdCBmb3IgT19ESVJFQ1QsIHNp -bWlsYXIgdG8gdGhlIGV4aXN0aW5nIG5vbi1EQVgNCj4gc2VtYW50aWNzLsKgwqBJZiB3ZSB3YW50 -IGFueSBzcGVjaWFsIGFkZGl0aW9uYWwgc2VtYW50aWNzIHdlIF93aWxsXyBuZWVkDQo+IGEgc3Bl -Y2lhbCBPX0RBWCBmbGFnLg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f -X19fX19fX19fXw0KPiBMaW51eC1udmRpbW0gbWFpbGluZyBsaXN0DQo+IExpbnV4LW52ZGltbUBs -aXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 -eC1udmRpbW0= +On Thu, 2016-05-05 at 08:22 -0700, Christoph Hellwig wrote: +> On Thu, May 05, 2016 at 08:15:32AM -0700, Dan Williams wrote: +> > +> > > +> > > Agreed - makig O_DIRECT less direct than not having it is plain +> > > stupid, +> > > and I somehow missed this initially. +> > Of course I disagree because like Dave argues in the msync case we +> > should do the correct thing first and make it fast later, but also +> > like Dave this arguing in circles is getting tiresome. +> We should do the right thing first, and make it fast later. But this +> proposal is not getting it right - it still does not handle errors +> for the fast path, but magically makes it work for direct I/O by +> in general using a less optional path for O_DIRECT. It's getting the +> worst of all choices. +> +> As far as I can tell the only sensible option is to: +> +> - always try dax-like I/O first +> - have a custom get_user_pages + rw_bytes fallback handles bad blocks +> when hitting EIO + +I'm not sure I completely understand how this will work? Can you explain +a bit? Would we have to export rw_bytes up to layers above the pmem +driver? Where does get_user_pages come in? + +> +> And then we need to sort out the concurrent write synchronization. +> Again there I think we absolutely have to obey Posix for the !O_DIRECT +> case and can avoid it for O_DIRECT, similar to the existing non-DAX +> semantics. If we want any special additional semantics we _will_ need +> a special O_DAX flag. +> _______________________________________________ +> Linux-nvdimm mailing list +> Linux-nvdimm@lists.01.org +> https://lists.01.org/mailman/listinfo/linux-nvdimm diff --git a/a/content_digest b/N3/content_digest index 475c59a..7830b6d 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -22,38 +22,44 @@ linux-ext4@vger.kernel.org <linux-ext4@vger.kernel.org> david@fromorbit.com <david@fromorbit.com> jack@suse.cz <jack@suse.cz> - " matthew@wil.cx <matthew@wil.cx>\0" + " matthew@wil.cx <matthew@freeurl.abc188.com>\0" "\00:1\0" "b\0" - "T24gVGh1LCAyMDE2LTA1LTA1IGF0IDA4OjIyIC0wNzAwLCBDaHJpc3RvcGggSGVsbHdpZyB3cm90\n" - "ZToNCj4gT24gVGh1LCBNYXkgMDUsIDIwMTYgYXQgMDg6MTU6MzJBTSAtMDcwMCwgRGFuIFdpbGxp\n" - "YW1zIHdyb3RlOg0KPiA+IA0KPiA+ID4gDQo+ID4gPiBBZ3JlZWQgLSBtYWtpZyBPX0RJUkVDVCBs\n" - "ZXNzIGRpcmVjdCB0aGFuIG5vdCBoYXZpbmcgaXQgaXMgcGxhaW4NCj4gPiA+IHN0dXBpZCwNCj4g\n" - "PiA+IGFuZCBJIHNvbWVob3cgbWlzc2VkIHRoaXMgaW5pdGlhbGx5Lg0KPiA+IE9mIGNvdXJzZSBJ\n" - "IGRpc2FncmVlIGJlY2F1c2UgbGlrZSBEYXZlIGFyZ3VlcyBpbiB0aGUgbXN5bmMgY2FzZSB3ZQ0K\n" - "PiA+IHNob3VsZCBkbyB0aGUgY29ycmVjdCB0aGluZyBmaXJzdCBhbmQgbWFrZSBpdCBmYXN0IGxh\n" - "dGVyLCBidXQgYWxzbw0KPiA+IGxpa2UgRGF2ZSB0aGlzIGFyZ3VpbmcgaW4gY2lyY2xlcyBpcyBn\n" - "ZXR0aW5nIHRpcmVzb21lLg0KPiBXZSBzaG91bGQgZG8gdGhlIHJpZ2h0IHRoaW5nIGZpcnN0LCBh\n" - "bmQgbWFrZSBpdCBmYXN0IGxhdGVyLsKgwqBCdXQgdGhpcw0KPiBwcm9wb3NhbCBpcyBub3QgZ2V0\n" - "dGluZyBpdCByaWdodCAtIGl0IHN0aWxsIGRvZXMgbm90IGhhbmRsZSBlcnJvcnMNCj4gZm9yIHRo\n" - "ZSBmYXN0IHBhdGgsIGJ1dCBtYWdpY2FsbHkgbWFrZXMgaXQgd29yayBmb3IgZGlyZWN0IEkvTyBi\n" - "eQ0KPiBpbiBnZW5lcmFsIHVzaW5nIGEgbGVzcyBvcHRpb25hbCBwYXRoIGZvciBPX0RJUkVDVC7C\n" - "oMKgSXQncyBnZXR0aW5nIHRoZQ0KPiB3b3JzdCBvZiBhbGwgY2hvaWNlcy4NCj4gDQo+IEFzIGZh\n" - "ciBhcyBJIGNhbiB0ZWxsIHRoZSBvbmx5IHNlbnNpYmxlIG9wdGlvbiBpcyB0bzoNCj4gDQo+IMKg\n" - "LSBhbHdheXMgdHJ5IGRheC1saWtlIEkvTyBmaXJzdA0KPiDCoC0gaGF2ZSBhIGN1c3RvbSBnZXRf\n" - "dXNlcl9wYWdlcyArIHJ3X2J5dGVzIGZhbGxiYWNrIGhhbmRsZXMgYmFkIGJsb2Nrcw0KPiDCoMKg\n" - "wqB3aGVuIGhpdHRpbmcgRUlPDQoNCkknbSBub3Qgc3VyZSBJIGNvbXBsZXRlbHkgdW5kZXJzdGFu\n" - "ZCBob3cgdGhpcyB3aWxsIHdvcms/IENhbiB5b3UgZXhwbGFpbg0KYSBiaXQ/IFdvdWxkIHdlIGhh\n" - "dmUgdG8gZXhwb3J0IHJ3X2J5dGVzIHVwIHRvIGxheWVycyBhYm92ZSB0aGUgcG1lbQ0KZHJpdmVy\n" - "PyBXaGVyZSBkb2VzIGdldF91c2VyX3BhZ2VzIGNvbWUgaW4/DQoNCj4gDQo+IEFuZCB0aGVuIHdl\n" - "IG5lZWQgdG8gc29ydCBvdXQgdGhlIGNvbmN1cnJlbnQgd3JpdGUgc3luY2hyb25pemF0aW9uLg0K\n" - "PiBBZ2FpbiB0aGVyZSBJIHRoaW5rIHdlIGFic29sdXRlbHkgaGF2ZSB0byBvYmV5IFBvc2l4IGZv\n" - "ciB0aGUgIU9fRElSRUNUDQo+IGNhc2UgYW5kIGNhbiBhdm9pZCBpdCBmb3IgT19ESVJFQ1QsIHNp\n" - "bWlsYXIgdG8gdGhlIGV4aXN0aW5nIG5vbi1EQVgNCj4gc2VtYW50aWNzLsKgwqBJZiB3ZSB3YW50\n" - "IGFueSBzcGVjaWFsIGFkZGl0aW9uYWwgc2VtYW50aWNzIHdlIF93aWxsXyBuZWVkDQo+IGEgc3Bl\n" - "Y2lhbCBPX0RBWCBmbGFnLg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f\n" - "X19fX19fX19fXw0KPiBMaW51eC1udmRpbW0gbWFpbGluZyBsaXN0DQo+IExpbnV4LW52ZGltbUBs\n" - "aXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51\n" - eC1udmRpbW0= + "On Thu, 2016-05-05 at 08:22 -0700, Christoph Hellwig wrote:\n" + "> On Thu, May 05, 2016 at 08:15:32AM -0700, Dan Williams wrote:\n" + "> > \n" + "> > > \n" + "> > > Agreed - makig O_DIRECT less direct than not having it is plain\n" + "> > > stupid,\n" + "> > > and I somehow missed this initially.\n" + "> > Of course I disagree because like Dave argues in the msync case we\n" + "> > should do the correct thing first and make it fast later, but also\n" + "> > like Dave this arguing in circles is getting tiresome.\n" + "> We should do the right thing first, and make it fast later.\302\240\302\240But this\n" + "> proposal is not getting it right - it still does not handle errors\n" + "> for the fast path, but magically makes it work for direct I/O by\n" + "> in general using a less optional path for O_DIRECT.\302\240\302\240It's getting the\n" + "> worst of all choices.\n" + "> \n" + "> As far as I can tell the only sensible option is to:\n" + "> \n" + "> \302\240- always try dax-like I/O first\n" + "> \302\240- have a custom get_user_pages + rw_bytes fallback handles bad blocks\n" + "> \302\240\302\240\302\240when hitting EIO\n" + "\n" + "I'm not sure I completely understand how this will work? Can you explain\n" + "a bit? Would we have to export rw_bytes up to layers above the pmem\n" + "driver? Where does get_user_pages come in?\n" + "\n" + "> \n" + "> And then we need to sort out the concurrent write synchronization.\n" + "> Again there I think we absolutely have to obey Posix for the !O_DIRECT\n" + "> case and can avoid it for O_DIRECT, similar to the existing non-DAX\n" + "> semantics.\302\240\302\240If we want any special additional semantics we _will_ need\n" + "> a special O_DAX flag.\n" + "> _______________________________________________\n" + "> Linux-nvdimm mailing list\n" + "> Linux-nvdimm@lists.01.org\n" + > https://lists.01.org/mailman/listinfo/linux-nvdimm -32092709c38194cc19a2c1d44d33d30202ccd28ad53b93a5269b8789ea984828 +1343e32efb0fa7bda4a6b860e359fc1e53e65e5f925276e8ccd481103bde9987
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.