Received: by 2002:a05:6358:489b:b0:bb:da1:e618 with SMTP id x27csp6091626rwn; Mon, 12 Sep 2022 21:14:25 -0700 (PDT) X-Google-Smtp-Source: AA6agR5Rmg91inv5QtyNkWR72UAJI4uVYeREqrGOqbcZ+udCinSjC4m8Xsi2jksnD7crd5TnMpfC X-Received: by 2002:a63:cc4a:0:b0:439:1c48:2fed with SMTP id q10-20020a63cc4a000000b004391c482fedmr5016813pgi.618.1663042464944; Mon, 12 Sep 2022 21:14:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663042464; cv=none; d=google.com; s=arc-20160816; b=V129LpdX1mH1YuRGfOkM0RrO0x2Z+KmFXac+gTTSbVfIOzm1f9g6xTyyivCaOl3vt6 S5GXIT8UAJACeOd9wm9wzZtm95MvUKKKfdQgGGx2mBYRhtDE9x+HHdmhgTeq3XtGw5Mo ji06I4Ii5IMTVx/IHwajicWXSzH6CWrtDIXTJXdcwalmmikApzSY2Txo/x402DfZO/P1 vSQG1jjD2xHhOmgB/pNZ5dFaTAoADHh0aqjCg2J+sa57wBawh11HMR2q5YgcZP9YrqU4 T9irfIwesNxBgQSuSCJd8bEuEnudWVHfwKq7TZqYKE3S/Vsb4hVDmwgAeqf94pAwUCP9 dGqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=AyKWxi+wIN3afVZU330dMiXPTOiPNa8SuaDVUMZhvac=; b=p8owqkZ6JGwJ2XfTQCOeqPmZrT8a2wJk8Pv+FhgChhgr7to4g5D+rjLnCjddtNJ4bH p5C7mK56bAS4U4BTaVnlJXz2G5kJ0GQOZ/s3hbzI/ENoPk2wqcypnIQ2F8I97m+Fy122 vYH43Zvg+MNWawglJ/A8SigKRlAVPLP+24eL2sCOGfo3tiLkFRGnb3F7yTs8EM/qA5Yh FmIlpApNygMIumoz7kfJZIB65IuBPvY//Yi6j0yu8Vf36cF7rLpeesHpOvZSjNTY+9nt xaSPAxeeSQjgWSzT0C0olvsZivCAeJDq/gRClEkgN8a6dvmhiW1i3wjmOr4+i1WcAmsW 6PiA== 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:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g8-20020a170902740800b001768876fc87si10654835pll.362.2022.09.12.21.14.12; Mon, 12 Sep 2022 21:14:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229809AbiIMDem (ORCPT + 99 others); Mon, 12 Sep 2022 23:34:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52262 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229591AbiIMDei (ORCPT ); Mon, 12 Sep 2022 23:34:38 -0400 Received: from mail.nfschina.com (mail.nfschina.com [124.16.136.209]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id EE3E8BF58 for ; Mon, 12 Sep 2022 20:34:36 -0700 (PDT) Received: from localhost (unknown [127.0.0.1]) by mail.nfschina.com (Postfix) with ESMTP id 839451E80D78; Tue, 13 Sep 2022 11:32:29 +0800 (CST) X-Virus-Scanned: amavisd-new at test.com Received: from mail.nfschina.com ([127.0.0.1]) by localhost (mail.nfschina.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Vl7-LAmOpmyU; Tue, 13 Sep 2022 11:32:26 +0800 (CST) Received: from localhost.localdomain (unknown [219.141.250.2]) (Authenticated sender: kunyu@nfschina.com) by mail.nfschina.com (Postfix) with ESMTPA id 9A2331E80D74; Tue, 13 Sep 2022 11:32:23 +0800 (CST) From: Li kunyu To: fenghua.yu@intel.com, reinette.chatre@intel.com, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Li kunyu Subject: [PATCH] x86: resctrl: call kthread_create_on_node to change to kthread_run_on_cpu Date: Tue, 13 Sep 2022 11:34:08 +0800 Message-Id: <20220913033408.258088-1-kunyu@nfschina.com> X-Mailer: git-send-email 2.18.2 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham 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 After calling the kthread_create_on_node function, you also need to call kthread_bind to bind to the cpu, and then call wake_up_process to wake up the thread. If the kthread_run_on_cpu function is called, it does not need to call kthread_bind and wake_up_process, it has already executed these functions internally. Signed-off-by: Li kunyu --- arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 28 +++++++---------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c index db813f819ad6..71341e298c9e 100644 --- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c +++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c @@ -1184,20 +1184,14 @@ static int pseudo_lock_measure_cycles(struct rdtgroup *rdtgrp, int sel) plr->cpu = cpu; if (sel == 1) - thread = kthread_create_on_node(measure_cycles_lat_fn, plr, - cpu_to_node(cpu), - "pseudo_lock_measure/%u", - cpu); + thread = kthread_run_on_cpu(measure_cycles_lat_fn, plr, cpu, + "pseudo_lock_measure/%u"); else if (sel == 2) - thread = kthread_create_on_node(measure_l2_residency, plr, - cpu_to_node(cpu), - "pseudo_lock_measure/%u", - cpu); + thread = kthread_run_on_cpu(measure_l2_residency, plr, cpu, + "pseudo_lock_measure/%u"); else if (sel == 3) - thread = kthread_create_on_node(measure_l3_residency, plr, - cpu_to_node(cpu), - "pseudo_lock_measure/%u", - cpu); + thread = kthread_run_on_cpu(measure_l3_residency, plr, cpu, + "pseudo_lock_measure/%u"); else goto out; @@ -1205,8 +1199,6 @@ static int pseudo_lock_measure_cycles(struct rdtgroup *rdtgrp, int sel) ret = PTR_ERR(thread); goto out; } - kthread_bind(thread, cpu); - wake_up_process(thread); ret = wait_event_interruptible(plr->lock_thread_wq, plr->thread_done == 1); @@ -1294,18 +1286,14 @@ int rdtgroup_pseudo_lock_create(struct rdtgroup *rdtgrp) plr->thread_done = 0; - thread = kthread_create_on_node(pseudo_lock_fn, rdtgrp, - cpu_to_node(plr->cpu), - "pseudo_lock/%u", plr->cpu); + thread = kthread_run_on_cpu(pseudo_lock_fn, rdtgrp, plr->cpu, + "pseudo_lock/%u"); if (IS_ERR(thread)) { ret = PTR_ERR(thread); rdt_last_cmd_printf("Locking thread returned error %d\n", ret); goto out_cstates; } - kthread_bind(thread, plr->cpu); - wake_up_process(thread); - ret = wait_event_interruptible(plr->lock_thread_wq, plr->thread_done == 1); if (ret < 0) { -- 2.18.2