Received: by 2002:a05:7412:e794:b0:fa:551:50a7 with SMTP id o20csp2394189rdd; Fri, 12 Jan 2024 08:09:24 -0800 (PST) X-Google-Smtp-Source: AGHT+IEZxaiekUlCCACdU0a0saZLRa3GVpjg4BTanpgaDYYCciPM9Nk5JFrUw5hbUumfwgaN5FXW X-Received: by 2002:a17:902:f7d2:b0:1d4:20fb:c2ef with SMTP id h18-20020a170902f7d200b001d420fbc2efmr1047173plw.46.1705075764086; Fri, 12 Jan 2024 08:09:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1705075764; cv=none; d=google.com; s=arc-20160816; b=iYBNPOEvqTNEOoP2lhhYe70N4wWXaxBQLMSHUP68dE5iIhaaId9szE+BILuj2b8hWs DvUc7ffyuxz4cuuv7iunFRx+WlYIUeQw9nzFYs4wPk++QLYqaeMOgz9ziy05HEmh+JZ/ RL0Cang4g4rFD+luzmejjkIejEbahoEKZIKNHTrlbRCBe0PmOE5l6WZlWxvwKuIyXDjw 3LjizTTnOvrGFrwCZZQb4MFP92XaA1wrWD1Py/evs4EZcbXdnGTyRMq1VCx1eZ4VQZSa FMFb2b0cmks9IzqRemtCDOfAESokByAJhPqgI4kgriM3FxgqtGjSP48J2PIH0DGhIc2j rIog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:dkim-signature; bh=9Plj0EUvOJ0e7jjIO2aMKa07BfLytGyQcbL2K1gCCOw=; fh=B+2pL8nrFX245YhwRs8zoU01UIO3gC4g8WpLGvyvMaM=; b=HibOzn7okOEy4azGX4uRyN4u0aoF4POJou3C4SpNqKgqM9G5VLd0UNVD9RMGaClJ2m mxukbm2026Uhf/3B0RrSJQ4nYD+hUYwCcUgq+Lyd877vbsXxsZdgwVaXgxqxcocoeWKi Th2xlEFtULi5ADgfDMpDo07PMX+lIzYkc/xwvLIUOyOqd1EI3RLrtJQjhYNzF2w0i0bK NKn+Slm3yt86AaODVdvggzdxsGN/c5Ihncsx6rbC0O02vfyTi0a3hdPdp6MLab4QciEW +Yy1oNKY8wEwX/JryXfjjLINskOuQssgzpdXv5i5lx/+pdLq13vTOIKZXVnxk9Z9u0qM RFaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=nDtS86E1; spf=pass (google.com: domain of linux-kernel+bounces-24845-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-24845-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id jz6-20020a170903430600b001d558141a4dsi3379575plb.427.2024.01.12.08.09.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jan 2024 08:09:24 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-24845-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=nDtS86E1; spf=pass (google.com: domain of linux-kernel+bounces-24845-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-24845-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 0622D286CD4 for ; Fri, 12 Jan 2024 16:09:23 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 54D8D7316F; Fri, 12 Jan 2024 16:09:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nDtS86E1" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8999164CFF; Fri, 12 Jan 2024 16:09:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A21C5C433F1; Fri, 12 Jan 2024 16:09:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1705075755; bh=QvCLpQbO3roibGZLdHcYBlC9RXMzUp5wDxNcFNfizvc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=nDtS86E1CjYvRCeba2u5/ZyxllA/WItnguD+vilx6MIYPR5Z4qFDUCwYUut7yS6Im 4r2Du/TY+ckF62JVP5AJoRXM1cPPGBhjsxSijhymKZDopm6+vdCj7oRcCcuuJVqhoa a5bAfRcnwu2aWMPNgqXY0Ri8UcnGBZPS79wH8FWiaknwY/wQ3njNE2Lpu43iiAc/Kb 6aWT5Ef//takFx/Wx9cLUtTMsxHGXzTyv1d3QKZQvlvtrew8EW4vBU+SUU8SqaRf5V KAShT5OTKg4mbfxTl1i2SU4hRivO1z2pyarZs9dQmmU4RCcxD52JbYptqj3k0L9ngC GF1fg6sgKt5/w== Date: Fri, 12 Jan 2024 17:09:12 +0100 From: Frederic Weisbecker To: Zqiang Cc: paulmck@kernel.org, quic_neeraju@quicinc.com, joel@joelfernandes.org, rcu@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] rcu/nocb: Fix WARN_ON_ONCE() in the rcu_nocb_bypass_lock() Message-ID: References: <20240110081128.18683-1-qiang.zhang1211@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240110081128.18683-1-qiang.zhang1211@gmail.com> On Wed, Jan 10, 2024 at 04:11:28PM +0800, Zqiang wrote: > For the kernels built with CONFIG_RCU_NOCB_CPU_DEFAULT_ALL=y and > CONFIG_RCU_LAZY=y, here are the following scenarios that will trigger > WARN_ON_ONCE() in the rcu_nocb_bypass_lock() and rcu_nocb_wait_contended(). > > CPU2 CPU11 > kthread > rcu_nocb_cb_kthread ksys_write > rcu_do_batch vfs_write > rcu_torture_timer_cb proc_sys_write > __kmem_cache_free proc_sys_call_handler > kmemleak_free drop_caches_sysctl_handler > delete_object_full drop_slab > __delete_object shrink_slab > put_object lazy_rcu_shrink_scan > call_rcu rcu_nocb_flush_bypass > __call_rcu_commn rcu_nocb_bypass_lock > raw_spin_trylock(&rdp->nocb_bypass_lock) fail > atomic_inc(&rdp->nocb_lock_contended); > rcu_nocb_wait_contended WARN_ON_ONCE(smp_processor_id() != rdp->cpu); > WARN_ON_ONCE(atomic_read(&rdp->nocb_lock_contended)) | > |_ _ _ _ _ _ _ _ _ _same rdp and rdp->cpu != 11_ _ _ _ _ _ _ _ _ __| > > This commit therefore use the rcu_nocb_try_flush_bypass() instead of > rcu_nocb_flush_bypass() in lazy_rcu_shrink_scan(), if the nocb_bypass > queue is being flushed, the rcu_nocb_try_flush_bypass will return directly. > > Signed-off-by: Zqiang Reviewed-by: Frederic Weisbecker