Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp2972908pxb; Tue, 12 Jan 2021 03:16:10 -0800 (PST) X-Google-Smtp-Source: ABdhPJxCFvLtfgLLsuwgtndNq7xbQLk8dZX34+i505LpJIohCjLPmFdJAmwMR2KZrv2AtQNZVk9F X-Received: by 2002:a17:906:2612:: with SMTP id h18mr2833113ejc.469.1610450170369; Tue, 12 Jan 2021 03:16:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610450170; cv=none; d=google.com; s=arc-20160816; b=EU4BsCb9xQ4kc7tmvaqENvL2xHzgaa9DKELfx71/w4b0KQ8ScK44fqHioe6UbmI4Zr N/sXxvIirpLdvtSOcxfwvZyzWX0VeLd9AqOuKPzdkA0jOjjb+PddUxOt4ccl8Bw4wvp/ yt0NGaMHUCZwmJwEyHLScDYkxYn+XkLjplN1G2KwSCm5m53j/Xg9LkS5sEYTwdmU5hLE NqVNqHWQqCi5j0qxu/ITngZVfy3Eo/ZzKtr6xqcIvSjMAxuLCyBE/eaZXEpcgukkS3Te u/XjHodx6ldyWP8a4pq1NhJGLhN2gPIbocxu6ltRZJK/i6exxdeG6kyC1sS9KXD/h5pk 2ncg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=ubSy8FA8Cm0Wvh4KGL5pEI5FTj3nDO3yFAipNoj+fNY=; b=JkV8mF0yBJUzOh9ESITZpS/ABPjQ3Nc/80YyjTdxqIQQRHG6Gy8057SfbOtBt38D+m hpKn2AG2pG1wQmp2r6CsmxAFh77GKkEzamDdRLbmTB3OPsL3rBV0hF5h1NweaGGSz75r 6yJXwEUyHoEwkajsRCtleD6YMcWc1eBx4uchWS2EplpX4VqmuNZJePd/gY5jBlRT6a6H D7RevMUvooZ/P0c0va8IyN0cqvnkyTzJOJl0ioKDYfRsQqTvIglNDXRaqyKNdYYSZUf8 YBjenbaId8fiSQxJPzLkxFwC8RM4YO/4S1NesGpESCP7UZFYs97wgZntS9+21c/H0cL6 OZIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=XCr50NqX; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id de20si1137804edb.171.2021.01.12.03.15.46; Tue, 12 Jan 2021 03:16:10 -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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=XCr50NqX; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730272AbhALEd4 (ORCPT + 99 others); Mon, 11 Jan 2021 23:33:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730216AbhALEd4 (ORCPT ); Mon, 11 Jan 2021 23:33:56 -0500 Received: from mail-io1-xd2d.google.com (mail-io1-xd2d.google.com [IPv6:2607:f8b0:4864:20::d2d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2E69C061575 for ; Mon, 11 Jan 2021 20:33:15 -0800 (PST) Received: by mail-io1-xd2d.google.com with SMTP id q137so1362351iod.9 for ; Mon, 11 Jan 2021 20:33:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ubSy8FA8Cm0Wvh4KGL5pEI5FTj3nDO3yFAipNoj+fNY=; b=XCr50NqX0ZCIUYYQieDJ9kF/pIaCU8NUvD+e5I4IhTJpk0+Zy9Db8iDd0AnE1T3uxR Cy7PWlpVzJzhB9Llz8SWfG8SE4RSAR3S9ShaCexgEdwpPYfa2r/xDUOlxbIbdk9gh4Re k9ZjxUAQio45raDDX9zXMMIjOpR+Ehtg8Cuu9G2aXUtzyuqOi6isGHJp4yNdrQdlwySl 7tFmM1YIURKHyzzSYsC/hY4dbar1dShYkF6YjViO5gEAtZS3PY+HXCjpgFwFqnlJkCQ/ sJ73YmMd9EHZnpNt8H5TYgXGT7t1l2l1el3PoAoK2L3+JdRq8FD2V5xn9URJltpW7fVO lk8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ubSy8FA8Cm0Wvh4KGL5pEI5FTj3nDO3yFAipNoj+fNY=; b=GxEH+8aWUQGZauM4x9LgmPnAoU+TmhEr/ImR8oZvbNuudF7mtaMfaiMTDJX5iBqRSx besQjU2RN2yRdpkiDWZ7wSs3lQrB8c6AxUWFOXJhprA3gCAuwnedkcC4stSZgTLRGx7x /jm9UjfnbH6uuHF+pMN9+03RLv4kEh6FC2SKbtg6drAL45qEavRWjSMmS08eSIG+WcAs qgGQhryybgpnb3ZsU82oneSpB1CcL6LXv3xEZtAhgMfSsl2NMWu97jmNzzV7vMNgn1g5 izNZj/t6VYDlS241KSJ952asl3lh0KNccR42Sz45oDTU1sDrU94UuYo61wjys+mPDL37 65aA== X-Gm-Message-State: AOAM531Cjokds5cEp6XwAid4N/9RyWSQKhdxtypRKEU56dnmKwf/jEyF flvcuxA5+VjblUbmVILghEAfIa7WZWqFHG4p0/k= X-Received: by 2002:a5d:8c85:: with SMTP id g5mr1894913ion.154.1610425994991; Mon, 11 Jan 2021 20:33:14 -0800 (PST) MIME-Version: 1.0 References: <20201226025117.2770-1-jiangshanlai@gmail.com> <87o8hv7pnd.fsf@nanos.tec.linutronix.de> In-Reply-To: From: Lai Jiangshan Date: Tue, 12 Jan 2021 12:33:03 +0800 Message-ID: Subject: Re: [PATCH -tip V3 0/8] workqueue: break affinity initiatively To: Peter Zijlstra Cc: Valentin Schneider , Thomas Gleixner , LKML , Qian Cai , Vincent Donnefort , Dexuan Cui , Lai Jiangshan , Paul McKenney , Vincent Guittot , Steven Rostedt , Jens Axboe Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > Well yes, but afaict the workqueue stuff hasn't been settled yet, and > the rcutorture patch Paul did was just plain racy and who knows what > other daft kthread users are out there. That and we're at -rc3. I just send the V4 patchset for the workqueue. Please take a look. > @@ -1861,6 +1861,8 @@ static void worker_attach_to_pool(struct worker *worker, > */ > if (pool->flags & POOL_DISASSOCIATED) > worker->flags |= WORKER_UNBOUND; > + else > + kthread_set_per_cpu(worker->task, true); I think kthread_set_per_cpu(worker->task, false) is also needed for worker_detach_from_pool() or at least rescuer_thread() who doesn't go to die after detached from the pool. > I thought only pcpu pools would get the POOL_DISASSOCIATED flag on > offline, but it seems unbound pools also get it at init time. Did I get > that right? You are right. The POOL_DISASSOCIATED flag indicates whether the pool is concurrency management or not (negative way, POOL_DISASSOCIATED means "not concurrency management"). So it should be applied for all unbound pools. When !POOL_DISASSOCIATED means it is a percpu pool, and the pool->cpu is online and the offline callback has not been called yet even the pool->cpu is going to be offline. So !POOL_DISASSOCIATED is used a lot in the code.