On Wed, May 23, 2018 at 11:50 AM, Gerald Schaefer <gerald.schaefer@xxxxxxxxxx> wrote: > On Tue, 22 May 2018 08:28:06 +0200 > Christoph Hellwig <hch@xxxxxx> 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.