From patchwork Thu Oct 24 17:24:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matteo Croce X-Patchwork-Id: 1183390 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="e5bgRuvV"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46zYzH6CXyz9sQv for ; Fri, 25 Oct 2019 04:25:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2503747AbfJXRZM (ORCPT ); Thu, 24 Oct 2019 13:25:12 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:22790 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2503737AbfJXRZM (ORCPT ); Thu, 24 Oct 2019 13:25:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1571937911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eP2BoDS+qKrOlRNhNKzclArVzVRVn8mElyDMenO637o=; b=e5bgRuvVmvf9LboseYmdCtWRVU7qNcLnO0AOIPgltsqYgcPl2NC7MkXxT7wykYdf6IGsNM ZMung0BJ3LmUpYwmz5FFRizZSM+zbbeQwboWDsoBLs6FiudImDvzQvYAZ5INEdKteTwZyX c8pUzBMjijn/Jl3D1f20dNPFQicq5zs= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-320-eaXsN3joOwG6XWbpwO4mUw-1; Thu, 24 Oct 2019 13:25:09 -0400 Received: by mail-wr1-f71.google.com with SMTP id h4so13213562wrx.15 for ; Thu, 24 Oct 2019 10:25:09 -0700 (PDT) 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=sEHK/Mm+/W2s4S1uZhkuoDS67kM3geWIeg5D1P9O+N8=; b=lPMvy7pzNrm5oSt8Lh23K/XJZu77dUuXkLdVOcUXSQ1s2XnjVMlD5e5Hj9yYPoA2Dw WBPleCmp8ls7Xxaab+mbKdWe5H5cLbC9pAjcHRRWOV/FRDIBGiD/7fjOdainCVXt2rPh 9kTa4d9R4OiQnSSivqAmaEmAnQSvFTOGgO2QCLGnw/Fijiyc2e9WwZrNmOCkKbng25NL xiRtMHy3RHuKdcdA1j3EPj00VojDTvRooJGD9cAJ+dpjD5gUVB3mi5OunWQZqCQLsKfM aJeUadobvWVq0mFJpmw5hmJaB+5mIoyXjD6UzfSUqH3bGXRcb9VfChfPBhjP72UXAEyU U36w== X-Gm-Message-State: APjAAAXCbuWS75IKAQLgWGFFCh3uVZBxNmm6SNhLZCWhVYXQz1MBbtn6 xPNDBcCvsiADEmH0GaOpsIflRrfcQNG5CaqBayVDF+VSZ9vSA6ubuLHVJ3fXxDyfU5NQFTRE4YK g6sx6r93EiDHDV6ZF X-Received: by 2002:adf:fec3:: with SMTP id q3mr4844750wrs.343.1571937907941; Thu, 24 Oct 2019 10:25:07 -0700 (PDT) X-Google-Smtp-Source: APXvYqw+10+EuLZ+rBVSTixGZLcQx5XS8FxFqlBPvpQbaowcsIkiyMX0FX0F2OQ+sQ4I41O86D0+1g== X-Received: by 2002:adf:fec3:: with SMTP id q3mr4844734wrs.343.1571937907744; Thu, 24 Oct 2019 10:25:07 -0700 (PDT) Received: from mcroce-redhat.mxp.redhat.com (nat-pool-mxp-t.redhat.com. [149.6.153.186]) by smtp.gmail.com with ESMTPSA id 200sm4253443wme.32.2019.10.24.10.25.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2019 10:25:07 -0700 (PDT) From: Matteo Croce To: netdev@vger.kernel.org Cc: "David S. Miller" , Antoine Tenart , Maxime Chevallier , Marcin Wojtas , Stefan Chulski , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 1/3] mvpp2: refactor frame drop routine Date: Thu, 24 Oct 2019 19:24:56 +0200 Message-Id: <20191024172458.7956-2-mcroce@redhat.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191024172458.7956-1-mcroce@redhat.com> References: <20191024172458.7956-1-mcroce@redhat.com> MIME-Version: 1.0 X-MC-Unique: eaXsN3joOwG6XWbpwO4mUw-1 X-Mimecast-Spam-Score: 0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Move some code down to remove a backward goto. Signed-off-by: Matteo Croce --- drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index 111b3b8239e1..33f327447b70 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -2957,14 +2957,8 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, * by the hardware, and the information about the buffer is * comprised by the RX descriptor. */ - if (rx_status & MVPP2_RXD_ERR_SUMMARY) { -err_drop_frame: - dev->stats.rx_errors++; - mvpp2_rx_error(port, rx_desc); - /* Return the buffer to the pool */ - mvpp2_bm_pool_put(port, pool, dma_addr, phys_addr); - continue; - } + if (rx_status & MVPP2_RXD_ERR_SUMMARY) + goto err_drop_frame; if (bm_pool->frag_size > PAGE_SIZE) frag_size = 0; @@ -2995,6 +2989,13 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, mvpp2_rx_csum(port, rx_status, skb); napi_gro_receive(napi, skb); + continue; + +err_drop_frame: + dev->stats.rx_errors++; + mvpp2_rx_error(port, rx_desc); + /* Return the buffer to the pool */ + mvpp2_bm_pool_put(port, pool, dma_addr, phys_addr); } if (rcvd_pkts) { From patchwork Thu Oct 24 17:24:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matteo Croce X-Patchwork-Id: 1183391 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="GsFXKGx7"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46zYzR4tFYz9sQv for ; Fri, 25 Oct 2019 04:25:23 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2503770AbfJXRZW (ORCPT ); Thu, 24 Oct 2019 13:25:22 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:50790 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2503754AbfJXRZT (ORCPT ); Thu, 24 Oct 2019 13:25:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1571937918; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VpdbFdZ43dAdHsNmWOOWt4oPOrJUSHjTzkCpLMaCuuo=; b=GsFXKGx7kTPujXEL9R0eMQjBW3UQn6hApjMIQSS9MxgIYl26NpZScrydsne1sXOafkyrgP UudVun8t8HrAH2WFRVgeAgk45iEarGg0GDeTMIkZjq7kV4zGicROM01KYyUO9g0Rfzw2cf t9PwKs0ndgPBhiu9sJXW8YzhSEqVz+g= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-224-bFzwgXgVMdit-WYs_w0amA-1; Thu, 24 Oct 2019 13:25:15 -0400 Received: by mail-wr1-f72.google.com with SMTP id s9so13173104wrw.23 for ; Thu, 24 Oct 2019 10:25:15 -0700 (PDT) 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=l73Ha7i7WUxT4bY8TPcGyLFhUvLl2Vyl/Ql8ZlKhlJA=; b=MhtATVAQTy7gE1CjTErdW+SE/SkjEhfllTrOfjniVvLKyf5u03/iXaDpkSVQVTFPbT f8GnmyssfhQAW1Y51vVwyWTfCav8pT2eONJXqmPdB9qUdiPKoIwdLSgIC9BwwNUnxrEX cavBRQ7H4sVnuK8FX4uK+r8CbSRkYG8FTrlaL8pu30B6EkIsBIEgKsJo6m4IW/OPWT2y bqTbRoplTUJOhUtCx0t1ckWB6KQnL1Jb235NyOlAK3Z5muHhytYcoX8L8fp7FNXz4qHA 4S0B0eElZdlY4I7/7RelASZw+nEsjkpKFG3t4rknc54GwpHZ6lpxa3Jf63VGdX3Q5cyz 0fdw== X-Gm-Message-State: APjAAAX6bwP4T09v+G28cF/W3DSeQGQHQxJ1KdxhhubhWEvbwKpxdzOZ S7V85fVPJnKYI2cW9CGCZIWktXDcoTPeb+aLHJBoRUJeDGJxv5fQhKpDYGpOKtpL/uzvGIvJSzi KZcTvQz5bkvwQHs1O X-Received: by 2002:a5d:4f89:: with SMTP id d9mr5056832wru.286.1571937913968; Thu, 24 Oct 2019 10:25:13 -0700 (PDT) X-Google-Smtp-Source: APXvYqwHb1xE6BrpQ9IL+1bpB0SlzJ+EkiGGWVx3kl5wPRrTnXwQf2aGUhZCPyS1D1C/Gt0smnGOBg== X-Received: by 2002:a5d:4f89:: with SMTP id d9mr5056818wru.286.1571937913738; Thu, 24 Oct 2019 10:25:13 -0700 (PDT) Received: from mcroce-redhat.mxp.redhat.com (nat-pool-mxp-t.redhat.com. [149.6.153.186]) by smtp.gmail.com with ESMTPSA id 200sm4253443wme.32.2019.10.24.10.25.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2019 10:25:13 -0700 (PDT) From: Matteo Croce To: netdev@vger.kernel.org Cc: "David S. Miller" , Antoine Tenart , Maxime Chevallier , Marcin Wojtas , Stefan Chulski , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 2/3] mvpp2: sync only the received frame Date: Thu, 24 Oct 2019 19:24:57 +0200 Message-Id: <20191024172458.7956-3-mcroce@redhat.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191024172458.7956-1-mcroce@redhat.com> References: <20191024172458.7956-1-mcroce@redhat.com> MIME-Version: 1.0 X-MC-Unique: bFzwgXgVMdit-WYs_w0amA-1 X-Mimecast-Spam-Score: 0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In the RX path we always sync against the maximum frame size for that pool. Do the DMA sync and the unmap separately, so we can only sync by the size of the received frame. Signed-off-by: Matteo Croce --- drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index 33f327447b70..15818e1d6b04 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -2960,6 +2960,10 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, if (rx_status & MVPP2_RXD_ERR_SUMMARY) goto err_drop_frame; + dma_sync_single_for_cpu(dev->dev.parent, dma_addr, + rx_bytes + MVPP2_MH_SIZE, + DMA_FROM_DEVICE); + if (bm_pool->frag_size > PAGE_SIZE) frag_size = 0; else @@ -2977,8 +2981,9 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, goto err_drop_frame; } - dma_unmap_single(dev->dev.parent, dma_addr, - bm_pool->buf_size, DMA_FROM_DEVICE); + dma_unmap_single_attrs(dev->dev.parent, dma_addr, + bm_pool->buf_size, DMA_FROM_DEVICE, + DMA_ATTR_SKIP_CPU_SYNC); rcvd_pkts++; rcvd_bytes += rx_bytes; From patchwork Thu Oct 24 17:24:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matteo Croce X-Patchwork-Id: 1183392 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="NHDmx0DD"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46zYzS58mWz9sR0 for ; Fri, 25 Oct 2019 04:25:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2503774AbfJXRZX (ORCPT ); Thu, 24 Oct 2019 13:25:23 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:27846 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2503753AbfJXRZX (ORCPT ); Thu, 24 Oct 2019 13:25:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1571937921; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iXOnFSfNhNPTjcWXUtOF+yLaeNt74t+Dwru1WIRQ94c=; b=NHDmx0DDEPKnU9SX7Kz0sm4ryXG+ahsGT+uH80K6N2EoODXhdoGHVPwvrMSAryj9rZp2XE kAlKQb0poZeECDHhYyVpKm79kHnISI3AEF4F/zMzUm6BNZV3QPV/X6odhEbpl5eKDRrBIT leeo3Zp+epaSbqbgTEG98rkTl9v0i0I= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-185-_Czfr_FAN1ieTF1P6DBbzA-1; Thu, 24 Oct 2019 13:25:20 -0400 Received: by mail-wr1-f71.google.com with SMTP id 4so9053722wrf.19 for ; Thu, 24 Oct 2019 10:25:20 -0700 (PDT) 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=1tLVyJdKCuQgsNv1sXrcha1cG9zhjVmljxh1NemQynM=; b=VkncP8e3keeSVq3/ueLV2DGOgiHL4JcPklnNRSHGYLtbE+g1pD9K++daUYaCJyk2Q8 bekt02YgRQw1mRdIff+LI6XQRFhr4cpGSgYIdr1J7HtotaJCBcTgJkhkL5sTcvvwr8ER G1vYvVo6wLE0a7EM7lz/5lHyCf+PwS5ncM56EHz9CpMtztPiL51aNJZDT1fSGKJqqhDk W2jpsJopPPi9k/EtDg03udd2Tyywg2HjAyu9Oja3WcWChdQfXGQ4t1g67x3R/8hHW34M a5VqGbcmoIA0F8AbcObFcfeHzopVlYu/jROopaVez1lySLEayWDJEUeGT+qOtcsPs05m LNqA== X-Gm-Message-State: APjAAAWGsG3kf6YHLWlNjLHQB1jzOwLhiuftNEwyitVQpLj5KDf9g2bp b6eJ3cmbbozXACamFHT3dKtGkjoYkPsQkOckJUDmDpiiGcF/YLRsXwhsNjz64zyxTcTI3P9UYUt k83SdEEANE/edMeQZ X-Received: by 2002:a5d:424a:: with SMTP id s10mr4699709wrr.108.1571937918920; Thu, 24 Oct 2019 10:25:18 -0700 (PDT) X-Google-Smtp-Source: APXvYqyriwuqPsHKpY30rz7sHHDNla5FgdU0iJGQy5mR4Dg4Ubmi0Cx/2paGQ2bzZvi1RoZnn9Mlng== X-Received: by 2002:a5d:424a:: with SMTP id s10mr4699692wrr.108.1571937918722; Thu, 24 Oct 2019 10:25:18 -0700 (PDT) Received: from mcroce-redhat.mxp.redhat.com (nat-pool-mxp-t.redhat.com. [149.6.153.186]) by smtp.gmail.com with ESMTPSA id 200sm4253443wme.32.2019.10.24.10.25.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2019 10:25:18 -0700 (PDT) From: Matteo Croce To: netdev@vger.kernel.org Cc: "David S. Miller" , Antoine Tenart , Maxime Chevallier , Marcin Wojtas , Stefan Chulski , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 3/3] mvpp2: prefetch frame header Date: Thu, 24 Oct 2019 19:24:58 +0200 Message-Id: <20191024172458.7956-4-mcroce@redhat.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191024172458.7956-1-mcroce@redhat.com> References: <20191024172458.7956-1-mcroce@redhat.com> MIME-Version: 1.0 X-MC-Unique: _Czfr_FAN1ieTF1P6DBbzA-1 X-Mimecast-Spam-Score: 0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When receiving traffic, eth_type_trans() is high up on the perf top list, because it's the first function which access the packet data. Move the DMA unmap a bit higher, and put a prefetch just after it, so we have more time to load the data into the cache. The packet rate increase is about 14% with a tc drop test: 1620 => 1853 kpps Signed-off-by: Matteo Croce --- drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index 15818e1d6b04..a55de943d5cb 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -2963,6 +2963,7 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, dma_sync_single_for_cpu(dev->dev.parent, dma_addr, rx_bytes + MVPP2_MH_SIZE, DMA_FROM_DEVICE); + prefetch(data); if (bm_pool->frag_size > PAGE_SIZE) frag_size = 0;