Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp90220imm; Wed, 29 Aug 2018 14:51:24 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYaSRCobIuYoWqI7T+/awxLgxlyz3bbdiObDAbC18zBZdnyg+gpQuhqfxBHLIsizNr+Plzp X-Received: by 2002:a63:6604:: with SMTP id a4-v6mr7108226pgc.404.1535579483969; Wed, 29 Aug 2018 14:51:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535579483; cv=none; d=google.com; s=arc-20160816; b=QA/xbV7T5AMGRWKE1763ikkUQeK3Z2ysfY0UA1StYvtanb9J1tc0RtINPg1kl4VbqB BC7GEGqdoNQdwxBq4phKR0vKZY3F4zq7rthf8DUrohr5aFRLCTymBSP8vPCZHt1n8JwD bVPtN9abOm+6njFncuKfPzQN6UpMkksJjj12GVEWCEbV8I+vtEaNonoaQjdMjVCU+5oq 9CVORbZ0CUl9g0N420u1zm4eiHTL8k7I1xy0bOy0SjZQyXeorxw1+gOHexrhHNTVZ9Oe yPkZfEOP0jmc8oeQV6q/bLh+K6S0FZQ2sEC2zIVYoJfzrsVwBIe75EC3kUXCuj1zjL0H YdwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:references:in-reply-to:date :subject:cc:to:from:arc-authentication-results; bh=IDENeztuJbMR51mFKi2sRwfEGDCXJEf1ojk4sBF+WmE=; b=Rg/pVgvQNhDCI1c019YSyMwK/Jg6RLnBvhfFy2XjBn8sxBDRx+8sD34U698+QWobvf L1alv9ZfSuRLo5x34dstsd0OJKfFkBJHkCmJEHaGyp5qllzxO/aJqi2VQPg7tz84zeVg X7fRS2dJo1OgRk/JU6c3CXlHKup6r1q8Yz5TmFGoaFaWvBb3ias11Ao6d1fJg8EMUJbI PAH0o2S4u77CpY8RL3tetcAnkIEZtmKTnRydtC9ve6r83uXd6W5X7fraVJ7S6vloH82Z cgdJLpa4vcxAq1n2whQb4OsVDMZ8jRULJANwsExAHEhQVmr3vNXQ+uvryqeq2vc/c/0M bv8g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f5-v6si5144312plf.411.2018.08.29.14.51.09; Wed, 29 Aug 2018 14:51:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727701AbeH3BsF (ORCPT + 99 others); Wed, 29 Aug 2018 21:48:05 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:46350 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727280AbeH3Bqt (ORCPT ); Wed, 29 Aug 2018 21:46:49 -0400 Received: from pps.filterd (m0098416.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w7TLcq3U105578 for ; Wed, 29 Aug 2018 17:47:57 -0400 Received: from e11.ny.us.ibm.com (e11.ny.us.ibm.com [129.33.205.201]) by mx0b-001b2d01.pphosted.com with ESMTP id 2m62u3hv9k-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 29 Aug 2018 17:47:57 -0400 Received: from localhost by e11.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 29 Aug 2018 17:47:56 -0400 Received: from b01cxnp23033.gho.pok.ibm.com (9.57.198.28) by e11.ny.us.ibm.com (146.89.104.198) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Wed, 29 Aug 2018 17:47:52 -0400 Received: from b01ledav003.gho.pok.ibm.com (b01ledav003.gho.pok.ibm.com [9.57.199.108]) by b01cxnp23033.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w7TLlpUV8978578 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 29 Aug 2018 21:47:51 GMT Received: from b01ledav003.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CC240B2075; Wed, 29 Aug 2018 17:46:47 -0400 (EDT) Received: from b01ledav003.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A52D2B206E; Wed, 29 Aug 2018 17:46:47 -0400 (EDT) Received: from paulmck-ThinkPad-W541 (unknown [9.70.82.159]) by b01ledav003.gho.pok.ibm.com (Postfix) with ESMTP; Wed, 29 Aug 2018 17:46:47 -0400 (EDT) Received: by paulmck-ThinkPad-W541 (Postfix, from userid 1000) id D36E616C91D5; Wed, 29 Aug 2018 14:47:51 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org Cc: mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, fweisbec@gmail.com, oleg@redhat.com, joel@joelfernandes.org, "Paul E. McKenney" Subject: [PATCH tip/core/rcu 14/17] rcutorture: Adjust number of reader kthreads per CPU-hotplug operations Date: Wed, 29 Aug 2018 14:47:47 -0700 X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180829214722.GA23411@linux.vnet.ibm.com> References: <20180829214722.GA23411@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18082921-2213-0000-0000-000002E504A6 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00009636; HX=3.00000242; KW=3.00000007; PH=3.00000004; SC=3.00000266; SDB=6.01080727; UDB=6.00557487; IPR=6.00860712; MB=3.00023001; MTD=3.00000008; XFM=3.00000015; UTC=2018-08-29 21:47:56 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18082921-2214-0000-0000-00005B601550 Message-Id: <20180829214750.26972-14-paulmck@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-08-29_06:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1808290211 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently, rcutorture provisions rcu_torture_reader() kthreads based on the initial number of CPUs. This can be problematic when CPU hotplug is enabled, as a system with a very large number of CPUs will provision a very large number of rcu_torture_reader() kthreads. All of these kthreads will continue running even if the CPU-hotplug operations result in only one remaining online CPU. This can result in all sorts of strange artifacts due simply to massive overload. This commit therefore causes the rcu_torture_reader() kthreads to start blocking as the number of online CPUs decreases. This is accomplished by numbering these kthreads, and having each check to make sure that the number of online CPUs is at least as large as its assigned number. Signed-off-by: Paul E. McKenney --- kernel/rcu/rcutorture.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index ac487ea8d245..50015b78a43f 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -1400,6 +1400,8 @@ static int rcu_torture_reader(void *arg) { unsigned long lastsleep = jiffies; + long myid = (long)arg; + int mynumonline = myid; DEFINE_TORTURE_RANDOM(rand); struct timer_list t; @@ -1419,6 +1421,8 @@ rcu_torture_reader(void *arg) schedule_timeout_interruptible(1); lastsleep = jiffies + 10; } + while (num_online_cpus() < mynumonline && !torture_must_stop()) + schedule_timeout_interruptible(HZ / 5); stutter_wait("rcu_torture_reader"); } while (!torture_must_stop()); if (irqreader && cur_ops->irq_capable) { @@ -2063,7 +2067,7 @@ static void rcu_test_debug_objects(void) static int __init rcu_torture_init(void) { - int i; + long i; int cpu; int firsterr = 0; static struct rcu_torture_ops *torture_ops[] = { @@ -2169,7 +2173,7 @@ rcu_torture_init(void) goto unwind; } for (i = 0; i < nrealreaders; i++) { - firsterr = torture_create_kthread(rcu_torture_reader, NULL, + firsterr = torture_create_kthread(rcu_torture_reader, (void *)i, reader_tasks[i]); if (firsterr) goto unwind; -- 2.17.1