Received: by 2002:a4f:b056:0:0:0:0:0 with SMTP id m22csp1385163ivi; Fri, 2 Oct 2020 08:53:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxljWo2TzIZOCeMyJYH33P9/oqff7wu5nch/JB42XwmdVgaJKewYAJp53cvKahIPJ7Qr2l0 X-Received: by 2002:a17:906:6409:: with SMTP id d9mr2912224ejm.344.1601654037949; Fri, 02 Oct 2020 08:53:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601654037; cv=none; d=google.com; s=arc-20160816; b=qVi4vIV9VHNL6P4ZOJybM1QZscTufYJxHIwMHC7sPOEdlz+YYH8J3olzsgWzFxjTrF mA8z4PYR+i6lgZG+u4T2OCzG5IvFwgSFWds7/EvyYQTqQFpexIottWeTYZ0BEtQhyPYG EvLRO0dmwStPLTBQFaKmEjOpc0mL/2MJG8OJ/lgn3vI3MhOrS2P1XM3EUogGv/CW2U9S wVsXqfw5B6qlLR+yetCFyjyNyinSreLYiW+e+Ufll3gGgMqTYSTR7SjdM3I7QfZTkVxu ctn7zY/a265ZtSevEqr+cM65ERRvtVOdimA7XYnKQx5inCYHGs1RRa+bjMYI2IHNUAlQ 5rQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=ShMcDvXeEkCRoyhlDuy9K5fYLcZiHQgXh+0uj+Ohgxg=; b=vWWoD5bhBnNJvp432lfiyrdXE9lZChC6Vp7hCm5O0WTmjfu5Sjtp8QLJZX+xcP3wU5 is3FjfdDYRt0cKHehBaRvHnh8rq7x9mxSy28eJFQPPXMMdBelsxyWxH0rbheRU7Qm/Uw hmLpaJVC/qd71Yi8FQEBdlahNWHSLfvRoy+ll94DtKEZy3dcEehRNJfz2roU6aEbYwoL qU95d95tEsikTp+Y778sAa7DTbFQXgIGxO/Jel+5bFhtnjDAeH+yvb+Jqix4yxwksraM HTYoSFl1PQ8bVOSraaFUf1fa8FPrHOdMfOZWaUmPVD4TFcErtcGUMxOWTk5wPFBXWGHH IgDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=xo6idNon; 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 dn25si1276486edb.268.2020.10.02.08.53.35; Fri, 02 Oct 2020 08:53:57 -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=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=xo6idNon; 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 S2387929AbgJBPw0 (ORCPT + 99 others); Fri, 2 Oct 2020 11:52:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39112 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726090AbgJBPwZ (ORCPT ); Fri, 2 Oct 2020 11:52:25 -0400 Received: from mail-io1-xd42.google.com (mail-io1-xd42.google.com [IPv6:2607:f8b0:4864:20::d42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E4EEDC0613D0 for ; Fri, 2 Oct 2020 08:52:25 -0700 (PDT) Received: by mail-io1-xd42.google.com with SMTP id k6so2057770ior.2 for ; Fri, 02 Oct 2020 08:52:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=ShMcDvXeEkCRoyhlDuy9K5fYLcZiHQgXh+0uj+Ohgxg=; b=xo6idNonJ34cYdZi7p0oAgxL/XqyAmr+dTYsxxvTIa9nraeuTbEQgGKJUwxRTkDl2G kwNKaKoNhk32fPhft8AXdx+huCB7jN9bGxKL2K3fOQb5S3eV7UBgfPgfR9x+MxEALe8t qeI9OfSf6EXLESTsF8oy2rG5j/t8IX1DohXieOo898zvNAbC1i9UyYMzqFFT7Kuca1th InW18uWhZx8LS6ps3u65Q95nN3nsiPs40JqgWJ2oMxxDFEjw30lbuTiotNn/IISicpFJ BGggnunjxKlKkswxFZDaZtf720oHEoHdIMxriAzeaVA8hisID9A0mCCKX9CA3hLYEzyK lllw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=ShMcDvXeEkCRoyhlDuy9K5fYLcZiHQgXh+0uj+Ohgxg=; b=NoAdXwoaK2sRFSwaeYpX9lavxDZJZHc2eyJCSe+0dX3ogtRvqHchg7L1lM2uzKslIk q9vjO+91Ui8B86OSCHqwHdTXoQGDD5iIRLFHCVaDxiUVVoFXoHDFSP6hl2k+0zZ1oIe8 +Bvpaa3QtpUjF7OYWf/cLDht/+DFCN0FpJTQwr9AAfr0I7RQRCfI7S9P9RCI+UAuEJBK 9MPBSXvj2qDVnlex8ZzdknLVk70VHcvj52WefoP0uabsZdQMwv+1JMGv/VbPGfGWpCt/ CZNHABhNJGY9qVW6SAurEEv0ZqOHg4PJe+utO6uoExMzCpvI7uHk0SHkuwvpi1nTVTdV Lqkw== X-Gm-Message-State: AOAM533Gp8eKgrQFNoU/HRvaNPrle7rg3sFM60GLgJrY1RpDdFtKNQFU 66VfD/yCzPA5IqsjC7mB7h6U9t05tpOlAQ== X-Received: by 2002:a02:8805:: with SMTP id r5mr2972176jai.52.1601653945179; Fri, 02 Oct 2020 08:52:25 -0700 (PDT) Received: from [192.168.1.30] ([65.144.74.34]) by smtp.gmail.com with ESMTPSA id w13sm876380iox.10.2020.10.02.08.52.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 02 Oct 2020 08:52:24 -0700 (PDT) Subject: Re: [PATCH 3/3] task_work: use TIF_TASKWORK if available To: Thomas Gleixner , Oleg Nesterov Cc: linux-kernel@vger.kernel.org, io-uring@vger.kernel.org, peterz@infradead.org References: <20201001194208.1153522-1-axboe@kernel.dk> <20201001194208.1153522-4-axboe@kernel.dk> <20201002151415.GA29066@redhat.com> <871rigejb8.fsf@nanos.tec.linutronix.de> From: Jens Axboe Message-ID: <4c9dbcc4-cae7-c7ad-8066-31d49239750a@kernel.dk> Date: Fri, 2 Oct 2020 09:52:24 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <871rigejb8.fsf@nanos.tec.linutronix.de> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/2/20 9:31 AM, Thomas Gleixner wrote: > On Fri, Oct 02 2020 at 17:14, Oleg Nesterov wrote: >> Heh. To be honest I don't really like 1-2 ;) > > I do not like any of this :) > >> So I think that if we are going to add TIF_TASKWORK we should generalize >> this logic and turn it into TIF_NOTIFY_SIGNAL. Similar to TIF_NOTIFY_RESUME >> but implies signal_pending(). >> >> IOW, something like >> >> void set_notify_signal(task) >> { >> if (!test_and_set_tsk_thread_flag(task, TIF_NOTIFY_SIGNAL)) { >> if (!wake_up_state(task, TASK_INTERRUPTIBLE)) >> kick_process(t); >> } >> } >> >> // called by exit_to_user_mode_loop() if ti_work & _TIF_NOTIFY_SIGNAL >> void tracehook_notify_signal(regs) >> { >> clear_thread_flag(TIF_NOTIFY_SIGNAL); >> smp_mb__after_atomic(); >> if (unlikely(current->task_works)) >> task_work_run(); >> } >> >> This way task_work_run() doesn't need to clear TIF_NOTIFY_SIGNAL and it can >> have more users. > > I think it's fundamentaly wrong that we have several places and several > flags which handle task_work_run() instead of having exactly one place > and one flag. I don't disagree with that. I know it's not happening in this series, but if we to the TIF_NOTIFY_SIGNAL route and get all archs supporting that, then we can kill the signal and notify resume part of running task_work. And that leaves us with exactly one place that runs it. So we can potentially improve the current situation in that regard. -- Jens Axboe