From patchwork Mon Jul 17 02:22:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lin Zhang X-Patchwork-Id: 789182 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3x9nBw4Y9Cz9s65 for ; Mon, 17 Jul 2017 12:23:04 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="tGK5Z7eZ"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751291AbdGQCWu (ORCPT ); Sun, 16 Jul 2017 22:22:50 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:34690 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751245AbdGQCWs (ORCPT ); Sun, 16 Jul 2017 22:22:48 -0400 Received: by mail-pg0-f67.google.com with SMTP id v190so3881111pgv.1; Sun, 16 Jul 2017 19:22:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=Fr+saBifVF1/+inE4aaBZykoIipg97DDdAMIr5cVbWA=; b=tGK5Z7eZKBhFf+XTEHh6uYoZW9wa4X1f2d6mRkxNoLM7dksBZvhBkytV65pYEDEI7D mF0r5YKfM17PKsP114cMEtxaLw3/zS7ZuGF6wukFGGHwQwIu1iBZ5/6qqXv7ZM9XpdUl V5MmeMfukWU26/mAmR9sEDsD78hcbJVBMrBr0n7A+mfRGpDSqrZwXjcA3ockSl9dPr3U yO+nwXkdS6cK38YVJqUzmY062a14O+j1/hscCjc/cR+WgDdPgQ7nlpAiPJ5Eh0IVrrKs WkKjbBdoaK2BawKzo6Kbtfhxhhl5NueAUCTcTWdvxnLg+0P7q2oWCbf4J8jz10QAd84U POSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Fr+saBifVF1/+inE4aaBZykoIipg97DDdAMIr5cVbWA=; b=tm53SPXIMle+mVYIr+jMCV/VJU90gvuFsOwwSgtevfu6gnpYaJ/ryMoYIq1zGMW0LT Cp1O+enYzl7pr9k1H6ADztCoDmO7GmE+4wlngdY41RKq+XAEIhd64ETZXbFmzSQ/Spuz lSemEkCFiZ+5or2MOxjvKTc2fmCaQsPzLZZ4rSPNVkB0+SxTbpwxo28CJ3UhtoyXK1tG iEbWpqptJCd//lTuniaTKuQdjtioUoYwvweFE4R0ADOVzjpegcZSYF+C/6JANewcAnQR dP9aKDf5U1W40cM3vZDBETb+551eRZ4HujZnltcCNQt9NPDQjGtFhwi8GUENm2EDR1QS Fojw== X-Gm-Message-State: AIVw111D8G2DqqYssp3H96DuA5zmBTQvZt1XkDUg8Fnvw7KkNfNXXmgS B2gbcQ23T4U//2fy X-Received: by 10.98.198.208 with SMTP id x77mr16997400pfk.229.1500258168347; Sun, 16 Jul 2017 19:22:48 -0700 (PDT) Received: from localhost.localdomain.localdomain ([110.185.39.236]) by smtp.gmail.com with ESMTPSA id y2sm26336318pgy.60.2017.07.16.19.22.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 16 Jul 2017 19:22:47 -0700 (PDT) From: Lin Zhang To: davem@davemloft.net Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Lin Zhang Subject: [PATCH net-next resubmit] skbuff: optimize the pull_pages code in __pskb_pull_tail() Date: Mon, 17 Jul 2017 10:22:06 +0800 Message-Id: <1500258126-11235-1-git-send-email-xiaolou4617@gmail.com> X-Mailer: git-send-email 1.8.3.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In the pull_pages code block, if the first frag size > eat, we can end the loop in advance to avoid extra copy. Signed-off-by: Lin Zhang --- net/core/skbuff.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/core/skbuff.c b/net/core/skbuff.c index f990eb8..c00a1df 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -1720,6 +1720,10 @@ void *__pskb_pull_tail(struct sk_buff *skb, int delta) skb_shinfo(skb)->frags[k].page_offset += eat; skb_frag_size_sub(&skb_shinfo(skb)->frags[k], eat); eat = 0; + if (!i) { + k = skb_shinfo(skb)->nr_frags; + break; + } } k++; }