[Gluster-devel] Reduce memcpy in glfs read and write

Pranith Kumar Karampuri pkarampu at redhat.com
Tue Jun 21 12:58:17 UTC 2016


Hey!!
       Hope you are doing good. I took a look at the bt. So when flush
comes write-behind has to flush all the writes down. I see the following
frame hung in iob_unref:
Thread 7 (Thread 0x7fa601a30700 (LWP 16218)):
#0  0x00007fa60cc55225 in pthread_spin_lock () from /lib64/libpthread.so.0
<<---- Does it always hang there?
#1  0x00007fa60e1f373e in iobref_unref (iobref=0x19dc7e0) at iobuf.c:907
#2  0x00007fa60e246fb2 in args_wipe (args=0x19e70ec) at default-args.c:1593
#3  0x00007fa60e1ea534 in call_stub_wipe_args (stub=0x19e709c) at
call-stub.c:2466
#4  0x00007fa60e1ea5de in call_stub_destroy (stub=0x19e709c) at
call-stub.c:2482

Is this on top of master branch? It seems like we missed an unlock of the
spin-lock or the iobref has junk value which gives the feeling that it is
in locked state (May be double free?). Do you have any extra patches you
have in your repo which make changes in iobuf?

On Tue, Jun 21, 2016 at 4:07 AM, Sachin Pandit <spandit at commvault.com>
wrote:

> Hi all,
>
>
>
> I bid adieu to you all with the hope of crossing path again, and the time
> has come rather quickly. It feels great to work on GlusterFS again.
>
>
>
> Currently we are trying to write data backed up by Commvault Simpana to
> glusterfs volume (Disperse volume). To improve the performance, I have
> implemented the proposal put forward my Rafi  K C [1]. I have some
> questions regarding libgfapi and iobuf pool.
>
>
>
> To reduce an extra level of copy in glfs read and write, I have
> implemented few APIs to request a buffer (similar to the one represented in
>  [1]) from iobuf pool which can be used by the application to write data
> to. With this implementation, when I try to reuse the buffer for
> consecutive writes, I could see a hang in syncop_flush of glfs_close (BT of
> the hang can be found in [2]). I wanted to know if reusing the buffer is
> recommended. If not, do we need to request buffer for each writes?
>
>
>
> Setup : Distributed-Disperse ( 4 * (2+1)). Bricks scattered over 3 nodes.
>
>
>
> [1]
> http://www.gluster.org/pipermail/gluster-devel/2015-February/043966.html
>
> [2] Attached file -  bt.txt
>
>
>
> Thanks & Regards,
>
> Sachin Pandit.
>
>
> ***************************Legal Disclaimer***************************
> "This communication may contain confidential and privileged material for the
> sole use of the intended recipient. Any unauthorized review, use or distribution
> by others is strictly prohibited. If you have received the message by mistake,
> please advise the sender by reply email and delete the message. Thank you."
> **********************************************************************
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel
>



-- 
Pranith
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gluster.org/pipermail/gluster-devel/attachments/20160621/1a0c5e12/attachment.html>


More information about the Gluster-devel mailing list