Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp633611pxf; Thu, 8 Apr 2021 09:48:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzsTev2zFxPueo4j+8JXm/02F6t1h9l8YuQa2BiglBXSrOuV3+eiSvxoZCemw74nPmP1RiV X-Received: by 2002:a17:906:a155:: with SMTP id bu21mr11533323ejb.400.1617900518833; Thu, 08 Apr 2021 09:48:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617900518; cv=none; d=google.com; s=arc-20160816; b=Fn573vnOvyX1kVgM2K6olKgmEi9hBOsi0RKT5pkKpceg6shkxaDudr5YfN7l7jnT3k g4d0/z3BkE+JMRYoPVBY5nHTEqwXZp/GfWgpkZkrXwPShRAs1xtgxen/ScGcxUXgFfWE +7pU1A+bCBq1+5hw0qM8SPNtIv7pm73RImMCN9AlC80vEoIPnuJpFOxkfNH/ypODRtW4 Lnv4MGP6VKgqnYfykETY1a6WYrC3jZUIp/5gxo/nxc0iSCZIW5qSrwwEF9sHI+TXwrWF 2PAwD0lWAg+Ndv7b9DrlIVMM+3c+szzUFxF+TI2L3Yq3OJ1ZJeiza85cbzgyIsr61uen a46A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-disposition:mime-version:message-id :subject:cc:to:from:date:dkim-signature; bh=Gq/rdyGTyQ0u+Ooonn/Pvwu5OLrn0QqmtopJqPVCiv8=; b=pnvGxfdG0rED0qNebXel1SlVCNYACZuJVt+hN5aKvqIKZoiWJ2m2FobgqY1J/Vh9Rv qnYvYETLMK4aVcPbN0pBlVKDYtTEbSbWVqQ7WPpDmPfosiC2QyrBqAbFNNVrjcINvjqH KPngU/5hGayg6WWJx8fNCJYgJ/VXjU2MssWn+AURDOeUBjniqBmyc/wh8nsTkPg79ep3 +qDwvt3Zgl6DP4kaMvadH7bo9QIHjfEKVnmmXR0xhmARZ984XMtkv0bcLXTRXmqCG3qn D07PcN9t5rerPT0uCzKDyJpmasFnRnIucBM6rZ696F47wx/j+2P8Q+R1lf5lo8GsTG11 n4Mg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=desiato.20200630 header.b=d9fxvosm; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w10si5726735edq.101.2021.04.08.09.48.14; Thu, 08 Apr 2021 09:48:38 -0700 (PDT) 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; dkim=pass header.i=@infradead.org header.s=desiato.20200630 header.b=d9fxvosm; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232385AbhDHQrH (ORCPT + 99 others); Thu, 8 Apr 2021 12:47:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54352 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232381AbhDHQrH (ORCPT ); Thu, 8 Apr 2021 12:47:07 -0400 Received: from desiato.infradead.org (desiato.infradead.org [IPv6:2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7658C061760; Thu, 8 Apr 2021 09:46:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Type:MIME-Version:Message-ID: Subject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=Gq/rdyGTyQ0u+Ooonn/Pvwu5OLrn0QqmtopJqPVCiv8=; b=d9fxvosm0WowzxDsYdm1j+w9zp i44NxxJXj+1FRM2OhLp3rHqJbY67o1Z5V3di2LW19ZEgvJfzCYYdVMbzNgqNkwPs/QLzC3N4FGJNz PM/YDLES2vs3oIto0SSdfvvDdB/r5gfmS9qqCERY7BATxqVDegCPGr0AkzmsUuSem4JdWeOwIBCI+ DB1b9VHqLQCwzdD3Oy7JAUdjLD7jcps48ZUdv/t2515ENxgdE87WHDWyv0jz2U7A+XkCbd+DTzQXr WzLLuxF7H1+oQYhtMTxbw++Ycs3PtTCenYa10Sbudx4Faq3gAEAB2oMFO8Wa3E2j5WGrn+/N6YxaN iFgw0xtw==; Received: from j217100.upc-j.chello.nl ([24.132.217.100] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.94 #2 (Red Hat Linux)) id 1lUXnx-008g4r-2r; Thu, 08 Apr 2021 16:46:53 +0000 Received: from hirez.programming.kicks-ass.net (hirez.programming.kicks-ass.net [192.168.1.225]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (Client did not present a certificate) by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id 5C22E3001D0; Thu, 8 Apr 2021 18:46:30 +0200 (CEST) Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000) id 2624C2BE57BB8; Thu, 8 Apr 2021 11:44:50 +0200 (CEST) Date: Thu, 8 Apr 2021 11:44:50 +0200 From: Peter Zijlstra To: Jens Axboe Cc: asml.silence@gmail.com, io-uring@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] io-wq: Fix io_wq_worker_affinity() Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Do not include private headers and do not frob in internals. On top of that, while the previous code restores the affinity, it doesn't ensure the task actually moves there if it was running, leading to the fun situation that it can be observed running outside of its allowed mask for potentially significant time. Use the proper API instead. Signed-off-by: Peter Zijlstra (Intel) --- fs/io-wq.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) --- a/fs/io-wq.c +++ b/fs/io-wq.c @@ -17,7 +17,6 @@ #include #include -#include "../kernel/sched/sched.h" #include "io-wq.h" #define WORKER_IDLE_TIMEOUT (5 * HZ) @@ -1098,14 +1097,8 @@ void io_wq_put_and_exit(struct io_wq *wq static bool io_wq_worker_affinity(struct io_worker *worker, void *data) { - struct task_struct *task = worker->task; - struct rq_flags rf; - struct rq *rq; - - rq = task_rq_lock(task, &rf); - do_set_cpus_allowed(task, cpumask_of_node(worker->wqe->node)); - task->flags |= PF_NO_SETAFFINITY; - task_rq_unlock(rq, task, &rf); + set_cpus_allowed_ptr(worker->task, cpumask_of_node(worker->wqe->node)); + return false; }