Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp849720rwb; Tue, 4 Oct 2022 11:30:12 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6WCD/T2fCKOj4fcYfhqPxMWAl1mfoM5FRo6KhPuYg8mXYwyA0Usm2g5lmQj1hiThmU0Rvg X-Received: by 2002:a17:902:aa46:b0:17a:487:ef6b with SMTP id c6-20020a170902aa4600b0017a0487ef6bmr28983016plr.8.1664908212387; Tue, 04 Oct 2022 11:30:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664908212; cv=none; d=google.com; s=arc-20160816; b=ltbNilbJryY1irgXq7aQa6B4c+AFqqByuh7efp3NpQEZcctx3sCP7d1JL3Qi+9ghwN HfenUT4471dkDJtmfgd3TwycWDtc/tsjXy93J5ee8iiFV1W2whI1BdrOMjvBaxx0UYl+ Ff8WMyrNu8zcVwYsVijxRh/SmoLInIYab6V2f7yf+GhWXxPE+GKQLCr+S/ziVkOTEUvo tCVU7pmR0mBOGJVWWo11VoNmzMMpTuUUt9JXHzS9FK6ayG/LEqvehN7QUyIxAl9unu5O L53H7Xb3cbSGSK8F630w2K/R322FKEDc3w6WGRl7eUawejfRPKgExstQcYC6FXy6wZlt kmxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=sLLzbroKqpxLu0HQF1QulfhBmT3Qy5q0rRY0h0xXoW8=; b=FG6JCSZGvdcOcMCLj6jhOwj1VbGb3Ljn8lPwUJJciiwe60SooDCVifXBu/9gt3ZDYj O8fbYyMeeMuKh2Tfy9QzfkW7BIgAxMTUKGvAfea0e1QcQDrQDyPkMB/qjrc52kaTWaLW RqnNIUgW4CBfb8cT2hfdQf28bJQ2sUN/8k6PlJl0hmTL9px6K2D6nCtph3Fn7ZQHL4Rs ZumOY5fOp20df23FKmrTHrOmdPYU3MISFl2g+YgEeD+849IpF1DiyU+OSlR/qC2drtPC cizWWi9oGm5ywXzqT2qfWCL0HOmQnimIif9yugLGylkj9f2LMQneFJ3aO3y+fyM/Qxow gcjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=QDTMRLES; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r199-20020a632bd0000000b0042af7555d10si14121436pgr.862.2022.10.04.11.29.59; Tue, 04 Oct 2022 11:30:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=QDTMRLES; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230038AbiJDSFY (ORCPT + 99 others); Tue, 4 Oct 2022 14:05:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55888 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230030AbiJDSFT (ORCPT ); Tue, 4 Oct 2022 14:05:19 -0400 Received: from mail-il1-x131.google.com (mail-il1-x131.google.com [IPv6:2607:f8b0:4864:20::131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D74B4BD07 for ; Tue, 4 Oct 2022 11:05:12 -0700 (PDT) Received: by mail-il1-x131.google.com with SMTP id i9so6955924ilv.9 for ; Tue, 04 Oct 2022 11:05:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=sLLzbroKqpxLu0HQF1QulfhBmT3Qy5q0rRY0h0xXoW8=; b=QDTMRLES+3c9wfPuGJ1UDQsP5WFZWafybw40aij4Uchx9/VI8x77Kd6QQGUp4rZDOO 3/3fX6+wZKuZrNtHh0ltXVCGpNk0UOYFcEz6UpMSSfhSkpR6ekbN+UBF1OA4kd7YVlW1 cE7G13glkKpDJUHPZKXiZJs8gOv0PhBxlcVg8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=sLLzbroKqpxLu0HQF1QulfhBmT3Qy5q0rRY0h0xXoW8=; b=BEa0PNkwpNMiLvHfL4mlRwGehmSwd1KE+PHe3WzripID9ChdyB60uMX7J1+AvUSuy4 weg89CXcZo5jE1hlTIXJNYydLSDWeG9kRMgTiKwk9bvYwwqz9ae4zZUpSNKrtayUf6vY vYpdhqSXO0+w7EIAt4pmlx8BdXS5iyF8jeJJ8QJ0m4BJwYRFOzsKohZ0Cec96ZaAo9bL Px5ekQUWwzn1UNIGJe0AKavTgs4E495ToNQ5xklLKsVpVTB3ettkZMFtCd285juJFPxL 3Khih9x3ngnaR398Xkks7/ImsMIBr1652tn8HaYLExKBsoOyrr1OgtRUSEWmlDXeegsh 3HZQ== X-Gm-Message-State: ACrzQf1/+3ogzcTxpSIbc8Dp43lNE3G061CjJIT+jBGlvf7+uLOTglNk gaVGzOn2hU+aZ1SxLOYmM3nYojmRpk2O8yZhePppZw== X-Received: by 2002:a05:6e02:2191:b0:2f5:aade:9ea0 with SMTP id j17-20020a056e02219100b002f5aade9ea0mr12907928ila.79.1664906711403; Tue, 04 Oct 2022 11:05:11 -0700 (PDT) MIME-Version: 1.0 References: <20221004024157.2470238-1-joel@joelfernandes.org> <20221004024157.2470238-3-joel@joelfernandes.org> In-Reply-To: From: Joel Fernandes Date: Tue, 4 Oct 2022 14:05:01 -0400 Message-ID: Subject: Re: [PATCH v7 02/11] rcu: Make call_rcu() lazy to save power To: Uladzislau Rezki Cc: paulmck@kernel.org, rcu@vger.kernel.org, linux-kernel@vger.kernel.org, rushikesh.s.kadam@intel.com, neeraj.iitr10@gmail.com, frederic@kernel.org, rostedt@goodmis.org, youssefesmat@google.com, surenb@google.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 Tue, Oct 4, 2022 at 7:41 AM Uladzislau Rezki wrote: > > > trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("Check")); > > rcu_nocb_lock_irqsave(rdp, flags); > > lockdep_assert_held(&rdp->nocb_lock); > > bypass_ncbs = rcu_cblist_n_cbs(&rdp->nocb_bypass); > > - if (bypass_ncbs && > > + lazy_ncbs = READ_ONCE(rdp->lazy_len); > > + > > + if (bypass_ncbs && (lazy_ncbs == bypass_ncbs) && > > + (time_after(j, READ_ONCE(rdp->nocb_bypass_first) + jiffies_till_flush) || > > + bypass_ncbs > 2 * qhimark)) { > Do you know why we want double "qhimark" threshold? It is not only this > place, there are several. I am asking because it is not expected by the > user. I am following the qhimark conventions in existing code. However qhimark does not mean that your callbacks cannot exceed these many or something, it is not a hard limit on queued callbacks. qhimark (And Paul can correct me) was introduced to reduce the number of callbacks after which RCU will not limit execution of callbacks to a batch of them. That has nothing to do with limiting the maximum number of callbacks, per-se. However, its usage certainly seems to have grown since that introduction. Maybe you are confusing it with blimit: #define DEFAULT_RCU_QHIMARK 10000 // If this many pending, ignore blimit. static long qhimark = DEFAULT_RCU_QHIMARK; #define DEFAULT_RCU_QLOMARK 100 // Once only this many pending, use blimit. static long qlowmark = DEFAULT_RCU_QLOMARK; thanks, - Joel