Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp1637718pxp; Thu, 17 Mar 2022 13:17:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxCCr/CJDHAnYEto+q/uweDNdFzzH3oN6Y+Gv1XdsGVEtxBYyyhTV1VwgAa8hKQ1U3v9iNi X-Received: by 2002:a17:90a:5302:b0:1b9:ba0a:27e5 with SMTP id x2-20020a17090a530200b001b9ba0a27e5mr17618711pjh.91.1647548269855; Thu, 17 Mar 2022 13:17:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647548269; cv=none; d=google.com; s=arc-20160816; b=O15JcayqvjDakOOU1P2sz113CTFhFNouWBsoX9qVJuXUP1zB+wlwaq+1YEVp7EVqFU rxvF2YpKXi0vfdt0zi6GFf6BRTL11xVthLnNGlArabp28wDq2Vy9vODi9MMrrMBaxQPx THPRvwFB8ojpamKC65/hHfqsxWPsbgLVT0ahXp6V62vFFFNOkFuKh4tKgqSnGDl/Kj0M fPu5QzcoxLMbvJ4ExwPjRwF6eJBzb8i+tyN9lKQUqk1fuQeSbBM97CvcSB6TDssmqkQF tyGy8ELvPwuXd+3sKB8RnzYnssudh/9rnULEjMIo8g885k5ow+4oQ8p5ByxgE7wW1E+A aBGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=zJRbO4kA+Pihlm5cFM/+/LRBPUOPyog00Sw3I6U8gL8=; b=0I5UCd3PjmrA24Ylv/6kuCCiFF3p2fxjZdMUXNdaRCkvafwqFOei3xvMOCDgDyUDlO mlFGxtnnZW3QsidDiaUJrB3pwmH/pJgHPg5z+K0axdYQN1sG8tDdNWpZYyLTTTawPQK5 SW6J6AFJAeyRrPqGohSHhFY2B18z72ERVviV/vR5TsCQwzATAPJeSECm1nrXtmV3haMx aE0R2uvdnr67dsesaTaL/KPnD+QwB6m5l42v2zss93b9Mtg3xyPHZYPUOqCOM6EZkhKH +md3mSbHAxslfJ+0P8YVfwSyiDMaJ2eHeJJhi866yAZQ9FA598YGIOWAaE+MfjAjPTtJ 76iw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=oY75XE6P; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id i11-20020a63e90b000000b003816043f0fasi2914978pgh.751.2022.03.17.13.17.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Mar 2022 13:17:49 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=oY75XE6P; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id BAB381480E5; Thu, 17 Mar 2022 12:59:40 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234816AbiCQOB1 (ORCPT + 99 others); Thu, 17 Mar 2022 10:01:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53662 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234825AbiCQOBU (ORCPT ); Thu, 17 Mar 2022 10:01:20 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 52B8E1E31BA; Thu, 17 Mar 2022 07:00:03 -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 ams.source.kernel.org (Postfix) with ESMTPS id E44E3B81E9E; Thu, 17 Mar 2022 14:00:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ACF4FC340ED; Thu, 17 Mar 2022 14:00:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1647525600; bh=FsXnLpvuwrnZJL+9hSDFu0U3Tmtv14ERqUsxk7V5DjQ=; h=Date:From:To:Cc:Subject:Reply-To:References:In-Reply-To:From; b=oY75XE6PhHFsePv/9o7mdFpveQpH2BeQ9lmEsb2rwhFLl/8IzIiNeHWjYPXRY0zpz gWNtfka58zm05oQbUQGycnFBKqBaiEb8NM4Fv98gJMsCZUWNZPDm5quSTMR8SJI/e/ VxTAPFMDzqX7luucRDawg30/KCAMfJzCBhakUVCvzoKts5Nnu+kvVNmRL7wxTlE5tl vAEcvEcXCRX5OCIP+KvjOxYX4WbSUxzsd3AgexF65DoOTPRhWvzZ9QG7TMYJfEWHRk kdBCnGe41QS7HVPBFDiqGsja3m2Ids2gR4sqr09qfZNFCddt3no5ScZU/50d8BWWwK lZX2pTb1VJVfQ== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 54F9B5C0341; Thu, 17 Mar 2022 07:00:00 -0700 (PDT) Date: Thu, 17 Mar 2022 07:00:00 -0700 From: "Paul E. McKenney" To: Hyeonggon Yoo <42.hyeyoo@gmail.com> Cc: rcu@vger.kernel.org, Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Joel Fernandes , linux-kernel@vger.kernel.org Subject: Re: RCU: undefined reference to irq_work_queue Message-ID: <20220317140000.GO4285@paulmck-ThinkPad-P17-Gen-1> Reply-To: paulmck@kernel.org References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 17, 2022 at 11:32:53AM +0000, Hyeonggon Yoo wrote: > Hello RCU folks, > > I like to use minimal configuration for kernel development. > when building with tinyconfig + CONFIG_PREEMPT=y on arm64: > > ld: kernel/rcu/update.o: in function `call_rcu_tasks': > update.c:(.text+0xb2c): undefined reference to `irq_work_queue' > update.c:(.text+0xb2c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `irq_work_queue' > make: *** [Makefile:1155: vmlinux] Error 1 > > It seems RCU calls irq_work_queue() without checking if CONFIG_IRQ_WORK is enabled. Indeed it does! And kernel/rcu/Kconfig shows why: config TASKS_TRACE_RCU def_bool 0 select IRQ_WORK help This option enables a task-based RCU implementation that uses explicit rcu_read_lock_trace() read-side markers, and allows these readers to appear in the idle loop as well as on the CPU hotplug code paths. It can force IPIs on online CPUs, including idle ones, so use with caution. So the solution is to further minimize your configuration so as to deselect TASKS_TRACE_RCU. This means making sure that both BPF and the various RCU torture tests are all deselected. Or turn on IRQ_WORK, for example, if you need to use BPF. Thanx, Paul