Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2640552pxb; Tue, 9 Mar 2021 07:27:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJw9Ksx41MlAOw17kP1yi882UBjqG8qIJpc9yakZuN2WRLPAnUML0NWatKan1w9KCGwE3bgs X-Received: by 2002:a17:906:94ca:: with SMTP id d10mr20590555ejy.107.1615303679557; Tue, 09 Mar 2021 07:27:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615303679; cv=none; d=google.com; s=arc-20160816; b=iuwDzUtu6IjSqQdLrOe/98u11Jite16XpnZ8h5Hbo83lvdZGv8w1Rsob6Mf+q5p+XC U/9bZUWsFXQKVfw2OchtmdFAqMob38qlpndmb+BGgeUHj1nDamSwfZuXYNFim5h5igIv RrW8FJmNs3Bmw7OCwXHGvhpAgwUbc9cKxeqgnpofoRNdsHXPvE/JkcFAoZ9DoE5/igoa oSNhhP08ye8/C6yefExLBksPQKyGIzL2pYv+p3OqMnpK0qtxf3V0cQHu3x3OJEffNgu8 0mnN1wcFUYKNVHbooLVaT3EsKkpptgCNPKu9mS1lljwslyEennJS0nWEW+KqXuaTUx3B tjYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=FcWJQbKY0rf47Yiz10+9MvbIFscPlj+AO0gFdoT6pW8=; b=sIcdd6z6g/LqHp7+KWtqRLbLSLhFnDm+bS39yaAbsQy8LV7Sgo5btfguYYYB/2ogrU eZWb3TuqEA2dDWV32HETLICe21F+aHk1JkjvaELqzCkopZIhrRMujyK3CsTTKs6UYKJd zRg7P15ZoHUf2frN0G4S8w1yVK029rQ3Yd+lJBbThYYXlY5TfLAcLyfmnpuRACSb2b2u 1NQeqXZGW6dPwC/gK34Nwo2sIL8XptftcftIypkTXULPWzoAxKv7wJzr5g8PMMWDJzM/ VBZ70j3ahvCJ+bG7lc2EhtwtdL2lkNRSd+ZukFGaS3EU3cE9YQUGcKNfXAD2vEsHEaRZ 8bkA== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gv19si8938731ejc.109.2021.03.09.07.27.36; Tue, 09 Mar 2021 07:27:59 -0800 (PST) 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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232021AbhCIPZZ (ORCPT + 99 others); Tue, 9 Mar 2021 10:25:25 -0500 Received: from out30-130.freemail.mail.aliyun.com ([115.124.30.130]:37913 "EHLO out30-130.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231909AbhCIPZS (ORCPT ); Tue, 9 Mar 2021 10:25:18 -0500 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R411e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04394;MF=xlpang@linux.alibaba.com;NM=1;PH=DS;RN=14;SR=0;TI=SMTPD_---0UR9HgFO_1615303514; Received: from localhost(mailfrom:xlpang@linux.alibaba.com fp:SMTPD_---0UR9HgFO_1615303514) by smtp.aliyun-inc.com(127.0.0.1); Tue, 09 Mar 2021 23:25:14 +0800 From: Xunlei Pang To: Christoph Lameter , Pekka Enberg , Vlastimil Babka , Roman Gushchin , Konstantin Khlebnikov , David Rientjes , Matthew Wilcox , Shu Ming , Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Wen Yang , James Wang , Xunlei Pang Subject: [PATCH v3 3/4] percpu: Export per_cpu_sum() Date: Tue, 9 Mar 2021 23:25:11 +0800 Message-Id: <1615303512-35058-4-git-send-email-xlpang@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1615303512-35058-1-git-send-email-xlpang@linux.alibaba.com> References: <1615303512-35058-1-git-send-email-xlpang@linux.alibaba.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org per_cpu_sum() is useful, and deserves to be exported. Tested-by: James Wang Signed-off-by: Xunlei Pang --- include/linux/percpu-defs.h | 10 ++++++++++ kernel/locking/percpu-rwsem.c | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/linux/percpu-defs.h b/include/linux/percpu-defs.h index dff7040..0e71b68 100644 --- a/include/linux/percpu-defs.h +++ b/include/linux/percpu-defs.h @@ -220,6 +220,16 @@ (void)__vpp_verify; \ } while (0) +#define per_cpu_sum(var) \ +({ \ + typeof(var) __sum = 0; \ + int cpu; \ + compiletime_assert_atomic_type(__sum); \ + for_each_possible_cpu(cpu) \ + __sum += per_cpu(var, cpu); \ + __sum; \ +}) + #ifdef CONFIG_SMP /* diff --git a/kernel/locking/percpu-rwsem.c b/kernel/locking/percpu-rwsem.c index 70a32a5..0980e51 100644 --- a/kernel/locking/percpu-rwsem.c +++ b/kernel/locking/percpu-rwsem.c @@ -178,16 +178,6 @@ bool __percpu_down_read(struct percpu_rw_semaphore *sem, bool try) } EXPORT_SYMBOL_GPL(__percpu_down_read); -#define per_cpu_sum(var) \ -({ \ - typeof(var) __sum = 0; \ - int cpu; \ - compiletime_assert_atomic_type(__sum); \ - for_each_possible_cpu(cpu) \ - __sum += per_cpu(var, cpu); \ - __sum; \ -}) - /* * Return true if the modular sum of the sem->read_count per-CPU variable is * zero. If this sum is zero, then it is stable due to the fact that if any -- 1.8.3.1