Received: by 2002:ac2:48a3:0:0:0:0:0 with SMTP id u3csp25778lfg; Tue, 8 Mar 2022 18:25:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJzQ/Up8nDXPCiMWkV9dB4vuKLGr9/Gdzk2nxfeQyxomji0gpvz/ARk9ZrSU1dA2Y52vZ8wc X-Received: by 2002:a17:90b:3142:b0:1bf:ad38:1d79 with SMTP id ip2-20020a17090b314200b001bfad381d79mr861422pjb.154.1646792750231; Tue, 08 Mar 2022 18:25:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646792750; cv=none; d=google.com; s=arc-20160816; b=mXh3HcdeHi9MqKR+4626uIhcZi9ddSeklmVFqL5XD0PMZM//1VWTWFEiBe+T53WeVy iiBI3Chh6yQw0eu9pBkqn69xffHRQ2gU6ATSrzKmUJve1GvQGu7G+opFvl56YXZW5GFa nwLJTO1HKJS2X1DWuEmboQZm8a6kBtHttwFWsTyFrPIwRtSSanT0v80uQyHKYkQg//Gs 930frU2RSFyWWnGGqZOvUzuiMAc/6oN9wnLS3cMwPe8MZd8lWFmB4xjN1rJUrbBegMWo WRsUJxZpLoDPtDNygSiAXeKHshyvFDPw5qmAN+X3df1v/r8xfvAQLbA49esU0/WvxJZ9 vP6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=5EjU4IdtLZJamkjHgcPd0z4Qqec8Idstt5juoxChStQ=; b=gfdflvbAJQmGN6RfyIqCycrZE2Lh4NZ08IRDEqSH+lCX9qfQIH01p1oMDNNMrys07n 8eLJRM5NzzD+n27faCFUK+I9H4UI2BTm+sLGCvgl3umONDPUUVGJqdyMHH3WMr8jgLap UYnKVUnnhgqmgPI68JMS1KLLRNMO/pwmVKuay/qPXybyXGZX4XOGm/pwcDEaSHqqPz9o C+voYs9r/QVn2135G6qn9k63+rq+8TnPfnMe3KouKBVMAEgBZC/DYmYfXUGjr8wwWNAj yH4LoH5ZrGqAO8Qo49N3ZMbktrm3aGklEQJBY2z1GejaRep/O3zgtpnHoUT8PNw2fkCW n/fA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id j184-20020a638bc1000000b003800e48809csi603455pge.313.2022.03.08.18.25.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 18:25:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2F4BB9D06A; Tue, 8 Mar 2022 17:30:09 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230421AbiCIBa5 (ORCPT + 99 others); Tue, 8 Mar 2022 20:30:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53874 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230034AbiCIBat (ORCPT ); Tue, 8 Mar 2022 20:30:49 -0500 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 21B8F4DF75; Tue, 8 Mar 2022 17:29:50 -0800 (PST) Received: from kwepemi100011.china.huawei.com (unknown [172.30.72.55]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4KCvd74zF7zbcCQ; Wed, 9 Mar 2022 09:24:59 +0800 (CST) Received: from kwepemm600017.china.huawei.com (7.193.23.234) by kwepemi100011.china.huawei.com (7.221.188.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Wed, 9 Mar 2022 09:29:48 +0800 Received: from localhost.localdomain (10.175.112.125) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Wed, 9 Mar 2022 09:29:47 +0800 From: Peng Liu To: , , , , , , , , , CC: , Subject: [PATCH 3/3] kfence: test: try to avoid test_gfpzero trigger rcu_stall Date: Wed, 9 Mar 2022 01:47:05 +0000 Message-ID: <20220309014705.1265861-4-liupeng256@huawei.com> X-Mailer: git-send-email 2.18.0.huawei.25 In-Reply-To: <20220309014705.1265861-1-liupeng256@huawei.com> References: <20220309014705.1265861-1-liupeng256@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.175.112.125] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To kwepemm600017.china.huawei.com (7.193.23.234) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 When CONFIG_KFENCE_DYNAMIC_OBJECTS is set to a big number, kfence kunit-test-case test_gfpzero will eat up nearly all the CPU's resources and rcu_stall is reported as the following log which is cut from a physical server. rcu: INFO: rcu_sched self-detected stall on CPU rcu: 68-....: (14422 ticks this GP) idle=6ce/1/0x4000000000000002 softirq=592/592 fqs=7500 (t=15004 jiffies g=10677 q=20019) Task dump for CPU 68: task:kunit_try_catch state:R running task stack: 0 pid: 9728 ppid: 2 flags:0x0000020a Call trace: dump_backtrace+0x0/0x1e4 show_stack+0x20/0x2c sched_show_task+0x148/0x170 ... rcu_sched_clock_irq+0x70/0x180 update_process_times+0x68/0xb0 tick_sched_handle+0x38/0x74 ... gic_handle_irq+0x78/0x2c0 el1_irq+0xb8/0x140 kfree+0xd8/0x53c test_alloc+0x264/0x310 [kfence_test] test_gfpzero+0xf4/0x840 [kfence_test] kunit_try_run_case+0x48/0x20c kunit_generic_run_threadfn_adapter+0x28/0x34 kthread+0x108/0x13c ret_from_fork+0x10/0x18 To avoid rcu_stall and unacceptable latency, a schedule point is added to test_gfpzero. Signed-off-by: Peng Liu --- mm/kfence/kfence_test.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/kfence/kfence_test.c b/mm/kfence/kfence_test.c index caed6b4eba94..1b50f70a4c0f 100644 --- a/mm/kfence/kfence_test.c +++ b/mm/kfence/kfence_test.c @@ -627,6 +627,7 @@ static void test_gfpzero(struct kunit *test) kunit_warn(test, "giving up ... cannot get same object back\n"); return; } + cond_resched(); } for (i = 0; i < size; i++) -- 2.18.0.huawei.25