[Gluster-devel] Suggestion to optimize posix_getxattr call
Amar Tumballi
atumball at redhat.com
Mon May 15 11:33:39 UTC 2017
On Mon, May 15, 2017 at 2:56 PM, Mohit Agrawal <moagrawa at redhat.com> wrote:
> Hi,
>
> I was just checking of posix_getxattr code to debug of my one problem.I
> have found scope of improvement in
> this function to execute system call in better way.As of now
> function(posix_getxattr) is calling system
> calls (sys_lgetxattr) two times to get the value of xattr or in case of
> list of xattr it calls multiple times
>
> 1) In first time it get the buffer size required to store the value.
> call "size = sys_lgetxattr (real_path, key, NULL, 0);"
> 2) In second time it calls the sys_lgetxattr with buffer after allocate
> the buffer size
> sys_lgetxattr (real_path, key, value, size);
>
> In the same way function is calling for listxattr also.I think we can
> optimise it as like below
> declare buffer buf[8192](size can be double to this also)
> 1) Call size = sys_lgetxattr (real_path,key,buf,8192)
> 2) if size == -1 and errono == ERANGE then we need to call systemcalls
> in old way like above otherwise
> we don't need to do anything.
>
> In the case of failure we need to call systemcall 3 times while buffer
> is more than our declared buffer
> size otherwise in most of the cases we need to call it only once.
>
>
+1.
Please add a counter for the number of times the failure happens with
ERANGE, and see if we can log offender keys. Helps to adjust the size later.
-Amar
Please share your input on this, appreciate your input.
>
> Regards
> Mohit Agrawal
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://lists.gluster.org/mailman/listinfo/gluster-devel
>
--
Amar Tumballi (amarts)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-devel/attachments/20170515/3c3b94f1/attachment.html>
More information about the Gluster-devel
mailing list