Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp4186681pxu; Tue, 20 Oct 2020 10:13:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxpraysPqAjWc2BIGJVnTPfaC7heQTlcGZM53JbIjCzEF1FSYibRusPLcsleX+DSQqG7/+F X-Received: by 2002:aa7:c1da:: with SMTP id d26mr3692104edp.135.1603214019865; Tue, 20 Oct 2020 10:13:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603214019; cv=none; d=google.com; s=arc-20160816; b=LUsS7YfOR6+9rrUSUTBClFwrD5A5mpdc5ZbLssAchMwthisXSQ+9eycD4BIoi0m0uH V5Z+1FdukpMeTuTLRepeM5YX2TGTrVeCpLUkMfzukcqy5YH6eOf/xdF7VA5Hkm66YCRs 8RErGyb8VETE7I4Io/6BAFiCh8KTSdnwLVwpGiSoC3FqFr9U384sSBsLlgwx3G16+lQO n89mgFJ0mj3rRMlTW2FXWK75f1CBs9owUrO0RnsHhgF3uOtGXUFPnUd66y7m25Ts4B+V b037qceXrzNWtt5q+B7Cqr/H42DGBnVETsGq8mL+6mwJYqy+PKMvSrhhHjDaSBiwaaog R0eA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=BZaoqEfti+60sAgPkWgID3qpU9arAGqqBfDYeDbxdJ4=; b=WKkEck84uMlqjOFfso/wxLs/4YRcw8R1+Rb+AVvx4AxE3hh51n4GaV9K8db01dwhO+ HpKyaCLkuqB2AG8+hN5mo3/XmK/ae/3X+/LDOZ7RG0+zkdxDjy4RytLQ7YDhsFHP9Zyw q6JanUt2vAFGy1O4Th8DHQ6Lw5XZO/85qZnYkG6Pjeot0O/mf0StKpGEsgf1I3BxudsT SFAU9/drdu2NGHTyPMr58S1mHNhGoZghgY4IwXWaInFHk6geji9JyrwclK689lf1rGVN dKYzg3DJ9rEaZ2Y77VYPHJn5gr/Ma2sgdFhxSCpam6akWTyr3T5UV3EhG1M/Z1WPW3R0 wkng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=QiP8Vz2J; 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 e19si1730133eje.429.2020.10.20.10.13.17; Tue, 20 Oct 2020 10:13:39 -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=@joelfernandes.org header.s=google header.b=QiP8Vz2J; 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 S2390383AbgJTBpP (ORCPT + 99 others); Mon, 19 Oct 2020 21:45:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34732 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728078AbgJTBoq (ORCPT ); Mon, 19 Oct 2020 21:44:46 -0400 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F0210C0613D1 for ; Mon, 19 Oct 2020 18:44:45 -0700 (PDT) Received: by mail-il1-x142.google.com with SMTP id l16so269192ilt.13 for ; Mon, 19 Oct 2020 18:44:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BZaoqEfti+60sAgPkWgID3qpU9arAGqqBfDYeDbxdJ4=; b=QiP8Vz2JUTa7KOe9aSFQz13dW9Qye2C5vZTKH+WK1yN+DxcQs66Z7TJIh1smG2GAjq UwKagly+cnGxfzgwXKXTx/IPDD+sawDzI5kUk1a/nTG5Wk12R4UIqDCnq4bI3u1aDQYK BlxR1tOqa4+sTzTauGKpHXN+jOyGdH469CNm4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BZaoqEfti+60sAgPkWgID3qpU9arAGqqBfDYeDbxdJ4=; b=TM8E9MBwCzXGVMb6rObPfwnBzMKo4ns2oTLVdNNAaYb8DAtAFMFuO+xN5rbaZEeu5Q rMVH1wKFqF03Vt+NQtB3tX1VJvgQPRBjk5UT480q2yyIF7UaqtJf/Qupm5pIIEoa5E6g unL6pZgZ9K2vJAy+5HIzNlBBN0e0OvpCI3QJllXFO+qfodtV5iboIzXef4dM9jmL16cz jD3GIzHOMycLQsDmxg5JhomOQxg/cnoB0ZkXmyNBh67+dIJh3qu65SXk8zKWwhVINIt1 uMAf6qUKJFsiJ4UkUd5etEbvEBM1hZh0k/hrOCF7Wq88bpvxgOHcKSMuyUa97YY6zMJd DJLA== X-Gm-Message-State: AOAM53232AfUmcaifCeOmAE1kOG53Q5JRvBUGgjJTd7IBBq+o5cyG5u/ mirpQQav1ePrf7iR1FvzwID3rw== X-Received: by 2002:a92:ce09:: with SMTP id b9mr269399ilo.14.1603158285333; Mon, 19 Oct 2020 18:44:45 -0700 (PDT) Received: from joelaf.cam.corp.google.com ([2620:15c:6:12:cad3:ffff:feb3:bd59]) by smtp.gmail.com with ESMTPSA id t22sm485306ili.9.2020.10.19.18.44.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Oct 2020 18:44:44 -0700 (PDT) From: "Joel Fernandes (Google)" To: Nishanth Aravamudan , Julien Desfossez , Peter Zijlstra , Tim Chen , Vineeth Pillai , Aaron Lu , Aubrey Li , tglx@linutronix.de, linux-kernel@vger.kernel.org Cc: mingo@kernel.org, torvalds@linux-foundation.org, fweisbec@gmail.com, keescook@chromium.org, kerrnel@google.com, Phil Auld , Valentin Schneider , Mel Gorman , Pawan Gupta , Paolo Bonzini , joel@joelfernandes.org, vineeth@bitbyteword.org, Chen Yu , Christian Brauner , Agata Gruza , Antonio Gomez Iglesias , graf@amazon.com, konrad.wilk@oracle.com, dfaggioli@suse.com, pjt@google.com, rostedt@goodmis.org, derkling@google.com, benbjiang@tencent.com, Alexandre Chartre , James.Bottomley@hansenpartnership.com, OWeisse@umich.edu, Dhaval Giani , Junaid Shahid , jsbarnes@google.com, chris.hyser@oracle.com, Aubrey Li , "Paul E. McKenney" , Tim Chen Subject: [PATCH v8 -tip 20/26] sched: Release references to the per-task cookie on exit Date: Mon, 19 Oct 2020 21:43:30 -0400 Message-Id: <20201020014336.2076526-21-joel@joelfernandes.org> X-Mailer: git-send-email 2.29.0.rc1.297.gfa9743e501-goog In-Reply-To: <20201020014336.2076526-1-joel@joelfernandes.org> References: <20201020014336.2076526-1-joel@joelfernandes.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org During exit, we have to free the references to a cookie that might be shared by many tasks. This commit therefore ensures when the task_struct is released, any references to cookies that it holds are also released. Tested-by: Julien Desfossez Signed-off-by: Joel Fernandes (Google) --- include/linux/sched.h | 2 ++ kernel/fork.c | 1 + kernel/sched/core.c | 8 ++++++++ 3 files changed, 11 insertions(+) diff --git a/include/linux/sched.h b/include/linux/sched.h index 4cb76575afa8..eabd96beff92 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2079,12 +2079,14 @@ void sched_core_unsafe_exit(void); bool sched_core_wait_till_safe(unsigned long ti_check); bool sched_core_kernel_protected(void); int sched_core_share_pid(pid_t pid); +void sched_tsk_free(struct task_struct *tsk); #else #define sched_core_unsafe_enter(ignore) do { } while (0) #define sched_core_unsafe_exit(ignore) do { } while (0) #define sched_core_wait_till_safe(ignore) do { } while (0) #define sched_core_kernel_protected(ignore) do { } while (0) #define sched_core_share_pid(pid_t pid) do { } while (0) +#define sched_tsk_free(tsk) do { } while (0) #endif #endif diff --git a/kernel/fork.c b/kernel/fork.c index b9c289d0f4ef..a39248a02fdd 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -736,6 +736,7 @@ void __put_task_struct(struct task_struct *tsk) exit_creds(tsk); delayacct_tsk_free(tsk); put_signal_struct(tsk->signal); + sched_tsk_free(tsk); if (!profile_handoff_task(tsk)) free_task(tsk); diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 42aa811eab14..61e1dcf11000 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -9631,6 +9631,14 @@ static int cpu_core_tag_color_write_u64(struct cgroup_subsys_state *css, return 0; } + +void sched_tsk_free(struct task_struct *tsk) +{ + if (!tsk->core_task_cookie) + return; + sched_core_put_task_cookie(tsk->core_task_cookie); + sched_core_put(); +} #endif static struct cftype cpu_legacy_files[] = { -- 2.29.0.rc1.297.gfa9743e501-goog