From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 C3240202E5CC4 for ; Sun, 22 Oct 2017 22:15:03 -0700 (PDT) Received: from pps.filterd (m0098419.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v9N5EV8A015993 for ; Mon, 23 Oct 2017 01:18:45 -0400 Received: from e06smtp12.uk.ibm.com (e06smtp12.uk.ibm.com [195.75.94.108]) by mx0b-001b2d01.pphosted.com with ESMTP id 2ds7xdc72w-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Mon, 23 Oct 2017 01:18:45 -0400 Received: from localhost by e06smtp12.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 23 Oct 2017 06:18:43 +0100 Date: Mon, 23 Oct 2017 07:18:35 +0200 From: Martin Schwidefsky Subject: Re: [PATCH v3 02/13] dax: require 'struct page' for filesystem dax In-Reply-To: <20171020162933.GA26320@lst.de> References: <150846713528.24336.4459262264611579791.stgit@dwillia2-desk3.amr.corp.intel.com> <150846714747.24336.14704246566580871364.stgit@dwillia2-desk3.amr.corp.intel.com> <20171020075735.GA14378@lst.de> <20171020162933.GA26320@lst.de> MIME-Version: 1.0 Message-Id: <20171023071835.67ee5210@mschwideX1> 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: Christoph Hellwig Cc: Jan Kara , "linux-nvdimm@lists.01.org" , Benjamin Herrenschmidt , Heiko Carstens , "linux-kernel@vger.kernel.org" , linux-xfs@vger.kernel.org, Linux MM , Paul Mackerras , Michael Ellerman , linux-fsdevel , Andrew Morton , Gerald Schaefer List-ID: T24gRnJpLCAyMCBPY3QgMjAxNyAxODoyOTozMyArMDIwMApDaHJpc3RvcGggSGVsbHdpZyA8aGNo QGxzdC5kZT4gd3JvdGU6Cgo+IE9uIEZyaSwgT2N0IDIwLCAyMDE3IGF0IDA4OjIzOjAyQU0gLTA3 MDAsIERhbiBXaWxsaWFtcyB3cm90ZToKPiA+IFllcywgaG93ZXZlciBpdCBzZWVtcyB0aGVzZSBk cml2ZXJzIC8gcGxhdGZvcm1zIGhhdmUgYmVlbiBsaXZpbmcgd2l0aAo+ID4gdGhlIGxhY2sgb2Yg c3RydWN0IHBhZ2UgZm9yIGEgbG9uZyB0aW1lLiBTbyB0aGV5IGVpdGhlciBkb24ndCB1c2UgREFY LAo+ID4gb3IgdGhleSBoYXZlIGEgY29uc3RyYWluZWQgdXNlIGNhc2UgdGhhdCBuZXZlciB0cmln Z2Vycwo+ID4gZ2V0X3VzZXJfcGFnZXMoKS4gSWYgaXQgaXMgdGhlIGxhdHRlciB0aGVuIHRoZXkg Y291bGQgaW50cm9kdWNlIGEgbmV3Cj4gPiBjb25maWd1cmF0aW9uIG9wdGlvbiB0aGF0IGJ5cGFz c2VzIHRoZSBwZm5fdF9kZXZtYXAoKSBjaGVjayBpbgo+ID4gYmRldl9kYXhfc3VwcG9ydGVkKCkg YW5kIGZpeCB1cCB0aGUgZ2V0X3VzZXJfcGFnZXMoKSBwYXRocyB0byBmYWlsLgo+ID4gU28sIEkn ZCBsaWtlIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIGRyaXZlcnMgaGF2ZSBiZWVuIHVzaW5nIERB WAo+ID4gc3VwcG9ydCB3aXRob3V0IHN0cnVjdCBwYWdlIHRvIHNlZSBpZiB3ZSBuZWVkIGEgd29y a2Fyb3VuZCBvciB3ZSBjYW4KPiA+IGdvIGFoZWFkIGRlbGV0ZSB0aGlzIHN1cHBvcnQuIElmIHRo ZSB1c2FnZSBpcyBsaW1pdGVkIHRvCj4gPiBleGVjdXRlLWluLXBsYWNlIHBlcmhhcHMgd2UgY2Fu IGRvIGEgY29uc3RyYWluZWQgLT5kaXJlY3RfYWNjZXNzKCkgZm9yCj4gPiBqdXN0IHRoYXQgY2Fz ZS4gIAo+IAo+IEZvciBheG9ucmFtIEkgZG91YnQgYW55b25lIGlzIHVzaW5nIGl0IGFueSBtb3Jl IC0gaXQgd2FzIGEgdmVyeSBmb3IKPiB0aGUgSUJNIENlbGwgYmxhZGVzLCB3aGljaCB3ZXJlIHBy b2R1Y2XRlSBpbiBhIHJhdGhlciBsaW1pdGVkIG51bWJlci4KPiBBbmQgQ2VsbCBiYXNpY2FsbHkg c2VlbXMgdG8gYmUgZGVhZCBhcyBmYXIgYXMgSSBjYW4gdGVsbC4KPiAKPiBGb3IgUy8zOTAgTWFy dGluIG1pZ2h0IGJlIGFibGUgdG8gaGVscCBvdXQgd2hhdCB0aGUgc3RhdHVzIG9mIHhwcmFtCj4g aW4gZ2VuZXJhbCBhbmQgREFYIHN1cHBvcnQgaW4gcGFydGljdWxhciBpcy4KClRoZSBnb2VzIGJh Y2sgdG8gdGhlIHRpbWUgd2hlcmUgREFYIHdhcyBjYWxsZWQgWElQLiBUaGUgaW5pdGlhbCBkZXNp Z24KcG9pbnQgaGFzIGJlZW4gKm5vdCogdG8gaGF2ZSBzdHJ1Y3QgcGFnZXMgZm9yIGEgbGFyZ2Ug cmVhZC1vbmx5IG1lbW9yeQphcmVhLiBUaGVyZSBpcyBhIGJsb2NrIGRldmljZSBkcml2ZXIgZm9y IHovVk0gdGhhdCBtYXBzIGEgRENTUyBzZWdtZW50CnNvbWV3aGVyZSBpbiBtZW1vcmUgKG5vIHN0 cnVjdCBwYWdlISkgd2l0aCBlLmcuIHRoZSBjb21wbGV0ZSAvdXNyCmZpbGVzeXN0ZW0uIFRoZSB4 cHJhbSBkcml2ZXIgaXMgYSBkaWZmZXJlbnQgYmVhc3QgYW5kIGhhcyBub3RoaW5nIHRvCmRvIHdp dGggWElQL0RBWC4KCk5vdywgaWYgYW55IHRoZXJlIGFyZSB2ZXJ5IGZldyB1c2VycyBvZiB0aGUg ZGNzc2JsayBkcml2ZXIgb3V0IHRoZXJlLgpUaGUgaWRlYSB0byBzYXZlIGEgZmV3IG1lZ2FieXRl IGZvciAvdXNyIG5ldmVyIHJlYWxseSB0b29rIG9mLgoKV2UgaGF2ZSB0byBsb29rIGF0IG91ciBn ZXRfdXNlcl9wYWdlcygpIGltcGxlbWVudGF0aW9uIHRvIHNlZSBob3cgaGFyZAppdCB3b3VsZCBi ZSB0byBtYWtlIGl0IGZhaWwgaWYgdGhlIHRhcmdldCBhZGRyZXNzIGlzIGZvciBhbiBhcmVhIHdp dGhvdXQKc3RydWN0IHBhZ2VzLgoKLS0gCmJsdWUgc2tpZXMsCiAgIE1hcnRpbi4KCiJSZWFsaXR5 IGNvbnRpbnVlcyB0byBydWluIG15IGxpZmUuIiAtIENhbHZpbi4KCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW52ZGltbSBtYWlsaW5nIGxpc3QK TGludXgtbnZkaW1tQGxpc3RzLjAxLm9yZwpodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LW52ZGltbQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751248AbdJWFSt convert rfc822-to-8bit (ORCPT ); Mon, 23 Oct 2017 01:18:49 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:38898 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750850AbdJWFSq (ORCPT ); Mon, 23 Oct 2017 01:18:46 -0400 Date: Mon, 23 Oct 2017 07:18:35 +0200 From: Martin Schwidefsky To: Christoph Hellwig Cc: Dan Williams , Andrew Morton , Jan Kara , "linux-nvdimm@lists.01.org" , Benjamin Herrenschmidt , Heiko Carstens , "linux-kernel@vger.kernel.org" , linux-xfs@vger.kernel.org, Linux MM , Jeff Moyer , Paul Mackerras , Michael Ellerman , linux-fsdevel , Ross Zwisler , Gerald Schaefer Subject: Re: [PATCH v3 02/13] dax: require 'struct page' for filesystem dax In-Reply-To: <20171020162933.GA26320@lst.de> References: <150846713528.24336.4459262264611579791.stgit@dwillia2-desk3.amr.corp.intel.com> <150846714747.24336.14704246566580871364.stgit@dwillia2-desk3.amr.corp.intel.com> <20171020075735.GA14378@lst.de> <20171020162933.GA26320@lst.de> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT X-TM-AS-GCONF: 00 x-cbid: 17102305-0008-0000-0000-000004A2C978 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17102305-0009-0000-0000-00001E352D10 Message-Id: <20171023071835.67ee5210@mschwideX1> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-10-23_02:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1710230076 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 20 Oct 2017 18:29:33 +0200 Christoph Hellwig wrote: > On Fri, Oct 20, 2017 at 08:23:02AM -0700, Dan Williams wrote: > > Yes, however it seems these drivers / platforms have been living with > > the lack of struct page for a long time. So they either don't use DAX, > > or they have a constrained use case that never triggers > > get_user_pages(). If it is the latter then they could introduce a new > > configuration option that bypasses the pfn_t_devmap() check in > > bdev_dax_supported() and fix up the get_user_pages() paths to fail. > > So, I'd like to understand how these drivers have been using DAX > > support without struct page to see if we need a workaround or we can > > go ahead delete this support. If the usage is limited to > > execute-in-place perhaps we can do a constrained ->direct_access() for > > just that case. > > For axonram I doubt anyone is using it any more - it was a very for > the IBM Cell blades, which were produceѕ in a rather limited number. > And Cell basically seems to be dead as far as I can tell. > > For S/390 Martin might be able to help out what the status of xpram > in general and DAX support in particular is. The goes back to the time where DAX was called XIP. The initial design point has been *not* to have struct pages for a large read-only memory area. There is a block device driver for z/VM that maps a DCSS segment somewhere in memore (no struct page!) with e.g. the complete /usr filesystem. The xpram driver is a different beast and has nothing to do with XIP/DAX. Now, if any there are very few users of the dcssblk driver out there. The idea to save a few megabyte for /usr never really took of. We have to look at our get_user_pages() implementation to see how hard it would be to make it fail if the target address is for an area without struct pages. -- blue skies, Martin. "Reality continues to ruin my life." - Calvin. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 23 Oct 2017 07:18:35 +0200 From: Martin Schwidefsky To: Christoph Hellwig Cc: Dan Williams , Andrew Morton , Jan Kara , "linux-nvdimm@lists.01.org" , Benjamin Herrenschmidt , Heiko Carstens , "linux-kernel@vger.kernel.org" , linux-xfs@vger.kernel.org, Linux MM , Jeff Moyer , Paul Mackerras , Michael Ellerman , linux-fsdevel , Ross Zwisler , Gerald Schaefer Subject: Re: [PATCH v3 02/13] dax: require 'struct page' for filesystem dax In-Reply-To: <20171020162933.GA26320@lst.de> References: <150846713528.24336.4459262264611579791.stgit@dwillia2-desk3.amr.corp.intel.com> <150846714747.24336.14704246566580871364.stgit@dwillia2-desk3.amr.corp.intel.com> <20171020075735.GA14378@lst.de> <20171020162933.GA26320@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Message-Id: <20171023071835.67ee5210@mschwideX1> Sender: owner-linux-mm@kvack.org List-ID: On Fri, 20 Oct 2017 18:29:33 +0200 Christoph Hellwig wrote: > On Fri, Oct 20, 2017 at 08:23:02AM -0700, Dan Williams wrote: > > Yes, however it seems these drivers / platforms have been living with > > the lack of struct page for a long time. So they either don't use DAX, > > or they have a constrained use case that never triggers > > get_user_pages(). If it is the latter then they could introduce a new > > configuration option that bypasses the pfn_t_devmap() check in > > bdev_dax_supported() and fix up the get_user_pages() paths to fail. > > So, I'd like to understand how these drivers have been using DAX > > support without struct page to see if we need a workaround or we can > > go ahead delete this support. If the usage is limited to > > execute-in-place perhaps we can do a constrained ->direct_access() for > > just that case. =20 >=20 > For axonram I doubt anyone is using it any more - it was a very for > the IBM Cell blades, which were produce=D1=95 in a rather limited number. > And Cell basically seems to be dead as far as I can tell. >=20 > For S/390 Martin might be able to help out what the status of xpram > in general and DAX support in particular is. The goes back to the time where DAX was called XIP. The initial design point has been *not* to have struct pages for a large read-only memory area. There is a block device driver for z/VM that maps a DCSS segment somewhere in memore (no struct page!) with e.g. the complete /usr filesystem. The xpram driver is a different beast and has nothing to do with XIP/DAX. Now, if any there are very few users of the dcssblk driver out there. The idea to save a few megabyte for /usr never really took of. We have to look at our get_user_pages() implementation to see how hard it would be to make it fail if the target address is for an area without struct pages. --=20 blue skies, Martin. "Reality continues to ruin my life." - Calvin. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org