Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp5368619pxu; Wed, 21 Oct 2020 23:40:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyEzgbT945d+SyCmILadBAeI1kMG/VtqyI+fYFcVqCwcCXsdLSG2NPrubjXhg/d+iMFstHb X-Received: by 2002:aa7:dcc2:: with SMTP id w2mr908106edu.121.1603348800669; Wed, 21 Oct 2020 23:40:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603348800; cv=none; d=google.com; s=arc-20160816; b=E64UMjF62Nq6nWHxWM6GBEjrmLDZIkR+LI1K26fAguloJ/KX6vBJnG4S7jQRLZtygw i0sFXLqyXUVMTUp4G/8HmUl9PwjjEmr396ZrSlb484fQMheTnRfiJI37Nh50XsBEd/wN iK8RCgTFXJ6i9B2r2xXH9iX0zf/mCNVsqGWgdlVvYCa+v9IFoAlvcVJ92x9micopwW1z ip6hngVA0EmsYPcyPTps/0UqIKZYIfMQalme6tJef+XypENzv/ZQNduOL0xhWyp35iDd ifHswkm3VycyUX1YKfrzWtlvHa88LaFUGM4b6TsPv2zn5Xfo0pwIduSaMVuuf9Yt7fDi kgBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=L9Kg/TgEEAwz+IelTGb09lowYE0dFmOxL25uAWCOofo=; b=HI9Rrj365OoVnwm+PxqvJ7YehqigiSBS5ksJe6P/HCz1Gk6Dx77gadFdm+DyUsLzo9 m++6e01VTNCVUdTa6fTyqlHiu/ZLyQNXz0HwHoVP1qWUxQzz17LPRdwCAZ1GPH5b3g3F nS+mxPnIbMMz5uRo2xspLJ+EtjEtXO8COlH2jvLpSwRKjFMMWfj+33+wFrqzWBMYoBEl khDJhzYJiCWOPQSaQx4x+pRfmSABykdL5SBk2VriHsLgq17VTYetMFpDQXUkI7pxL2/U KnbXAYPj6aeybPOvTuRuXwNjoXBsT+xePezzn8UEM/uUarecs4Tdv+jn9de0SgtrYDIn j4+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=enybzjH3; 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 k21si107351ejz.358.2020.10.21.23.39.38; Wed, 21 Oct 2020 23:40:00 -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=pass header.i=@joelfernandes.org header.s=google header.b=enybzjH3; 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 S2504674AbgJUTIT (ORCPT + 99 others); Wed, 21 Oct 2020 15:08:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2441200AbgJUTIS (ORCPT ); Wed, 21 Oct 2020 15:08:18 -0400 Received: from mail-qk1-x744.google.com (mail-qk1-x744.google.com [IPv6:2607:f8b0:4864:20::744]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B17AEC0613CE for ; Wed, 21 Oct 2020 12:08:18 -0700 (PDT) Received: by mail-qk1-x744.google.com with SMTP id q199so3121405qke.10 for ; Wed, 21 Oct 2020 12:08:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=L9Kg/TgEEAwz+IelTGb09lowYE0dFmOxL25uAWCOofo=; b=enybzjH3Yn2KZzVK3i9SK/mk2ALvQ4YHPbKyiNX+OsMXhTX/N/yLcUI8lDkw+RC6aR K7h7HVIZ2TPVX/I7OZI2OT+NqQDrB03Q0UyFwxtDr79sM9Z3Qcb8PReVmqrSN6AspHqF dYCo4ielmbhI0CNXG5R7Dt0+F1J5UmFFimNxo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=L9Kg/TgEEAwz+IelTGb09lowYE0dFmOxL25uAWCOofo=; b=mh7usmH6RcOtdeps/zTQkHU3X5OCUcNtoNEOIgIuGGVs92P4TrlLcBwVjbmgJN94kH BjvQOmM6+USylTjlzVbbDzYaCkt7Jxq/FBJ1SvfR1PnCNzxXWVO7G3UH8IlZtYUCsB3H mKaS9YatMbJEk7LeYP/YH3AOz3bUhIUegPYQ/NmswMz0u9dCjvCfgGCmd7WNH8+fIA9t 1lMF2IgdX7NZjVnSckBMVFqFZZoVb9t9oa4NHW4yDyc50bKLm4ZWdnt8stxX3nCQY5eA Yg5F2f78Xn+dGzR9vTbQY3Qcwr0itNYB5mN4FIREk1VP7XfbeyMlLyEzhotMXax4K5tQ 5jzg== X-Gm-Message-State: AOAM530GkxncJaZw3WwZKuhfHJp7j7tkPTktbI6MjpzudhebqbWKcVRt 20Jhgh40IgkdvwQJMpbmYM9fJ/YtQoo7/w== X-Received: by 2002:ae9:de82:: with SMTP id s124mr4662627qkf.379.1603307297364; Wed, 21 Oct 2020 12:08:17 -0700 (PDT) Received: from joelaf.cam.corp.google.com ([2620:15c:6:411:cad3:ffff:feb3:bd59]) by smtp.gmail.com with ESMTPSA id g11sm1913982qkl.30.2020.10.21.12.08.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Oct 2020 12:08:16 -0700 (PDT) From: "Joel Fernandes (Google)" To: linux-kernel@vger.kernel.org Cc: Joel Fernandes , Joel Fernandes , Josh Triplett , Lai Jiangshan , Marco Elver , Mathieu Desnoyers , "Paul E. McKenney" , rcu@vger.kernel.org, Steven Rostedt , "Uladzislau Rezki (Sony)" , fweisbec@gmail.com, neeraj.iitr10@gmail.com Subject: [PATCH v8 0/6] Add support for length of each segment in the segcblist Date: Wed, 21 Oct 2020 15:08:07 -0400 Message-Id: <20201021190813.3005054-1-joel@joelfernandes.org> X-Mailer: git-send-email 2.29.0.rc1.297.gfa9743e501-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Joel Fernandes This is required for several usecases identified. One of them being tracing how the segmented callback list changes. Tracing this has identified issues in RCU code in the past. >From Paul: Another use case is of course more accurately determining whether a given CPU's large pile of callbacks can be best served by making grace periods go faster, invoking callbacks more vigorously, or both. It should also be possible to simplify some of the callback handling a bit, given that some of the unnatural acts are due to there having been no per-batch counts. Revision history: v8: Small style changes, making the seglen as non-atomic since it is always under lock (Frederic). v7: Cleaned up memory barriers (thanks fweisbec@ for reviewing), made minor corrections per Neeraj (thanks). v6: Fixed TREE04, and restored older logic to ensure rcu_barrier works. v5: Various changes, bug fixes. Discovery of rcu_barrier issue. v4: Restructured rcu_do_batch() and segcblist merging to avoid issues. Fixed minor nit from Davidlohr. v1->v3: minor nits. (https://lore.kernel.org/lkml/20200719034210.2382053-1-joel@xxxxxxxxxxxxxxxxx/) Joel Fernandes (Google) (6): rcu/tree: Make rcu_do_batch count how many callbacks were executed rcu/segcblist: Add counters to segcblist datastructure rcu/trace: Add tracing for how segcb list changes rcu/segcblist: Remove useless rcupdate.h include rcu/tree: segcblist: Remove redundant smp_mb()s rcu/segcblist: Add additional comments to explain smp_mb() include/linux/rcu_segcblist.h | 1 + include/trace/events/rcu.h | 25 +++++ kernel/rcu/rcu_segcblist.c | 195 +++++++++++++++++++++++++--------- kernel/rcu/rcu_segcblist.h | 8 +- kernel/rcu/tree.c | 21 ++-- 5 files changed, 192 insertions(+), 58 deletions(-) -- 2.29.0.rc1.297.gfa9743e501-goog