On 11/28/2012 03:17 PM, Hugh Dickins wrote: > On Tue, 27 Nov 2012, Jeff Moyer wrote: > >> Hi Hugh and others, >> >> In 2007, there were some discussions on whether to allow opens to >> specify O_DIRECT for files backed by tmpfs.[1][2] On the surface, it >> sounds like a completely crazy thing to do. However, distributions like >> Fedora are now defaulting to using a tmpfs /tmp. I'm not aware of any >> applications that open temp files using O_DIRECT, but I wanted to get >> some new discussion going on whether this is a reasonable thing to >> expect to work. >> >> Thoughts? >> >> Cheers, >> Jeff >> >> [1] https://lkml.org/lkml/2007/1/4/55 >> [2] http://thread.gmane.org/gmane.linux.kernel/482031 > > Thanks a lot for refreshing my memory with those links. > > Whilst I agree with every contradictory word I said back then ;) > my current position is to wait to see what happens with Shaggy's "loop: > Issue O_DIRECT aio using bio_vec" https://lkml.org/lkml/2012/11/22/847 As the patches exist today, the loop driver will only make the aio calls if the underlying file defines a direct_IO address op since generic_file_read/write_iter() will call a_ops->direct_IO() when O_DIRECT is set. For tmpfs or any other filesystem that doesn't support O_DIRECT, the loop driver will continue to call the read() or write() method. > > I've been using loop on tmpfs-file in testing for years, and will not > allow that to go away. I've not yet tried applying the patches and > fixing up mm/shmem.c to suit, but will make sure that it's working > before a release emerges with those changes in. > > It would be possible to add nominal O_DIRECT support to tmpfs without > that, and perhaps it would be possible to add that loop support without > enabling O_DIRECT from userspace; but my inclination is to make those > changes together. > > (I'm not thinking of doing ramfs and hugetlbfs too.) > > Hugh > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>