On Mon, Jan 28, 2019 at 9:58 PM Amir Goldstein <amir73il@xxxxxxxxx> wrote: > > > > > I'll stick with the simple copy_page() implementation (back and forth) > > > > unless you come up with a better suggestion. We will probably want > > > > something more efficient later on, but I rather start with something > > > > simple and working. > > > > > > > > > > Like this: > > > https://github.com/amir73il/linux/commits/ovl-aops-wip > > > > > > > Am I understanding it right, that we will use page cache at overlay inode > > as well as upper file system. So there is duplication and memory usage > > for upper files will double? > > That won't be acceptable, but using upper page cache as temporary pages > for the duration of writeback makes overlayfs code much simpler IMO and > avoids vma -> vfs locking order issues. > > My idea was to get rid of the upper pages once writeback is done > (or periodically), but that wasn't implemented yet, because I am still > waiting to hear if the idea is inherently bad. The problem with that is unnecessary memory copies. If done right, direct I/O will be simpler, faster, and won't have locking issues, beacuse it can be done asynchronously. Trying to put some code together... Thanks, Miklos