From patchwork Tue Nov 28 08:00:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uladzislau Rezki X-Patchwork-Id: 13470579 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Zw6ht3lu" Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E90398; Tue, 28 Nov 2023 00:00:38 -0800 (PST) Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-507bd19eac8so7027545e87.0; Tue, 28 Nov 2023 00:00:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701158436; x=1701763236; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=sXgkabWPWWrKEjUt/Yjs0Jzo4D39WGJcrPl/SCiu+wc=; b=Zw6ht3lus9WVxj4EReCZmfDJqDM4ooR9PKj7RnPPBmWPHgooU8vWxpfJU9pEsnjnSb zcAX319/wVETTECjWlp4/yR6GBkwoF/vPkGNep6BRVy+0awCCtVbr0GiLtu/SigDUKvB 1oQ2uAQskQFESmkXUZ02x6cTZ1mLRxC8H35gMM5LfOiTOk2x3ThNAEnYpX3mjaD+XpDQ 3FJhl2X/Ga9Z64ONSF/TNATX+qqj/19mtLyASWjvxJlTAt/yZzNbLhMguDnVJgyTLujx MZUt11p1nSuVgNpugOJUyfodKeQB7qPj4qynRp36Kcw+qbW5tTbkO6L6KQyXK7GZ2kJE S36A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701158436; x=1701763236; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=sXgkabWPWWrKEjUt/Yjs0Jzo4D39WGJcrPl/SCiu+wc=; b=n63toIpkWwNc0QadVMd88oLXYoR6/tmldWv+czfifj2WqHCUcsxdlQNrC7aOEMkgQw mW9J7Ijxkat1sPInilLCE+useYSdeFNW+I+sRqZg0aKisNOcoCgc1EmFa3yLaSRIlV7T O1GKHC88D3Yl1iFkl6X6EK+Ol4j2+HN6ri3UKtLwjxBua7ijNUwS6YcgNrl4FTaohbtV dZSHe3nNLhFVCeLvcssFF6fx41M/4x6VNKTrl4CZ/wnA/UF1u4ltdTc7tT/sXqiBXsNw xpJxvIY/6O/Hm3ugOx+soropJZPMo/qDBNo7e9QfnFpAE0H8GMk9TdJb1mYLXcY6bhJd tnPw== X-Gm-Message-State: AOJu0YwkZr5W8pEUCS0d+Fc06iIgK5AD5d4qW7fK7AhRXPcbVYmfC157 dX/ljUMe+5T5ksM1RnIse+4= X-Google-Smtp-Source: AGHT+IFPGqGXyxIsJsMGqCg5E9k06g+0nGsGq4x6FZaIx6u8EFCe6tESJcWwYAbvyBgGi4rwwvES4A== X-Received: by 2002:ac2:44b2:0:b0:50b:c027:70f with SMTP id c18-20020ac244b2000000b0050bc027070fmr7lfm.21.1701158435942; Tue, 28 Nov 2023 00:00:35 -0800 (PST) Received: from pc638.lan ([155.137.26.201]) by smtp.gmail.com with ESMTPSA id o16-20020ac24bd0000000b004fe202a5c7csm1765501lfq.135.2023.11.28.00.00.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Nov 2023 00:00:35 -0800 (PST) From: "Uladzislau Rezki (Sony)" To: "Paul E . McKenney" Cc: RCU , Neeraj upadhyay , Boqun Feng , Hillf Danton , Joel Fernandes , LKML , Uladzislau Rezki , Oleksiy Avramchenko , Frederic Weisbecker Subject: [PATCH v3 0/7] Reduce synchronize_rcu() latency(V3) Date: Tue, 28 Nov 2023 09:00:26 +0100 Message-Id: <20231128080033.288050-1-urezki@gmail.com> X-Mailer: git-send-email 2.39.2 Precedence: bulk X-Mailing-List: rcu@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This is V3. V2 -> V3: - use dummy wait node to eliminate cache misses during a full llist scan to obtain a tail node; - add CONFIG_RCU_SR_NORMAL_DEBUG_GP Kconfig for a GP incomplete debug; - move synchronize_rcu()'s main control data under the rcu_state struct; - add rcutree.rcu_normal_wake_from_gp parameter description to the kernel-parameters.txt file; - split functionality into several patches. V2: https://lore.kernel.org/all/20231030131254.488186-1-urezki@gmail.com/T/ V1: https://lore.kernel.org/lkml/20231025140915.590390-1-urezki@gmail.com/T/ Neeraj Upadhyay (1): rcu: Improve handling of synchronize_rcu() users Uladzislau Rezki (Sony) (6): rcu: Reduce synchronize_rcu() latency rcu: Add a trace event for synchronize_rcu_normal() doc: Add rcutree.rcu_normal_wake_from_gp to kernel-parameters.txt rcu: Support direct wake-up of synchronize_rcu() users rcu: Move sync related data to rcu_state structure rcu: Add CONFIG_RCU_SR_NORMAL_DEBUG_GP .../admin-guide/kernel-parameters.txt | 14 + include/trace/events/rcu.h | 27 ++ kernel/rcu/Kconfig.debug | 12 + kernel/rcu/tree.c | 354 +++++++++++++++++- kernel/rcu/tree.h | 19 + kernel/rcu/tree_exp.h | 2 +- 6 files changed, 426 insertions(+), 2 deletions(-)