From mboxrd@z Thu Jan 1 00:00:00 1970 From: Santosh Shilimkar Subject: Re: [PATCH v3 net-next 2/7] rds: hold a sock ref from rds_message to the rds_sock Date: Thu, 15 Feb 2018 11:45:43 -0800 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: davem@davemloft.net, rds-devel@oss.oracle.com To: Sowmini Varadhan , netdev@vger.kernel.org, willemdebruijn.kernel@gmail.com Return-path: Received: from userp2120.oracle.com ([156.151.31.85]:51398 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755579AbeBOTqA (ORCPT ); Thu, 15 Feb 2018 14:46:00 -0500 In-Reply-To: Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 2/15/2018 10:49 AM, Sowmini Varadhan wrote: > The existing model holds a reference from the rds_sock to the > rds_message, but the rds_message does not itself hold a sock_put() > on the rds_sock. Instead the m_rs field in the rds_message is > assigned when the message is queued on the sock, and nulled when > the message is dequeued from the sock. > > We want to be able to notify userspace when the rds_message > is actually freed (from rds_message_purge(), after the refcounts > to the rds_message go to 0). At the time that rds_message_purge() > is called, the message is no longer on the rds_sock retransmit > queue. Thus the explicit reference for the m_rs is needed to > send a notification that will signal to userspace that > it is now safe to free/reuse any pages that may have > been pinned down for zerocopy. > > This patch manages the m_rs assignment in the rds_message with > the necessary refcount book-keeping. > > Signed-off-by: Sowmini Varadhan > --- Acked-by: Santosh Shilimkar