Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp821333ybd; Wed, 26 Jun 2019 06:34:19 -0700 (PDT) X-Google-Smtp-Source: APXvYqwnqyKmK/9Vy3KqOm8+kT6TV1/puPgg4OblaJ0Jgx0/8QjK4h6v1CvfiHpgDAihvuQ3vrJK X-Received: by 2002:a63:a61:: with SMTP id z33mr3070727pgk.154.1561556059172; Wed, 26 Jun 2019 06:34:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561556059; cv=none; d=google.com; s=arc-20160816; b=YRNiQU2sKrM8bJGUacI2osVIpC8B5yUgL9+k/R6QgcsfQM1JgCDZ3b5AjxUGDo2ELU /WRxFQzivZmKXRHjxhJH3ZPK32v146ORC8udT0N8fTBLybyAaw3SMUhs5HAKQn+Mke0W PnswTVjCTMGJ4JT0xu0VE5PXH3BP6WEXwHJDULf0O41GST1FCnOEt8q0ZZwFdQ+pPKIN X/M6vkqgRTvMc/99/9cBUuhm6+owjHafg/QHCF6e2cCgRWUz9yFz0J/muPIaRTErTW4A WOyt6pPfnZmThUFvXGurrERrcrm9oqcPqjRjAPzW9SPd9yLsHHQERqreG8ZQFrbnRqms xTfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=qhM2+1GCtcKxSqzSWSsi0EoZl+Mz2KrNuSM10Qlz1HE=; b=YrS6l1N9wHTBFdK5uLTSr2yC5sFKbXGZ0HwngceWnuqzdzxAgGhhg5+d/9HF9JtYvw 30lWOWBlqq4lBLO7jDEv7XFqrBLMkVpicuvpQNYI4SbmKZdd5iqRum+ka5pkMq36pkA1 r4WjOwb7YMdgvVGALg+8KfMlbrKVqk6+GMpoJzQR0SFMsFSFA1+N3ZJ2oEvmd24TMLiw G0NgDEDahpDYcgOtdZBwK1NzVpIxqJrb/AlxfFf1sSPDbLUxOzAKc293lU/hTXniLrgD YFrgMmEYR5mG0W6D08K31Qw0t3g9n2HxgT0O9jXowG9q30bqiz9ycquP7fPyIWLhWGIP 6s0Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v9si15366617pgs.312.2019.06.26.06.34.02; Wed, 26 Jun 2019 06:34:19 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727681AbfFZNcX (ORCPT + 99 others); Wed, 26 Jun 2019 09:32:23 -0400 Received: from sauhun.de ([88.99.104.3]:56248 "EHLO pokefinder.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726104AbfFZNcX (ORCPT ); Wed, 26 Jun 2019 09:32:23 -0400 Received: from localhost (p54B330AF.dip0.t-ipconnect.de [84.179.48.175]) by pokefinder.org (Postfix) with ESMTPSA id DD83E2C0114; Wed, 26 Jun 2019 15:32:20 +0200 (CEST) Date: Wed, 26 Jun 2019 15:32:20 +0200 From: Wolfram Sang To: Nikita Yushchenko Cc: Wolfgang Grandegger , Marc Kleine-Budde , "David S. Miller" , Simon Horman , Wolfram Sang , linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Artemi Ivanov , Sergei Shtylyov Subject: Re: [PATCH resend] can: rcar_canfd: fix possible IRQ storm on high load Message-ID: <20190626133220.GK801@ninjato> References: <20190626130848.6671-1-nikita.yoush@cogentembedded.com> <20190626131251.GB801@ninjato> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="ogUXNSQj4OI1q3LQ" Content-Disposition: inline In-Reply-To: <20190626131251.GB801@ninjato> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --ogUXNSQj4OI1q3LQ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jun 26, 2019 at 03:12:51PM +0200, Wolfram Sang wrote: > On Wed, Jun 26, 2019 at 04:08:48PM +0300, Nikita Yushchenko wrote: > > We have observed rcar_canfd driver entering IRQ storm under high load, > > with following scenario: > > - rcar_canfd_global_interrupt() in entered due to Rx available, > > - napi_schedule_prep() is called, and sets NAPIF_STATE_SCHED in state > > - Rx fifo interrupts are masked, > > - rcar_canfd_global_interrupt() is entered again, this time due to > > error interrupt (e.g. due to overflow), > > - since scheduled napi poller has not yet executed, condition for calli= ng > > napi_schedule_prep() from rcar_canfd_global_interrupt() remains true, > > thus napi_schedule_prep() gets called and sets NAPIF_STATE_MISSED flag > > in state, > > - later, napi poller function rcar_canfd_rx_poll() gets executed, and > > calls napi_complete_done(), > > - due to NAPIF_STATE_MISSED flag in state, this call does not clear > > NAPIF_STATE_SCHED flag from state, > > - on return from napi_complete_done(), rcar_canfd_rx_poll() unmasks Rx > > interrutps, > > - Rx interrupt happens, rcar_canfd_global_interrupt() gets called > > and calls napi_schedule_prep(), > > - since NAPIF_STATE_SCHED is set in state at this time, this call > > returns false, > > - due to that false return, rcar_canfd_global_interrupt() returns > > without masking Rx interrupt > > - and this results into IRQ storm: unmasked Rx interrupt happens again > > and again is misprocessed in the same way. > >=20 > > This patch fixes that scenario by unmasking Rx interrupts only when > > napi_complete_done() returns true, which means it has cleared > > NAPIF_STATE_SCHED in state. > >=20 > > Signed-off-by: Nikita Yushchenko >=20 > CCing the driver author... Bounced :( --ogUXNSQj4OI1q3LQ Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEOZGx6rniZ1Gk92RdFA3kzBSgKbYFAl0Tc+QACgkQFA3kzBSg Kbb75BAAhLltyFkBZdASqi3rHjdUTq/5x4rdFSNMulB8Cf9rrTMAt091eREUWO/f 0aks7VxUHsBR3ojRJkzO90kB4Ep/6ph5KksO951YYCfRec4m5kMwLSl6aIDI+i9S ECa/PF9BYLVFi8WqreaFobkMf60pJrJ0505PBSFEEqM2be5AEuJqTuB51UN+6VEG BvTx8d3AEQLnvVsfWF+zKfR3YjDmmTHLqwe8KzwqTOmJ8DFhQCtQLQdQyeWNwkug KNvWA/Epo4XpxsY2IV0gElZhY1tFPJUpjlkFwWgKTONeXQywAdEaoMIaMD/5mQKV mlKrq5Mi+ZHGmTVikJJs1xUlG6P7s2aPlj3TqYtpmkXK2ySSBULTmvJxkzyZEYWv BLs7mGZsKT2sqkHk68GcIcPSElof+hkBruJMRZDpW+4XSsarU05/U3i2XG2J2bM3 xCfIlTpEr1X8jkXCwGCfw+aRa7/7rbWv2yeOyKb89MW6U8Z9oXlwaKnwdg1GJVF5 u/Y3kuYtmYtJN6KlOioWSymDn12H3q4Dex+FWUfALknKJvjUFggpjOBp+HmYulr7 LY6AqdLEYEKyG+BsW+xfLuZELUwJdbIU96dEZBli3QvYAxuguhenKFJ93Sy6Qhfg oJhl7OvQsmKnpmJOe1vHKaBTwqdP0a5uzzJ64zflQCsSE8ItQ1I= =/Yw0 -----END PGP SIGNATURE----- --ogUXNSQj4OI1q3LQ--