On Fri, Jun 1, 2018 at 8:01 AM, Gerald Schaefer
<gerald.schaefer(a)de.ibm.com> wrote:
On Tue, 29 May 2018 13:26:33 -0700
Dan Williams <dan.j.williams(a)intel.com> wrote:
> On Wed, May 23, 2018 at 11:50 AM, Gerald Schaefer
> <gerald.schaefer(a)de.ibm.com> wrote:
> > On Tue, 22 May 2018 08:28:06 +0200
> > Christoph Hellwig <hch(a)lst.de> wrote:
> >
> >> On Mon, May 21, 2018 at 11:04:10AM +0200, Jan Kara wrote:
> >> > We definitely do have customers using "execute in place" on
s390x from
> >> > dcssblk. I've got about two bug reports for it when customers were
updating
> >> > from old kernels using original XIP to kernels using DAX. So we need
to
> >> > keep that working.
> >>
> >> That is all good an fine, but I think time has come where s390 needs
> >> to migrate to provide the pmem API so that we can get rid of these
> >> special cases. Especially given that the old XIP/legacy DAX has all
> >> kinds of known bugs at this point in time.
> >
> > I haven't yet looked at this patch series, but I can feel that this
> > FS_DAX_LIMITED workaround is beginning to cause some headaches, apart
> > from being quite ugly of course.
> >
> > Just to make sure I still understand the basic problem, which I thought
> > was missing struct pages for the dcssblk memory, what exactly do you
> > mean with "provide the pmem API", is there more to do?
>
> No, just 'struct page' is needed.
>
> What used to be the pmem API is now pushed down into to dax_operations
> provided by the device driver. dcssblk is free to just redirect to the
> generic implementations for copy_from_iter() and copy_to_iter(), and
> be done. I.e. we've removed the "pmem API" requirement.
>
> > I do have a prototype patch lying around that adds struct pages, but
> > didn't yet have time to fully test/complete it. Of course we initially
> > introduced XIP as a mechanism to reduce memory consumption, and that
> > is probably the use case for the remaining customer(s). Adding struct
> > pages would somehow reduce that benefit, but as long as we can still
> > "execute in place", I guess it will be OK.
>
> The pmem driver has the option to allocate the 'struct page' map out
> of pmem directly. If the overhead of having the map in System RAM is
> too high it could borrow the same approach, but that adds another
> degree of configuration complexity freedom.
>
Thanks for clarifying, and mentioning the pmem altmap support, that
looks interesting. I also noticed that I probably should enable
CONFIG_ZONE_DEVICE for s390, and use devm_memremap_pages() to get
the struct pages, rather than my homegrown solution so far. This will
take some time however, so I hope you can live with the FS_DAX_LIMITED
a little longer.
Yes, no urgent rush as far as I can see. Thanks Gerald.