On Fri, Oct 20, 2017 at 9:29 AM, Christoph Hellwig <hch@xxxxxx> 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. Ok, I'd also like to kill DAX support in the brd driver. It's a source of complexity and maintenance burden for zero benefit. It's the only ->direct_access() implementation that sleeps and it's the only implementation where there is a non-linear relationship between sectors and pfns. Having a 1:1 sector to pfn relationship will help with the dma-extent-busy management since we don't need to keep calling into the driver to map pfns back to sectors once we know the pfn[0] sector[0] relationship.