Re: [PATCH v2] fs: pass the write life time hint to the mapped filesystem

2017-09-18 Thread Michael Moy

Thanks, I see that now.

What is the file hint using F_SET_FILE_RW_HINT used for?

It seems that if both are set, the one set first gets used
and, if only the file hint is set, it is not used at all.


On 9/18/2017 9:49 AM, Christoph Hellwig wrote:

On Mon, Sep 18, 2017 at 09:45:57AM -0600, Michael Moy wrote:

The write hint needs to be copied to the mapped filesystem
so it can be passed down to the nvme device driver.

v2: fix tabs in the email

If you want the write hint for buffered I/O you need to set it on the
inode using F_SET_RW_HINT.

With your patch we'd magically move the file hint to the inode hint
on each write.

___
Linux-nvme mailing list
linux-n...@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme





[PATCH v2] fs: pass the write life time hint to the mapped filesystem

2017-09-18 Thread Michael Moy

The write hint needs to be copied to the mapped filesystem
so it can be passed down to the nvme device driver.

v2: fix tabs in the email

Signed-off-by: Michael Moy 
---
  mm/filemap.c | 10 ++
  1 file changed, 10 insertions(+)

diff --git a/mm/filemap.c b/mm/filemap.c
index 870971e..f9849b8 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -3008,6 +3008,16 @@ ssize_t generic_perform_write(struct file *file,
break;
}

+   /*
+* Copy a write hint to the mapped filesystem.
+*
+* Use the File hint first, inode next.
+*/
+   if (file->f_write_hint)
+   mapping->host->i_write_hint = file->f_write_hint;
+   else if (file->f_inode->i_write_hint)
+   mapping->host->i_write_hint = 
file->f_inode->i_write_hint;
+
status = a_ops->write_begin(file, mapping, pos, bytes, flags,
, );
if (unlikely(status < 0))
--
1.8.3.1



Re: [PATCH v2] fs: pass the write life time hint to the mapped filesystem

2017-09-18 Thread Christoph Hellwig
On Mon, Sep 18, 2017 at 09:45:57AM -0600, Michael Moy wrote:
> The write hint needs to be copied to the mapped filesystem
> so it can be passed down to the nvme device driver.
>
> v2: fix tabs in the email

If you want the write hint for buffered I/O you need to set it on the
inode using F_SET_RW_HINT.

With your patch we'd magically move the file hint to the inode hint
on each write.