Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp87461ybz; Tue, 28 Apr 2020 18:52:08 -0700 (PDT) X-Google-Smtp-Source: APiQypKTDSkB/zm7Tgqk1qkt7/Gpayo5aVYwBIdkw2HlL6nUFYb1ysOHBwQtr+zhlb98yG24QwqT X-Received: by 2002:a17:907:214d:: with SMTP id rk13mr566801ejb.220.1588125127927; Tue, 28 Apr 2020 18:52:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588125127; cv=none; d=google.com; s=arc-20160816; b=zMotATBIJwgLk2fCN2rAoiUS52MKubqIYcq+MXRzf8zNHy0OIXUtSeurVov4kaS111 9b/vz3+JFumnl5ogBrN80BNG0UVvVj+1XX/siCXRoK1kjg5A4bzvvGo1DUBCt1KAZv2K 2azXD4ANwyHhIMtal5zonlGbskfc9viFk8OQNPCKfFLJZMQZou9DqwHMS+ZMwHsAzBOu 5gckAsEUllQV5BYv6fD5Ll1trW7hreaehPkIVxQoOAmkCtJZaoQ4EAVPikPvpJfL1/jV AcKnCMXmLXnF7YrHmhL186NvrExhv/acL6D5O0e6LZnBHkzWx1OtgOAwJtcfQC1A3E+U hhbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=LCV05bmUMt/JTnik/FHerL4Ec6mpH5O0Enok8cXx9E8=; b=YB475DEydHAhrCY4gRRAV4k2pKC7rKMlpQSAyxzkth8NTQaAq1TKgFVL/lcZ17b74t Nau32twp3iOFKjM7foBFY32XJyMBUrZZUD2DLrbUfX72ui8N2luiFPwoPXk/siRNprCO UudsZopdeYoTRTxkVmtI/sp8/p8FgYt8u2iYJNqYJkzmEy9UvkgtHI8zkyTAiWthpEnI TPs/L6yyz2H6G00OWi08TCMDai+MejV5D4otpksVpvcZfiSA8L5oI6DsvWiqFga5TqG/ vKdVL3/MgDVZ+ovGPZCrN498+XAuHiS4qoeK/6dPf/klF2gJ4b1PRAOtI85lTdOnZdVb 4Gyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=FkFAtxo4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a21si2608481edv.500.2020.04.28.18.51.43; Tue, 28 Apr 2020 18:52:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=FkFAtxo4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726508AbgD2BsV (ORCPT + 99 others); Tue, 28 Apr 2020 21:48:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55626 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726158AbgD2BsV (ORCPT ); Tue, 28 Apr 2020 21:48:21 -0400 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5497CC03C1AC; Tue, 28 Apr 2020 18:48:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=LCV05bmUMt/JTnik/FHerL4Ec6mpH5O0Enok8cXx9E8=; b=FkFAtxo48mz7pUFlav7T1IDRCW EkFO3Pxze3Q4aD90IVsb4it+V85tsX7cOEjdDX0reX18BoNdq7zOe7j/KNZGlRS6qEXeUMqobpAhL xLOpR68hSSbWMco3ZLW7gDleGlTlFDS08fAJr/uzLQZKc83VzyI3Rvi8MUNCOuCMgW4W0dtDqLWlQ hld/UnzliFEQfDKWjPxyFORuzQ9a2CXmM2juej1AbUYphFXyLirQXRmw356z+7VkbLe51GbJKo/U0 xQb5ZzSNNsjavNkuYLw1eN8uv0/G9yjopfGn4T+1opbtOtpdGf32jCmlKku9/Q0xVmkr4mM2w+X8H 2GYE3/Tg==; Received: from willy by bombadil.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1jTbpT-0004yP-Dr; Wed, 29 Apr 2020 01:48:03 +0000 Date: Tue, 28 Apr 2020 18:48:03 -0700 From: Matthew Wilcox To: Andrew Morton Cc: Wei Yongjun , Pankaj Bharadiya , Waiman Long , Manfred Spraul , Stephen Rothwell , Alexey Dobriyan , linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: Re: [PATCH -next] ipc: use GFP_ATOMIC under spin lock Message-ID: <20200429014803.GO29705@bombadil.infradead.org> References: <20200428034736.27850-1-weiyongjun1@huawei.com> <20200428111403.GJ29705@bombadil.infradead.org> <20200428171420.045f0acc9e1bf20044c4560e@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200428171420.045f0acc9e1bf20044c4560e@linux-foundation.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Apr 28, 2020 at 05:14:20PM -0700, Andrew Morton wrote: > On Tue, 28 Apr 2020 04:14:03 -0700 Matthew Wilcox wrote: > > > On Tue, Apr 28, 2020 at 03:47:36AM +0000, Wei Yongjun wrote: > > > The function ipc_id_alloc() is called from ipc_addid(), in which > > > a spin lock is held, so we should use GFP_ATOMIC instead. > > > > > > Fixes: de5738d1c364 ("ipc: convert ipcs_idr to XArray") > > > Signed-off-by: Wei Yongjun > > > > I see why you think that, but it's not true. Yes, we hold a spinlock, but > > the spinlock is in an object which is not reachable from any other CPU. > > So it's not possible to deadlock. > > um, then why are we taking it? The lock has to be held by the time 'new' is findable because 'new' is not completely constructed at that point. The finder will try to acquire the spinlock before looking at the uninitialised fields, so it's safe. But it's not a common idiom we use at all. > > This probably confuses all kinds > > of automated checkers, > > A big fat code comment would reduce the email traffic? I think I can rewrite this to take the spinlock after doing the allocation.