[Gluster-devel] [puzzle] readv operation allocate iobuf twice
Raghavendra Gowdappa
rgowdapp at redhat.com
Tue Jul 12 04:38:26 UTC 2016
----- Original Message -----
> From: "Zhengping Zhou" <johnzzpcrystal at gmail.com>
> To: gluster-devel at gluster.org
> Sent: Tuesday, July 12, 2016 9:28:01 AM
> Subject: [Gluster-devel] [puzzle] readv operation allocate iobuf twice
>
> Hi all:
>
> It is a puzzle to me that we allocate rsp buffers for rspond
> content in function client3_3_readv, but these rsp parameters hasn't
> ever been saved to struct saved_frame in submit procedure.
Good catch :). We were aware of this issue, but the fix wasn't prioritized. Can you please file a bug on this? If you want to send a fix (which essentially stores the rsp payload ptr in saved-frame and passes it down during rpc_clnt_fill_request_info - as part of handling RPC_TRANSPORT_MAP_XID_REQUEST event in rpc-clnt), please post a patch to gerrit and I'll accept it. If you don't have bandwidth, one of us can send out a fix too.
Again, thanks for the effort :).
regards,
Raghavendra
> Which means
> the iobuf will reallocated by transport layer in function
> __socket_read_accepted_successful_reply.
> According to the commnet of fucntion rpc_clnt_submit :
> 1. Both @rsp_hdr and @rsp_payload are optional.
> 2. The user of rpc_clnt_submit, if wants response hdr and payload in its
> own
> buffers, then it has to populate @rsphdr and @rsp_payload.
> ....
> The rsp_payload is optional, ransport layer will not reallocate
> rsp buffers if
> it populated. But the fact is readv operation will allocate rsp buffer twice.
>
> Thanks
> Zhengping
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel
>
More information about the Gluster-devel
mailing list