Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp1215585ybb; Wed, 25 Mar 2020 18:30:58 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvtOKPOz8MxetCn0OA34zvYasR+OHe9fvlrUwemXE/6QXKCbwtcaeUnm4MOZje+eaCYyvDo X-Received: by 2002:a9d:1920:: with SMTP id j32mr4401787ota.221.1585186258073; Wed, 25 Mar 2020 18:30:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585186258; cv=none; d=google.com; s=arc-20160816; b=V2kjqDz0bX6EHfA4DFTxDroUBdCD/MSgPfmo5qYPwh9yVVzDGUqPbPOq7yhWag8+aa mhPHoeXzvKz2YVVDoK6TnhvfTh51YeFa+h5/VKixNpNKda/c3z1kKl0tKgPPaWl8VXuy oo45zMaWiA4Ge9KPDHExtgrj0dvXYncG+b5PEFi3ff0aNG5vjIEYdb3HB9q/erWuz0rf qvKLbcxt7QfTKDey50MS0SF60L4DpycOvxqYs+Eu16tPWBeKuVrK+NOdlqNEaVo3vB/+ U5HtYWqtgecssabRyydVoiweiUxMuQ11bi1O273B2wp2kQKrSyBNvotB26g0PWvAy3Xy MJag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=I4cuIyu/omhcY8YXZWH8kJbJw98P2odDZvIJixI3E5g=; b=N71XPmtm2VrQmhO3r+buPC2ZwpPJQi7Y8dAhsZt2eFXGISpw+ni2CpPfkjNa5LLO2S hid796vvkXhgS6MCA9FY/xJagtaVYlllpfBPr+HqSGIBxNDlBxLt08xcnOnJpX29cBe7 g4fbsHnhUiNuw7UoVRW2RalPzT/aG2bSDAH2reiUbGowzbp4hor2IxZ0IoKwsiBw5ruC FA2G8mWk0zsvP+T3RN5OvWcG8IkhnAJJGMY0SoVur2vPI1ZiP0GTGyT3LGXnbU656zBO NBpztT9Udfga86MpG1y+ssalgZwEV49yaz7EPj22NCrZdKdYAqYg9TqOhrUCoSvViJ/m 9eIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=jaKrd7Ye; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v8si273576ooq.63.2020.03.25.18.30.44; Wed, 25 Mar 2020 18:30:58 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=jaKrd7Ye; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727661AbgCZBaX (ORCPT + 99 others); Wed, 25 Mar 2020 21:30:23 -0400 Received: from mail-il1-f196.google.com ([209.85.166.196]:36544 "EHLO mail-il1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727574AbgCZBaW (ORCPT ); Wed, 25 Mar 2020 21:30:22 -0400 Received: by mail-il1-f196.google.com with SMTP id p13so3883168ilp.3; Wed, 25 Mar 2020 18:30:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=I4cuIyu/omhcY8YXZWH8kJbJw98P2odDZvIJixI3E5g=; b=jaKrd7YeEmGbkjFUbycPVv8pzEL0/SFIVCzSjpQZ96Iuv3hPdGPt1l6mKlf47WBfmE qFeo2ulVWGfETdv9DMIt71jhTXrfBp8/Yu6Y7zqGI6vX0ehO8sPCT0+S+iguxMQqZ6v7 eSqk1+fxqRO1qt8tr2AFr+A94Acnluya/W481EEf7o95wi4IsQ8ZCzn0UyU+z8STQ6P4 /vvhsy4CCxe0PrVAzMRZFKsSN6KsVQE2akCDV+GGwlCtlFctwI1tKT6M2VGefs9FDKhO Fb1Yr9rSl4rrh4EPdZmie6Nc8dLiknA15Pi9x8JmaRxFBtcjlx/6vm3r+So9s/UrE111 mPOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=I4cuIyu/omhcY8YXZWH8kJbJw98P2odDZvIJixI3E5g=; b=KMQjxxm/g46zqTmqOCA65UDKW2XFUEaZ6l3+uXjjL8IHIxRaMpBymlb03wpZmeM31v mym3DF78oyadEOVo6cE8n2g3rpGDnyFcAlrwDsWoitNUUmw5xm2T/DAmY/EJoOMdVM45 M+DjZig4VoCjJoC6Hdm+g81CyudF2tMe31Njcqe/jWL6BgBsnNscEJiURXQXU36xVPpX PmGJZWWoeZb5SNR3uIuI17Rj34lovFQ5PVIxYJssZ2LR7NsvpQ9abforwRmPW6edJgTA wZfr1VvqnuUOd7CSp2USlbFwYA0YZF5LlvLYv7GEvh3QgzhW9NHR35zDySB//dqKtNGr eTsw== X-Gm-Message-State: ANhLgQ2zfAfyDPgSG9l3ZR9mzS84Xe+eHlCnahjL3O0TMLkboBDlhUPK WfyPbfaSsfqy0XL5kb6JG1JAQCiCTWWr1ZCQG1E= X-Received: by 2002:a92:83ca:: with SMTP id p71mr5896717ilk.278.1585186221583; Wed, 25 Mar 2020 18:30:21 -0700 (PDT) MIME-Version: 1.0 References: <20200322090425.6253-1-hqjagain@gmail.com> <20200326001416.GH3756@localhost.localdomain> In-Reply-To: <20200326001416.GH3756@localhost.localdomain> From: Qiujun Huang Date: Thu, 26 Mar 2020 09:30:08 +0800 Message-ID: Subject: Re: [PATCH v4] sctp: fix refcount bug in sctp_wfree To: Marcelo Ricardo Leitner Cc: "David S. Miller" , vyasevich@gmail.com, nhorman@tuxdriver.com, Jakub Kicinski , linux-sctp@vger.kernel.org, netdev , LKML , anenbupt@gmail.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 26, 2020 at 8:14 AM Marcelo Ricardo Leitner wrote: > > On Sun, Mar 22, 2020 at 05:04:25PM +0800, Qiujun Huang wrote: > > sctp_sock_migrate should iterate over the datamsgs to modify > > all trunks(skbs) to newsk. For this, out_msg_list is added to > > s/trunks/chunks/ My :p. > > > sctp_outq to maintain datamsgs list. > > It is an interesting approach. It speeds up the migration, yes, but it > will also use more memory per datamsg, for an operation that, when > performed, the socket is usually calm. > > It's also another list to be handled, and I'm not seeing the patch > here move the datamsg itself now to the new outq. It would need > something along these lines: Are all the rx chunks in the rx queues? > sctp_sock_migrate() > { > ... > /* Move any messages in the old socket's receive queue that are for the > * peeled off association to the new socket's receive queue. > */ > sctp_skb_for_each(skb, &oldsk->sk_receive_queue, tmp) { > event = sctp_skb2event(skb); > ... > /* Walk through the pd_lobby, looking for skbs that > * need moved to the new socket. > */ > sctp_skb_for_each(skb, &oldsp->pd_lobby, tmp) { > event = sctp_skb2event(skb); > > That said, I don't think it's worth this new list. About this case: datamsg ->chunk0 chunk1 chunk2 queue ->transmitted ->retransmit ->not in any queue Also need to maintain a datamsg list to record which datamsg is processed avoiding repetitive processing. So, list it to outq. Maybe it will be used sometime. > > Marcelo