From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 91747C19F2D for ; Sat, 13 Aug 2022 17:18:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239989AbiHMRSb (ORCPT ); Sat, 13 Aug 2022 13:18:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45542 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235606AbiHMRSa (ORCPT ); Sat, 13 Aug 2022 13:18:30 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 15460D12A for ; Sat, 13 Aug 2022 10:18:30 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id A83D360F1C for ; Sat, 13 Aug 2022 17:18:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C487C433D6; Sat, 13 Aug 2022 17:18:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1660411109; bh=1p/xXDVLxA/uqY4ZM7s4TrkCpUzYZCj8oCu8kaTLTig=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E2VXXi/8J0FbtmmYWTiqFxhp7oPW5gH3em4ypMWRTI7ZAvQbUK0p3xcXCFRj1W6Sl TZVZbZTk1SyUBo2FcVCrgT9uHgAMN8ihir+3/iZJkm+Xe1SDS+OF9z/o9xZzAx4U+0 CPIsg8y6txCbuG++luytPwAo1QFuk8AKCp4c3Tn3nFeAyv0SRxyp/m6s5RQmuBgJfn kn67iC4+WDuL+VIO8xWXRdekcw31A7BwxN16SkvEnlt/1eUaMjowHKThjkH1cCT4eR IsSYZO+ONWH9Cap1kRNS/j4L3l9Aus1KXZErLRFzaFhtBk0lzZ7g8E/syVToMWQ1li XVkruo9JIbE2Q== From: James Hogan To: Vinicius Costa Gomes Cc: Paul Menzel , Tony Nguyen , Jesse Brandeburg , netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org, Sasha Neftin , Aleksandr Loktionov Subject: Re: [WIP v2] igc: fix deadlock caused by taking RTNL in RPM resume path Date: Sat, 13 Aug 2022 18:18:25 +0100 Message-ID: <2301866.ElGaqSPkdT@saruman> In-Reply-To: <87o7wpxb1m.fsf@intel.com> References: <20220811151342.19059-1-vinicius.gomes@intel.com> <4759452.31r3eYUQgx@saruman> <87o7wpxb1m.fsf@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Saturday, 13 August 2022 01:05:41 BST Vinicius Costa Gomes wrote: > James Hogan writes: > > On Thursday, 11 August 2022 21:25:24 BST Vinicius Costa Gomes wrote: > >> It was reported a RTNL deadlock in the igc driver that was causing > >> problems during suspend/resume. > >> > >> The solution is similar to commit ac8c58f5b535 ("igb: fix deadlock > >> caused by taking RTNL in RPM resume path"). > >> > >> Reported-by: James Hogan > >> Signed-off-by: Vinicius Costa Gomes > >> --- > >> Sorry for the noise earlier, my kernel config didn't have runtime PM > >> enabled. > > > > Thanks for looking into this. > > > > This is identical to the patch I've been running for the last week. The > > deadlock is avoided, however I now occasionally see an assertion from > > netif_set_real_num_tx_queues due to the lock not being taken in some cases > > via the runtime_resume path, and a suspicious rcu_dereference_protected() > > warning (presumably due to the same issue of the lock not being taken). > > See here for details: > > https://lore.kernel.org/netdev/4765029.31r3eYUQgx@saruman/ > > Oh, sorry. I missed the part that the rtnl assert splat was already > using similar/identical code to what I got/copied from igb. > > So what this seems to be telling us is that the "fix" from igb is only > hiding the issue, I suppose the patch just changes the assumption from "lock will never be held on runtime resume path" (incorrect, deadlock) to "lock will always be held on runtime resume path" (also incorrect, probably racy). > and we would need to remove the need for taking the > RTNL for the suspend/resume paths in igc and igb? (as someone else said > in that igb thread, iirc) (I'll defer to others on this. I'm pretty unfamiliar with networking code and this particular lock.) Cheers James