Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp1492380pxb; Fri, 1 Oct 2021 11:47:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzOhqjjgpnisfqL/zoFKiGHfzBpudjahXXGtj/Ox71VDGnzeR0f3VH5Ve+FLFDF6Anl3r5F X-Received: by 2002:a17:907:a425:: with SMTP id sg37mr8215130ejc.131.1633114051452; Fri, 01 Oct 2021 11:47:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633114051; cv=none; d=google.com; s=arc-20160816; b=HdqXowtWAweeI9d6NfKSiAT8EHSMxHg96Ow3xzWUYsLRERsriXSTXdSpSj7+04cTlb eAJIW8TOgu3xbm94HYWGTG2Y3igBuiy+TCQNrdkTToa8AXaaktY2c0VtC89sHn6e5zrv LZsrBPjtsKkvYA+qWCDClS8+1MAso13lqESYiSsp48lAlkedQr1cuRVp2s4M1G8M4qzL GzBq5jhBadwOzkOwKSO2pUBTW4d16T7DKlkmg0Vsh+A6s28VsCngZ9pjCHvbag+MOhRF asCJsJFdCLN0YQUUMg5SI+y1Az1vIoOHk6q/A/O7KHi4NpngIsX+FTowrfAIuOtph3sM UmJg== 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=ADTH4O/xVdp0zOdiyrZ3pudKmhw84Ea6QbVkbGyXPnU=; b=LIG9JfwfMyAf6tvhsaxe9yQVpHlkVaOeUrzbfmUrWJU4ZYYUxpOSd8ZI93c6WZ7+wT m1xFEdRR71umHNrn59JyOE2mi3qKSpOopRRv8qdADfxUVEQ1WymQKeRNy32wZ4iVs4w7 wqMLqg0jRYYw6BE2qt+H8M4RIvFDUmV10HOZk8fOtgP5Md1WmvKVxYLJWyRa4bB/XLqa 99l9grkTpQAtVe99D7O2f9hsqMQ71pffekaU7aDmgnzEYx1bAIaKujxuWRBBmbIiO3aB qFmKl2NozkhWwCRswM49SRAJL33/XG79g5ZkL31kN42PITpWhY3H5/S5ATmv/aNVXcXr GmYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amacapital-net.20210112.gappssmtp.com header.s=20210112 header.b=YzUMn2zH; 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 y18si7630554edq.326.2021.10.01.11.47.05; Fri, 01 Oct 2021 11:47:31 -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=@amacapital-net.20210112.gappssmtp.com header.s=20210112 header.b=YzUMn2zH; 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 S231995AbhJAQOg (ORCPT + 99 others); Fri, 1 Oct 2021 12:14:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50196 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231621AbhJAQOg (ORCPT ); Fri, 1 Oct 2021 12:14:36 -0400 Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A1D1C061775 for ; Fri, 1 Oct 2021 09:12:51 -0700 (PDT) Received: by mail-ed1-x52a.google.com with SMTP id dn26so36528138edb.13 for ; Fri, 01 Oct 2021 09:12:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amacapital-net.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ADTH4O/xVdp0zOdiyrZ3pudKmhw84Ea6QbVkbGyXPnU=; b=YzUMn2zHMYqwvQBKhiWEsku2N+eKNBTI+NgPXvgIUqUC5qxgHv60MignLHtVF/VZ0x E6MW9T+m3/Us0J7G/+hgFygVnCvRy+NUXWIpA+wfzrzC5iWN8479sevsActE3Ldd/snx 3uRUG8jjFlV9VwcpiETLWajM/me+mNTimHbLkm7r2lLf+25So73QHs8QnhfAvni7GlGZ eJJhJBz4XWqV7zhpAv+xhJQKKHtIVjkScUbpXc9iDz7N+jgr84PoK7EnB3bT6UbGY2IH ot2zwIAKydfo7GyAfMVsV32fpZ1y9mr0Ed9tNLXimKC54msw9BiZY83gsp6oqyhQyVfX nCQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ADTH4O/xVdp0zOdiyrZ3pudKmhw84Ea6QbVkbGyXPnU=; b=iG24ofXhDEXDChpm8HC3Rteyzg0ec2VXCLwHxLn1svg8lBgBIXCbYb/npWlCCDYlUM +WmGAcyf8oIyes658dddsbVj6PGnL8YhqH0TKJSDi2Z0NWLShigqgpAgSJd+f43Xjmd+ n6DABaXUvSejunQ1I5pojs56+ej9dKGLOJQ0bdyaFyASzvpM/HOdyjumpPs0LrtatM72 HvYRmiWkvtE1qJSDkaaFfwSPxugPOpwyW6XrfbAzGes09vnLWHEt5lkCNcDpFis3yA9k 7317lMZ7JROcMkifQfSK9ubI2XRqUabEVb3Iabwu1HYJ0IMycPS+LTwi//v3vEIz2KzP XWJw== X-Gm-Message-State: AOAM530tDPDctNxw0XfP9PLxx4Tj+NHXBE+bJ3v/f3sWfQXuP7o7AYWc N8UuQbgDETRB0/+l4MNbU2s6TGHJomCfdj1qE1w67g== X-Received: by 2002:a17:906:8e0c:: with SMTP id rx12mr7225749ejc.423.1633104768129; Fri, 01 Oct 2021 09:12:48 -0700 (PDT) MIME-Version: 1.0 References: <20210928122339.502270600@linutronix.de> <20210928122411.593486363@linutronix.de> In-Reply-To: From: Andy Lutomirski Date: Fri, 1 Oct 2021 09:12:34 -0700 Message-ID: Subject: Re: [patch 4/5] sched: Delay task stack freeing on RT To: Peter Zijlstra Cc: Thomas Gleixner , LKML , Ingo Molnar , Sebastian Andrzej Siewior , Masami Hiramatsu Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 29, 2021 at 4:54 AM Peter Zijlstra wrote: > > On Tue, Sep 28, 2021 at 02:24:30PM +0200, Thomas Gleixner wrote: > > > --- a/kernel/exit.c > > +++ b/kernel/exit.c > > @@ -172,6 +172,11 @@ static void delayed_put_task_struct(stru > > kprobe_flush_task(tsk); > > perf_event_delayed_put(tsk); > > trace_sched_process_free(tsk); > > + > > + /* RT enabled kernels delay freeing the VMAP'ed task stack */ > > + if (IS_ENABLED(CONFIG_PREEMPT_RT)) > > + put_task_stack(tsk); > > + > > put_task_struct(tsk); > > } > > > --- a/kernel/sched/core.c > > +++ b/kernel/sched/core.c > > @@ -4846,8 +4846,12 @@ static struct rq *finish_task_switch(str > > if (prev->sched_class->task_dead) > > prev->sched_class->task_dead(prev); > > > > - /* Task is done with its stack. */ > > - put_task_stack(prev); > > + /* > > + * Release VMAP'ed task stack immediate for reuse. On RT > > + * enabled kernels this is delayed for latency reasons. > > + */ > > + if (!IS_ENABLED(CONFIG_PREEMPT_RT)) > > + put_task_stack(prev); > > > > put_task_struct_rcu_user(prev); > > } > > > Having this logic split across two files seems unfortunate and prone to > 'accidents'. Is there a real down-side to unconditionally doing it in > delayed_put_task_struct() ? > > /me goes out for lunch... meanwhile tglx points at: 68f24b08ee89. > > Bah.. Andy? Could we make whatever we do here unconditional? And what actually causes the latency? If it's vfree, shouldn't the existing use of vfree_atomic() in free_thread_stack() handle it? Or is it the accounting? -- Andy Lutomirski AMA Capital Management, LLC