<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 11, 2017 at 5:50 PM, Ravishankar N <span dir="ltr">&lt;<a href="mailto:ravishankar@redhat.com" target="_blank">ravishankar@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 08/11/2017 04:51 PM, Niels de Vos wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Fri, Aug 11, 2017 at 12:47:47AM -0400, Raghavendra Gowdappa wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
In a conversation between me, Milind and Csaba, Milind pointed out<br>
fadvise(2) [1] and its potential benefits to Glusterfs&#39; caching<br>
translators like read-ahead etc. After discussing about it, we agreed<br>
that our performance translators can leverage the hints to provide<br>
better performance. Now the question is how commonly applications<br>
actually provide hints? Is it something that is used quite frequently?<br>
If yes, we can think of implementing this in glusterfs (probably<br>
kernel-fuse too?). If no, there is not much of an advantage in<br>
spending our energies here. Your inputs will help us to prioritize<br>
this feature.<br>
</blockquote>
If functionality like this is available, we would add support in<br>
libgfapi.so as well. NFS-Ganesha is prepared for consuming this<br>
(fsal_obj_ops-&gt;io_advise), so applications running on top of NFS will<br>
benefit. I failed to see if the standard Samba/vfs can use it.<br>
<br>
A quick check in QEMU does not suggest it is used by the block drivers.<br>
<br>
I don&#39;t think Linux/FUSE supports fadvise though. So this is an<br>
oppertunity for a Gluster developer to get their name in the Linux<br>
kernel :-) Feature additions like this have been done before by us, and<br>
we should continue where we can. It is a relatively easy entry for<br>
contributing to the Linux kernel.<br>
</blockquote>
<br></span>
To me it looks like fadvise (mm/fadvise.c) affects only the linux page cache behavior and is decoupled from the filesystem itself. What this means for fuse  is that the  &#39;advise&#39; is only to the content that the fuse kernel module has stored in that machine&#39;s page cache.  Exposing it as a FOP would likely involve adding a new fop to struct file_operations that is common across the entire VFS and likely  won&#39;t fly with the kernel folks. I could be wrong in understanding all of this. :-)<br></blockquote><div><br></div><div>That&#39;s correct. file_operations don&#39;t have fadvise and hence exposing this to underlying filesystems would require adding this member.<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Regards,<br>
Ravi<div class="HOEnZb"><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  <br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
[1] <a href="https://linux.die.net/man/2/fadvise" rel="noreferrer" target="_blank">https://linux.die.net/man/2/fa<wbr>dvise</a><br>
</blockquote>
As well as local man-pages for fadvise64/posix_fadvise.<br>
<br>
Showing that we have support for this, suggests that the filesystem<br>
becomes more mature and gains advanced features. This should impress<br>
users and might open up more interest for certain (HPC?) use-cases.<br>
<br>
Thanks,<br>
Niels<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
regards,<br>
Raghavendra<br>
______________________________<wbr>_________________<br>
Gluster-devel mailing list<br>
<a href="mailto:Gluster-devel@gluster.org" target="_blank">Gluster-devel@gluster.org</a><br>
<a href="http://lists.gluster.org/mailman/listinfo/gluster-devel" rel="noreferrer" target="_blank">http://lists.gluster.org/mailm<wbr>an/listinfo/gluster-devel</a><br>
</blockquote>
______________________________<wbr>_________________<br>
Gluster-devel mailing list<br>
<a href="mailto:Gluster-devel@gluster.org" target="_blank">Gluster-devel@gluster.org</a><br>
<a href="http://lists.gluster.org/mailman/listinfo/gluster-devel" rel="noreferrer" target="_blank">http://lists.gluster.org/mailm<wbr>an/listinfo/gluster-devel</a><br>
</blockquote>
<br>
______________________________<wbr>_________________<br>
Gluster-devel mailing list<br>
<a href="mailto:Gluster-devel@gluster.org" target="_blank">Gluster-devel@gluster.org</a><br>
<a href="http://lists.gluster.org/mailman/listinfo/gluster-devel" rel="noreferrer" target="_blank">http://lists.gluster.org/mailm<wbr>an/listinfo/gluster-devel</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Raghavendra G<br></div>
</div></div>