From patchwork Thu Mar 9 23:06:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 737171 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 3vfR7L1mYYz9s7g for ; Fri, 10 Mar 2017 10:14:50 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="t9p8Y4A3"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752045AbdCIXOr (ORCPT ); Thu, 9 Mar 2017 18:14:47 -0500 Received: from mail-pf0-f196.google.com ([209.85.192.196]:32978 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750781AbdCIXOq (ORCPT ); Thu, 9 Mar 2017 18:14:46 -0500 Received: by mail-pf0-f196.google.com with SMTP id v190so8714228pfb.0 for ; Thu, 09 Mar 2017 15:14:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:subject:from:to:cc:date:in-reply-to:references :mime-version:content-transfer-encoding; bh=cd20sfJ5XX8SIlk1BQ7f+hj6bN5Y4Hbjszml3Esac1o=; b=t9p8Y4A3Iv+ky60HaX3QfRCYWBKLsh8fMUrKVpb3Uni4OZYBpYeDroOlPvECn+DUnn z6NY43SgX0WTf0TPE7qgt19K0tfYsqgIpAMn+TGGv4AphhjLX7HeKHD616lAwhNWkWF4 qx05ps5h9DBCQNet2xyYLDTLTxr30PpjPfGpkdr7johmEHCeUvTyb0M6ytVFKqDNm0pJ v5y05gpvEk0fAGLNyuRTdx45q6rUAXDtVbJyE4qIzbRePC+lSKbIY+cEZXAkQLkc2cAP QuvmUu8q/5TWkPiJ7WpSGvkLtzOkSWRCYVYIkk/4NDtougplZGcHTo5g4fpIjX5+riBp w0pQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:mime-version:content-transfer-encoding; bh=cd20sfJ5XX8SIlk1BQ7f+hj6bN5Y4Hbjszml3Esac1o=; b=J/PrVKAXmoumwFZh3BYXIrdSN/CwIk2o20GrnyGV6W+l2Ozm4+wmaPjbEOLWc1Zbpi +nsbUfDG563JjMmUiBWUe73R7ITNfFJO68ltMX46g1aLQeWGQo856GpS/XTF/R+ZaY+3 GxaqjVgcbAgWnLRTew+ploSHZUIB2Qw6mn+cZMM8PMbt1zJU36VjrAUELaO1DuZGp4z0 RAErMGK7Fu3O5HQCnz5g2vAVoUW7OemUJNumGjJoD+Cbc+9i1mOfowGEcDkIv4FuVTRe FUaaBVKBnLOtV/Ie/3bi1HMghnUzJCmHjJ19rNKeCasnv/RLWvrH9cIru+4+CVLfe9p3 dHQQ== X-Gm-Message-State: AMke39kq4FRt7YbhnJjIfBegYEtdhrR80bgo8Y77gMoeupRF/7BMMKMakGjkUOxYInASHg== X-Received: by 10.84.194.1 with SMTP id g1mr20476287pld.98.1489100781635; Thu, 09 Mar 2017 15:06:21 -0800 (PST) Received: from ?IPv6:2620:0:1000:1704:cdc2:4760:f407:38d2? ([2620:0:1000:1704:cdc2:4760:f407:38d2]) by smtp.googlemail.com with ESMTPSA id p6sm14550321pgn.40.2017.03.09.15.06.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 Mar 2017 15:06:20 -0800 (PST) Message-ID: <1489100780.28631.25.camel@edumazet-glaptop3.roam.corp.google.com> Subject: Re: xgbe unbalanced enable for IRQ XX in 4.11-rc1 From: Eric Dumazet To: Tom Lendacky Cc: Jeremy Linton , "netdev@vger.kernel.org" , Eric Dumazet Date: Thu, 09 Mar 2017 15:06:20 -0800 In-Reply-To: References: <41df0f3a-5867-b0d5-a7f9-14b66eaff7a2@arm.com> <25762623-5aae-bfb1-64fd-dd431630c6c9@arm.com> X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Thu, 2017-03-09 at 16:35 -0600, Tom Lendacky wrote: > On 3/9/2017 4:17 PM, Jeremy Linton wrote: > > Hi, > > > > On 03/09/2017 03:39 PM, Tom Lendacky wrote: > >> On 3/9/2017 3:26 PM, Jeremy Linton wrote: > >>> Hi, > >> > >> Hi Jeremy, > >> > >> I'll have a look at it. Can you send me your kernel config just in > >> case? > > > > Sure, i will send it to you off list to avoid spamming everyone with a > > 43k gziped file. > > > > I'm able to recreate the problem with my current config. If I revert > patch 39e6c8208d7b ("net: solve a NAPI race"), then the problem goes > away. > > Eric, any thoughts on this? I'm guessing the driver should check that > napi_complete_done returns true before enabling IRQs... > > Thanks, > Tom Yes, it seems this driver has a conditional disable_irq_nosync() following the napi_schedule_prep() So it probably needs the same for the enable_irq() side. This would be broken with busy polling anyway, before my patch. diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c index 248f60d171a5a0ce76744a95e2d59039939e6538..c47a3a93f034ab608286d1ae343e9b7778063df8 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c @@ -2272,9 +2272,8 @@ static int xgbe_one_poll(struct napi_struct *napi, int budget) processed = xgbe_rx_poll(channel, budget); /* If we processed everything, we are done */ - if (processed < budget) { - /* Turn off polling */ - napi_complete_done(napi, processed); + if (processed < budget && + napi_complete_done(napi, processed)) { /* Enable Tx and Rx interrupts */ if (pdata->channel_irq_mode)