On Thu, Jul 18, 2019 at 6:15 AM Vivek Goyal <vgoyal@xxxxxxxxxx> wrote: > > On Wed, Jul 17, 2019 at 07:27:25PM +0200, Halil Pasic wrote: > > On Wed, 15 May 2019 15:27:03 -0400 > > Vivek Goyal <vgoyal@xxxxxxxxxx> wrote: > > > > > From: Stefan Hajnoczi <stefanha@xxxxxxxxxx> > > > > > > Setup a dax device. > > > > > > Use the shm capability to find the cache entry and map it. > > > > > > The DAX window is accessed by the fs/dax.c infrastructure and must have > > > struct pages (at least on x86). Use devm_memremap_pages() to map the > > > DAX window PCI BAR and allocate struct page. > > > > > > > Sorry for being this late. I don't see any more recent version so I will > > comment here. > > > > I'm trying to figure out how is this supposed to work on s390. My concern > > is, that on s390 PCI memory needs to be accessed by special > > instructions. This is taken care of by the stuff defined in > > arch/s390/include/asm/io.h. E.g. we 'override' __raw_writew so it uses > > the appropriate s390 instruction. However if the code does not use the > > linux abstractions for accessing PCI memory, but assumes it can be > > accessed like RAM, we have a problem. > > > > Looking at this patch, it seems to me, that we might end up with exactly > > the case described. For example AFAICT copy_to_iter() (3) resolves to > > the function in lib/iov_iter.c which does not seem to cater for s390 > > oddities. > > > > I didn't have the time to investigate this properly, and since virtio-fs > > is virtual, we may be able to get around what is otherwise a > > limitation on s390. My understanding of these areas is admittedly > > shallow, and since I'm not sure I'll have much more time to > > invest in the near future I decided to raise concern. > > > > Any opinions? > > Hi Halil, > > I don't understand s390 and how PCI works there as well. Is there any > other transport we can use there to map IO memory directly and access > using DAX? > > BTW, is DAX supported for s390. > > I am also hoping somebody who knows better can chip in. Till that time, > we could still use virtio-fs on s390 without DAX. s390 has so-called "limited" dax support, see CONFIG_FS_DAX_LIMITED. In practice that means that support for PTE_DEVMAP is missing which means no get_user_pages() support for dax mappings. Effectively it's only useful for execute-in-place as operations like fork() and ptrace of dax mappings will fail.