From patchwork Sat Feb 1 16:31:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mateusz Guzik X-Patchwork-Id: 13956253 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27D4EC0218A for ; Sat, 1 Feb 2025 16:31:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 999976B0088; Sat, 1 Feb 2025 11:31:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 947AB6B0089; Sat, 1 Feb 2025 11:31:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 80EA26B008A; Sat, 1 Feb 2025 11:31:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 62FCE6B0088 for ; Sat, 1 Feb 2025 11:31:27 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id DE608816E6 for ; Sat, 1 Feb 2025 16:31:26 +0000 (UTC) X-FDA: 83071916172.23.18EEC37 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) by imf14.hostedemail.com (Postfix) with ESMTP id D5E9C100018 for ; Sat, 1 Feb 2025 16:31:24 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LyNGUM4w; spf=pass (imf14.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.52 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738427484; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=q9VwguEfdw2O0mEEKHo5I+DTD1LWzDzpt7iDjHggfOc=; b=IVaU9KQzng9Rw7ycUsK41/CtyUHK9cZAKDh/YKiEdRUTEQHJR6uaPzhuIhjGoauhG/1sp9 VpBqe06nH7ZQuBCKyrYI6jUYIjgjWuxw7gwSbg89J4ZXVqY50RkWNYbsDxYMJjYy07jWb9 2uowtuGe9hboNW6zuzrPbKDR0wSYG3I= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LyNGUM4w; spf=pass (imf14.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.52 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738427485; a=rsa-sha256; cv=none; b=qaP6UQ0AKGGQK7TUz87lgIEMnjNBYp6MNFonVNGHL1r4FOwcj29zN+veLLY2Y1izmHQoN3 HpiCZNptiYtGIF5GQAuj3It+OxvG1Mj+jnw2JRsymxvJHtHgWBYgcJzjjznLamMmjKMbnQ r5iKOu3QB5rMc8zJHXWRAGCIeOt+HCA= Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-aaedd529ba1so423084866b.1 for ; Sat, 01 Feb 2025 08:31:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738427483; x=1739032283; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=q9VwguEfdw2O0mEEKHo5I+DTD1LWzDzpt7iDjHggfOc=; b=LyNGUM4wTxa8kum9qLzEYKgJ95Cm8AmAMGqrK2TLkMWwIeJUKjoj1Qcl4TMO2egnAA RJXoJGanHY3vf8ij2VjIR6sgOTLZvPmuNHkSsuPOzcf+kPsao5ORz4lFMnECPWzaBTon 4BVbGtm7Fdk8efGSlKe+jORezGDdRampz0lDOjLNGUts8F8pggQ40XeqICw5YhJExlmw etcd1GwUx1yU5zjoPOp3Y1hsITAm2pBhRa+CNSyUWt9jXqs30mnQf/gL2Lx3YLTxt6QS AbwqnTq2O1PUFBBenrShI1Iaw+SAg7fubOsVhtqRCVSNPFf3qlkfNX33jqiUT5vXyABv 9bzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738427483; x=1739032283; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=q9VwguEfdw2O0mEEKHo5I+DTD1LWzDzpt7iDjHggfOc=; b=LxqW/wceKwOorQtIWa2sEZ6GKXAwoyRQnm9e940zeYn2lWoOV9q6p5pyY+uUGIR0lL 9Mdm1HTKuCJ+yvGWn2Sz6vtAmA+rrXsPt3wLe1BOljmGKOT+MWSPSOGrXD88dIECHKTH 9XbdQIt+HpYwACogWKKhzxUdy9Mi5NHOWB10oTxrUx9TyBK4ZAypcla+qgHyysH9fozB 2hUFBWBDtNU4ru5xibNn6WJTEjOkzJOZlbhLC9znLMEah6DcMs1hYK8/UVxeo4zls18L F8ENeRGBh7nspsFYKbTPdvXmIbVbXnJ19Zc8OfOPdhBUdoVyPmSeMJSCyUDta4Mmj/x6 uReA== X-Forwarded-Encrypted: i=1; AJvYcCXMzayCDc5TpFm7QWsZJwcEozmmcqwzedRLhENCx3LCc89DiJw61sEqtDtlqsEg+tHQxyk/9ZdYTA==@kvack.org X-Gm-Message-State: AOJu0YyHQ/NkAeDkK5B3Od7lQ4VZeGT+8LdXtwc+i1QF+kLyHjpYnZOM d6amP0iPBooawVGapdUjOhSWoLAkZFsSCpI3gzjxnGtiXui6IExG X-Gm-Gg: ASbGncui6FEplL33iL1RUXRHZSTyNWEsG5BV4oDfvyOORvrr4hsJTNxziNpn0RYkx2z cX7YauO9COtb/RyaZ6BmaEf9O0WFNTlxITyueJxA12rdYI+nuEyBgZmuZ8WskjczN6r5Fx1G3ML W7M7wqCWyNNq1zz8x9tFM6FcAkE8V/gMi4ENJEvk86KX+nDiXQpTWGBkEtBXXf78yOO7poCnLqT bg+OajWkRJifRf+PDn7UmkW4lrB9rbl+k3QdCtvYHgYSC6J0DXb7m2f0gGCcm3bBpMbOlB37c78 00tiqv/ClIk/miENN4PfoxwKE+W3jN3e1g== X-Google-Smtp-Source: AGHT+IHvc7aK8w+Hd89W24dqneZqKXcLr+wAyc1msRlyW5N6rBFhpTa7M7G/9pyZypuHCoX+4ZopoA== X-Received: by 2002:a05:6402:3511:b0:5d0:81f5:a398 with SMTP id 4fb4d7f45d1cf-5dc5efa8b65mr37039629a12.1.1738427483014; Sat, 01 Feb 2025 08:31:23 -0800 (PST) Received: from f.. (cst-prg-25-223.cust.vodafone.cz. [46.135.25.223]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc723cff72sm4636959a12.15.2025.02.01.08.31.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Feb 2025 08:31:22 -0800 (PST) From: Mateusz Guzik To: ebiederm@xmission.com, oleg@redhat.com Cc: brauner@kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mateusz Guzik Subject: [PATCH v3 1/6] exit: perform add_device_randomness() without tasklist_lock Date: Sat, 1 Feb 2025 17:31:01 +0100 Message-ID: <20250201163106.28912-2-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250201163106.28912-1-mjguzik@gmail.com> References: <20250201163106.28912-1-mjguzik@gmail.com> MIME-Version: 1.0 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: D5E9C100018 X-Stat-Signature: enk1g1acaun19pdjrfa3a4b1ncp4enya X-Rspam-User: X-HE-Tag: 1738427484-169945 X-HE-Meta: U2FsdGVkX19W1+7NNUyormZmxVxpCDrsmw3mP/RzLCpwfEUeIsD3RUn12xvh5U0Kz4fbQ3l5XbrDDHh5crdYCtET+0HXznzfbgfee0UjN+9YkoxJKbDxRWG9VYER2u9i4t/82D0REeV1qkeLqICl3EABIUrJ0zUkJMwD4FS7C/cjxUwqgDirtnsrwkTtArbS+Ov76iUNDmT5ppcLzRxrDHpa9z+SmCGcS0UUkixF12dhQi74zupP7SQtprOSRy7Kpzw9yWIJzGpoK7qcd8a37er7qxmX1sDz+HsjucV1XKYHHqHYQv40Mct9SAjpoWnSS/fpdr+bILjNinlwmnPkY7BLKXV7UoesexsGUFbI5TrF5ovT76RP9HPTdjTBm/10ZaAVbdofoXQCDUb0uldgI88nsDHPDEB7+Dg5osJQlBJY40eznAsYgOJcZABk1+bI+DMjd3fzysJJ99ySyCWu7cZg/8FFsb/MEn4A0ckgQOwuhiNHyRxgT/ThfDZAneOchPdXztZnWLzxIotopuHF5Inlu02xl2hmoYjWeViGqCJc+1LDrkWxOn+L0smB7lSQpYQgRVYAMBcVqcEw+36Y36/9gmLGgpsyuAGQaAH9GEAMg/t2jHAAxOvF5ZGLWYdR3Rq1AkUGWO8HLeB8EM30bpn6IWIztlwaAaYWF9j+Q/ARAML5K9JDHUacsTbaH+iKGM+fT5QHd5pcjM0kq7vtxlYQQkij5z5LoyuXW5NmGVWCg2SgIwAG0aqvvYZc+VdIq9iXdbjkKFXlEKhvdQxF5inNiFv3FdhVKZkw9ofIk7rWIBzd8KlGKxHt3wgwyWpVXvTcZog3aEuui6YWnmojG7CKGFO6G7o92laaB0Pesar8JjhLKOY6nvqTXlwM0KQ9ySPDQFczhrC15amZi7dKH9kdxOfnafTbBnye9aGhVR/JQbvsLnmpG2IGxGJ1M+BS1v1nOMEvyPL7LiaNwMa S0QUx92f RMF0UPdb5gcmM6I2DbCmNY4g1n3i5mwhIQmSS4g/N0sc0N7hlaofoIUNg57Omb8Vm0abPMgUJs6WtSomxAs4f+1skJJeNtDu47U4Z1ONrMWr46WhZOIcQBNlX4KKtyr6iyGGcEj5cUrt5/j2ll4MmdyZVHbSNVRvuJjXQF1lCPqmxCMbO5pONRAEnG5C6HzbtXGW3cxJlJA3rWYNfvuvUDPBmQkJ9VB9yTDNw3p1spGV99OA4j9hWKgvq3yOH7AEUQ93a920RGEN2627i26lqm8EKqx9033qK3QpBmJUrk4YV4xnSmyDbjQJxtK0pkpQXyyN3z0v1Y0qU8oo5IYfdKY5Zxg+sHYg4ciBTzeOrEvsXRDNMc0cv71Q6J3MWeKrr/Llov8rZNeoR6Ghx6rz6n915jwGPNh/MXoV+2JSjapBD4EI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.007839, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Parallel calls to add_device_randomness() contend on their own. The clone side aleady runs outside of tasklist_lock, which in turn means any caller on the exit side extends the tasklist_lock hold time while contending on the random-private lock. Signed-off-by: Mateusz Guzik --- kernel/exit.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kernel/exit.c b/kernel/exit.c index 3485e5fc499e..1eb2e7d36ce4 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -174,9 +174,6 @@ static void __exit_signal(struct task_struct *tsk) sig->curr_target = next_thread(tsk); } - add_device_randomness((const void*) &tsk->se.sum_exec_runtime, - sizeof(unsigned long long)); - /* * Accumulate here the counters for all threads as they die. We could * skip the group leader because it is the last user of signal_struct, @@ -278,6 +275,8 @@ void release_task(struct task_struct *p) write_unlock_irq(&tasklist_lock); proc_flush_pid(thread_pid); put_pid(thread_pid); + add_device_randomness((const void*) &p->se.sum_exec_runtime, + sizeof(unsigned long long)); release_thread(p); put_task_struct_rcu_user(p); From patchwork Sat Feb 1 16:31:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mateusz Guzik X-Patchwork-Id: 13956254 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93999C02194 for ; Sat, 1 Feb 2025 16:31:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CCBFF6B0089; Sat, 1 Feb 2025 11:31:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C549E6B008A; Sat, 1 Feb 2025 11:31:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ACEEE6B008C; Sat, 1 Feb 2025 11:31:28 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 88EAC6B0089 for ; Sat, 1 Feb 2025 11:31:28 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 2B49B1A0379 for ; Sat, 1 Feb 2025 16:31:28 +0000 (UTC) X-FDA: 83071916256.19.C12EA7B Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) by imf08.hostedemail.com (Postfix) with ESMTP id 33064160008 for ; Sat, 1 Feb 2025 16:31:25 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SIw8Y5qR; spf=pass (imf08.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738427486; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=CXVQSHG/dhd9jfamFZQ5v0xVVMd1VSHlCVKm8ZZoizM=; b=y6F4TrdR+QbKINYoAQ2i0kpRG31RGmj4SMO5D5R8NWpZePrxrLi5kPJRHsl5NzF7O57vZA koFY01+FvawgTBYV5lWMopZ4RzgBcz/07MJeUZQxRab2A0omffVyLU4pJuI58/+vT1NHq9 iY1Z5xccC5AkStWzlRe+cUA1VkvtQxI= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SIw8Y5qR; spf=pass (imf08.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738427486; a=rsa-sha256; cv=none; b=ihQpywpV1mFCSlTexKEj3NIMWxmOHmzl3CzxZrLwpSoxDzuK/V0cL8IfP4j9EGlyF9JcfM FU8eRi5HFTM94McRcbojhmE5FsKbPgvYQLmcWHj+VHWcpcNI3+6ggNdoEpdF3Ga+uzbtkt Wlh5u0LJoaspB+sxt85qjc7VzoHe5Ro= Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-5d4e2aa7ea9so6394721a12.2 for ; Sat, 01 Feb 2025 08:31:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738427485; x=1739032285; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CXVQSHG/dhd9jfamFZQ5v0xVVMd1VSHlCVKm8ZZoizM=; b=SIw8Y5qRwXER+WXhEH1bnrg+Zpgk13QXxAKqYqsgbPZMt1zNcFlL1uiEtpE3+9wenJ NGIpaIY8+UuHswTTHNR4R4ueRHtbs4ItsHBsjZgcrybpKV74TJ3mPznGRTPd7DGEZGcp Bl9p/vBc0z2c/BjAHFWR7UrW6pEdEp+BCq0Ft769k3yNlh0nOut8QeKs1jOaC9FdfWB7 6FAuFj4C4OKeVXj9ZnnOuLAJksVHTQpuWtYLvmKQer0IqAmcbGG0TotVJDRsmCL3rNa5 YHcaAignb4eC95jlliQ/YAYtNaymlvGY1/Cs/OnUPOf8VUIcJQ8oxa0vspWReJcREFH8 KE7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738427485; x=1739032285; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CXVQSHG/dhd9jfamFZQ5v0xVVMd1VSHlCVKm8ZZoizM=; b=ODhKZC8QJNfOCFpWe248DdCdHTGyE1bTcDmV0rE9D025HVCigUHtFeiCrfwquNKW9I 6Gw1rt7uiZVcyT6xR/wfFavUa47BmZpqla1FVg2NpFo+RuO+Lf4zL111jcWGG19dH9h3 hhZVRVCiUjP/9veH3x3ZVThQMY7ZVaEXqTnoVi7e2Mx9BO4EFW5B4Spy3KbnnGORWSvV P9iFaL0LOPv6FnrDKWJIttjC2zv8bF2M9FcxJrFUCSES7/a2pVi/qekHY6uAOGV9lmSd c9DcmvBieVWPaETEUPae6oD9dibAxjbYE2FYdq3V9evx9FvEGh3QYTO5UtmWsetBGhD8 Oo4w== X-Forwarded-Encrypted: i=1; AJvYcCU02MoC6i2JsdgPwAGmdn1/0J/MTK6/oiF8ORE/W6JyJBKGYVe2yxCUaquHdjcPQ+65YaHxfc8UxQ==@kvack.org X-Gm-Message-State: AOJu0YwDiOLXQgwHr1+Vrf7CZaRBvJ9kd6PLZS4PclVf4Ob0yG326akv FG0u/hXOWN2s8DjNovMZBKiUI+SuHLcVkdVnjTCy1jNf4QyqxMQh X-Gm-Gg: ASbGncu4VCN9Rc8xhmlMcJmY6AutaPvxD8vIXAStVb3oac6SfkaIb2IaKK1dC/ZnBkl 87yRFDRGBcMoWMFEQgI17YHtqWAzA3AAnQp4Hg7M10tkma4INsKpbATFlcZsjQXgeM+oeA+PnEh 2akkWpG3w0OmhPuQnR5tZj7xmVcIpwGxuZy9n0Dy0k8xc2Ny8g9jU0WMvUIh6KbqWwmCRbkO0dj EsiBLW+1UKruEFDO980VNEk6FTX8YVbwVv06Ias6FjQdh9SGj1uizY2tSM1BzY3vAoynjsTX+eW egvTuV0yCQDe70aC82RRMjlTV3xazhDXZA== X-Google-Smtp-Source: AGHT+IEBBONxnoUTzVDmSOq6OZmD+SIybzgSduX77ZYr+Wy+gfjJKcZ3ihdCR4osScCUIMVOsqIhYQ== X-Received: by 2002:a05:6402:51d4:b0:5dc:100c:157f with SMTP id 4fb4d7f45d1cf-5dc5efbf5afmr19313220a12.11.1738427484556; Sat, 01 Feb 2025 08:31:24 -0800 (PST) Received: from f.. (cst-prg-25-223.cust.vodafone.cz. [46.135.25.223]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc723cff72sm4636959a12.15.2025.02.01.08.31.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Feb 2025 08:31:23 -0800 (PST) From: Mateusz Guzik To: ebiederm@xmission.com, oleg@redhat.com Cc: brauner@kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mateusz Guzik Subject: [PATCH v3 2/6] exit: hoist get_pid() in release_task() outside of tasklist_lock Date: Sat, 1 Feb 2025 17:31:02 +0100 Message-ID: <20250201163106.28912-3-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250201163106.28912-1-mjguzik@gmail.com> References: <20250201163106.28912-1-mjguzik@gmail.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 33064160008 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 1ag8g38zbi6czdb7f1jkyystajcjoqsz X-HE-Tag: 1738427485-902992 X-HE-Meta: U2FsdGVkX1+DOTlulwWkOUXEdSYDMuiV5jHkqbLQXdekyInL+c6AR2Qwy/TcKQLvtlLFMvj1BBiA+/sNWfl/kcs231bIEtq+A4Hx+PiQHQSAkB00DGA3t4bzWJMjYboJTdQu1AE8mFlAiiuh4D6e9nzBSoh4uHrQKZqASKai85kvhO0sSznH7E89vwbiazuD2xjqVWYhYiZevJ4fNVaRnIyktBF7W/R4TZp6oNck8PH47xj/kIFjm7nwnyIKgvnAEPmUWeSe1ICAC0StQXkAc8QIJ+TpxBfESw4U5/GxH7aIrl5du+W5b4/aMEm0nli6fw1E4c/9p5C9P/5UVJS+ulG1Ntt2kkjWIIuV8YlPupI4qgpXIhbPsDqxfIjuP+pprfmrA6j5NhjBjGXCwCn1TvlEGkj7Kj0ri4zAg+kPkSMzrlvuLgLUe2/sYLFZzfhU/SQgJZU04CYdMlUgkydYFASst3UHSNnpdbP6MoS429SnKqe/Ak5iIdeMbD4BnO0cp9KZfbPMuPr7eyc+kguqiLRXLjifXKuXmlxembX2TCZJhOOKz/26tHt93UZuYHnRtclG8Y0Yj1Ef9+JH1+ZQ7cUpx7mj3xCQjS/QpLDGUvUYL4RIpVtp/nzZYvqmotoViBFcXhhtgYDuWrA4gzXSTt4IoLySKo/uggsvge8fcZOzMFERS7R0TRsKqekvr2bsbuIm21BWaklQKG/Mdx+PQ9khz34YoOpw54FUz/urq02Y2FwV7vPEr+h0xIY7yqwluOaCtUt6V91/LRRLdAklGJLzeHMzoPHqeJZt+kH2UNRH15+nG9XQPZLaK0RA9VyGS3fYsf6b1UMDaDDt804rfX47e+BhH9FsP2cYFb7mC3mfjvcMGaBHoHnNmLvQvSVGXMQG1sTelw2heuBvjQR+LKXSHAL8lxhza/lX43LOoYuNvRV4NtmEpKqIQ0GsdovNIs5flWaNcVFGQIafqfq 8i89ecNz E+yslrBPHht0crv1gOXLAhENZ0M8yUjPyc8o25Uiz+302eVjT1ZP4ZUoLRUjnh5bPjbqy+Oo6CYKj1ycK0Lgt/HLwug+2yBihjJfyqxs+evdzK7mDmVyfEGp52aMuTNqr/wdEj0RpmupuzifeCX8lHaO0F8bXImsEjkz9H0NlOvdMumX72vsJJpb+iHh61/T0dq3iaW06CY28vBQ3FJaPv7HoeRBmbZM3Y9v6u3oSz1zNikyxelL3GZQcjod4QPRYT4/bsqsU8mu66GwlPJtDVVzjlSIoKqi2RBb25r4hU6NYHjhUt1KZSIklGRx766DdolUuTKDrzBM7KT7V6IUmD2h9QA9KEYxm1hpqFvRICO2jYjUUF85p1JcsaVJ8GCgv88/KiEi5ew8KPeChF1DMAN1itfcysC2LvqZULVEePQwc2l0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000006, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Signed-off-by: Mateusz Guzik --- kernel/exit.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/exit.c b/kernel/exit.c index 1eb2e7d36ce4..257dd8ed45ea 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -248,9 +248,10 @@ void release_task(struct task_struct *p) cgroup_release(p); + thread_pid = get_pid(p->thread_pid); + write_lock_irq(&tasklist_lock); ptrace_release_task(p); - thread_pid = get_pid(p->thread_pid); __exit_signal(p); /* From patchwork Sat Feb 1 16:31:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mateusz Guzik X-Patchwork-Id: 13956255 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id DF73DC02192 for ; Sat, 1 Feb 2025 16:31:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 74CDD280002; Sat, 1 Feb 2025 11:31:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6FD39280001; Sat, 1 Feb 2025 11:31:34 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 59E08280002; Sat, 1 Feb 2025 11:31:34 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 39B6F280001 for ; Sat, 1 Feb 2025 11:31:34 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id BAB231218F4 for ; Sat, 1 Feb 2025 16:31:33 +0000 (UTC) X-FDA: 83071916466.25.E134AB6 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) by imf06.hostedemail.com (Postfix) with ESMTP id BE37C180007 for ; Sat, 1 Feb 2025 16:31:31 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=gQsw3zu5; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.208.43 as permitted sender) smtp.mailfrom=mjguzik@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738427491; a=rsa-sha256; cv=none; b=dLiVmC/t7Gzi00Z7Wz5kju5xe5wqFN3y4hJCDe9M2Hc/Yz2DwqxNJ3kxawJZcEBDKJquk4 MrOi3tgsU6oyAF06Rr5XFBEZDEYPnhUeDTz0PS5jusizkH2JwnxX7dIAFEEuW4HdrVwi8t cvy4swHyT5yWIsGWtZC3f0BFQT8Qslk= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=gQsw3zu5; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.208.43 as permitted sender) smtp.mailfrom=mjguzik@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738427491; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dahzR0UxsGypw5SX9Oc+7ltkwZX50Rxb2ddXibPMRZo=; b=C52Aat4AZUY8a5+6pfQnf2j98cl/NmiA9Pw+rF/YKnz6J7ALPBXIY6i7TX3Q3wZxwXb9er Iw5JmqB4QDCRU8EGJS2G4firaG1+qAPrp03YAbWAXmMPg9m46cpRQsmujZV+uPuLpZxgLK 8jQlT1P9Dfspeh9RIozMb2jCjO9fCQY= Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-5d3f57582a2so7974100a12.1 for ; Sat, 01 Feb 2025 08:31:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738427490; x=1739032290; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dahzR0UxsGypw5SX9Oc+7ltkwZX50Rxb2ddXibPMRZo=; b=gQsw3zu5pJMGUogtBR+WJJuT/3M+88J330xPJZTtqLfXVp6vjvpTK4dhO97dhkWSfT VdL24N1/VIrT8EqrmcVSoEO4cy3ovlUlvchNO5OlaokoxGirWAQurAfcvbcP7ViiOdR0 TU7DsBLTRPuW86RV+Mn5T6oCT4oa1z5lrLsjSvKrZek+uESJTVSjARNWiFd1/IHctGI1 Sz2qNS+XcTFnosuDEG+8B2NZ0q7AzpbGccCvXrV7mf2dD/tQ6gUG+PCofF3cJf3drTua nSHXQCMuXUmRldg1DwA2TwiKeFS+8SkKelLdsST2USwzxBk08fv7p0EclOpVqOfT0rJ0 HiKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738427490; x=1739032290; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dahzR0UxsGypw5SX9Oc+7ltkwZX50Rxb2ddXibPMRZo=; b=LBSTyfSQ7lJDI7+WrrgG0VSYcqppIMMy4XdViNRPYfop2WmJbZPVkSZoeTjq8VpMAt uWwWWczJSdKNFEK3NourIOXlpjhnnelFGXbpXrWM2wIMKMQI1fQVpH6EcyVaQVMHDM7m ZLj8fSY1eR77DAwFC85KBslAqR1WvofgGvNwlxGaZhRHpKFOkZz/JYXh6w0Y9yifPkqx muzxCXOF1255/oufhy71xUIG9J6XGNHODpCiwyVk8rbl5kCW+XB8Xm3mrHsEwOsAifP3 iU7ViPHFo8YPCvscbymss6kEoXeDGP6kL6/vxVSO6a+aq+tq2qx0iwJUxG4lkNQgLqJS zDCw== X-Forwarded-Encrypted: i=1; AJvYcCWsuL9XKiItTg/nHngh608vrCsN0ZgH8blz8mJJACzINekHBM7VmTI9z1nCQDbOnYkVt6EGSg6WXg==@kvack.org X-Gm-Message-State: AOJu0YwDRyW/VY4RdovpssRkWeREMZ5Ma1R9KyrSomz0eEnjdoZmTl/9 Rk6bmek6HI69mGShss4GKLg8At+ufDXye5bEJ9I5Wq7X8Y3Rp+Q5EfRhuQ== X-Gm-Gg: ASbGnctLgHZbLkuhh2rMZRUNArUBYP4vE2/MIJnmaKF8qO5WzJCtCABZ7MlR1UcgaPd jsDPX7rEE082Ab2uwPZfDrNtDJ5/j628PsmJb1ZgEmov2WyVTDnixrkEnUhheoWjMEVHOyM6IJX wfdmNjRyyduwoUHz3PpIIhLrd3mca7HN468UibRcETjDPaBm5EEfHIPzXou08GP+wTUKtdZZLOI RF8+sqcUpFRlAoGCLSCUG/ZpsPpho+PpmchmW1CxvOwmDWdHbcqC7Gfpq7/F8kpOvCmYyAvC833 mG2tSIUFpLed3U69N7f5baU8RBNZWMtMeg== X-Google-Smtp-Source: AGHT+IFZHEIO8U5RqJXJbo7DHyIgBpdE5v9HITImIJ/GuVeKkP/Vgt/hmam0AcjLWutOLfeAg8IQfg== X-Received: by 2002:a05:6402:1d55:b0:5dc:92a9:8a5 with SMTP id 4fb4d7f45d1cf-5dc92a90b78mr2511527a12.6.1738427489352; Sat, 01 Feb 2025 08:31:29 -0800 (PST) Received: from f.. (cst-prg-25-223.cust.vodafone.cz. [46.135.25.223]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc723cff72sm4636959a12.15.2025.02.01.08.31.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Feb 2025 08:31:28 -0800 (PST) From: Mateusz Guzik To: ebiederm@xmission.com, oleg@redhat.com Cc: brauner@kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mateusz Guzik Subject: [PATCH v3 3/6] exit: postpone tty_kref_put() until after tasklist_lock is dropped Date: Sat, 1 Feb 2025 17:31:03 +0100 Message-ID: <20250201163106.28912-4-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250201163106.28912-1-mjguzik@gmail.com> References: <20250201163106.28912-1-mjguzik@gmail.com> MIME-Version: 1.0 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: BE37C180007 X-Stat-Signature: h8qpdbyo51e1xzgdnfyxniedm3fsjnou X-Rspam-User: X-HE-Tag: 1738427491-493110 X-HE-Meta: U2FsdGVkX195NgaRcTyAlNnEmg5PzbU6r39BYEgKvmHTn8YbXU1z9sIcMaWTCxwv3ue6+AZduVHKTS9TuLLYXRb1W8vqK2CNpwU5TH4fHxWXYgjwxyuyYHBnSkk8P+AG93C+tde1kSj4hAwxSi5QyxaZwvBdeN4JZ5hYhEpD5Tds0ZMELaa6gP7KUS8cMgc8ALfOjMUmeN9KF7yTereYcCbfWsacKo7+I7o3Q/jxsDPuyrMdUWBsPKUooUs2f85zyr+iafm6ZmAyE3Zwxd7xsRsTQi8+kvkScLs5sMMVx4vITFI86H/y+uRP4PaSq5FH20kWUFuWAccOSQ5xOnMQ7aUVYTizhCczZ2yARoJyeUiAWjGvg7y1+uU994KLz3jswdmmUTk6YDs4MEbYavfLXqrRYwnsTPuYcSizVQeBuDmrRj/HfmwfuUprsDDDzFWosPppmb3t8nVFkGCkd4fZP8tcp376BKu62gAG4NSqbMy4AiuNTdSjerHG7PJ0DZuGueEiLokZ8ZzZE55zjAFnhye1mW6BDDo8frrjX1BGXMnz6o6dX4hAmVn2fbn2EK70vuW/3UFLNfR2EjC/sqGqM6+aisgXkSgo3EWUnPECinAIJnnc0UW66A8kcOakGEj7MTtAvJ6TrgwSoSnmj/W3xBw/5KRQ1T6dOzTpSL8nNcHr212RWSeHtjIoaE1LH8gryc/GymmsYJ2dz/bp5ZFnxAqU5b9ibY2WORMoF3tUgWkx6rPWFhXuAaRqNs+Fe/mm4lamQSmlmmEEHvUrId5HepUI3h9C1+lVfbgwFYwNET8W3tPSTR4Tn3ZYdElfpgqxyX226eVJnXasmN1QLEie63p5xdtBSzVJ9v3/kYsY++gOvcUleF3RlBV4ujHES/gEHJx0il/n4vsn29cDE45wPFd3hVGtXMhbzw0ARDmO/yRudcH5NmaucaOqqUx/CN0JHsQniQGsUXxa7DJJejR 3VPIv498 DjuJigtLPjE8B6JH8A0CY+65OIZmF7IV3eCP29S5j63vBW3qaES3m/cL3bjZdUjx/to5yoTDFP3mlhNOE7/Td094NPAVJE6daUMztqfyEifUCwH8Wu7deFSYxHJh8kZXsnUXkjjYreeiXNegK0Ljh32A/9zglaKoJYB3sGqy+LAuIgM+4bVhz96YjUhDjKqsPH3VgHo9nicw90K3M3X/hV/V+G2BFjc5LWjkbouPUozgt5chOEiiEbGOGQgHkAbhV6OGxYNuLaxlscQ1A71/eNg8dN5qujdva3TDOcb1r+RvouDfhRMAAlYEgc1GD283gKOxHk6xvvTnQHyTTdCVUuqx6I8qjW2WKuF361ehJT0sKuzKrQoiY9TaMxkMeVJBrxYSznVodx1xiMONXuTVczqfN5If9AxG6+iBrUtuoB3zylWM= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Instead of smuggling the tty pointer directly, use a struct so that more things can be added later. Signed-off-by: Mateusz Guzik --- kernel/exit.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/kernel/exit.c b/kernel/exit.c index 257dd8ed45ea..d2c74f93f7d2 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -122,6 +122,13 @@ static __init int kernel_exit_sysfs_init(void) late_initcall(kernel_exit_sysfs_init); #endif +/* + * For things release_task() would like to do *after* tasklist_lock is released. + */ +struct release_task_post { + struct tty_struct *tty; +}; + static void __unhash_process(struct task_struct *p, bool group_dead) { nr_threads--; @@ -141,12 +148,11 @@ static void __unhash_process(struct task_struct *p, bool group_dead) /* * This function expects the tasklist_lock write-locked. */ -static void __exit_signal(struct task_struct *tsk) +static void __exit_signal(struct release_task_post *post, struct task_struct *tsk) { struct signal_struct *sig = tsk->signal; bool group_dead = thread_group_leader(tsk); struct sighand_struct *sighand; - struct tty_struct *tty; u64 utime, stime; sighand = rcu_dereference_check(tsk->sighand, @@ -160,7 +166,7 @@ static void __exit_signal(struct task_struct *tsk) #endif if (group_dead) { - tty = sig->tty; + post->tty = sig->tty; sig->tty = NULL; } else { /* @@ -207,10 +213,8 @@ static void __exit_signal(struct task_struct *tsk) __cleanup_sighand(sighand); clear_tsk_thread_flag(tsk, TIF_SIGPENDING); - if (group_dead) { + if (group_dead) flush_sigqueue(&sig->shared_pending); - tty_kref_put(tty); - } } static void delayed_put_task_struct(struct rcu_head *rhp) @@ -236,10 +240,13 @@ void __weak release_thread(struct task_struct *dead_task) void release_task(struct task_struct *p) { + struct release_task_post post; struct task_struct *leader; struct pid *thread_pid; int zap_leader; repeat: + memset(&post, 0, sizeof(post)); + /* don't need to get the RCU readlock here - the process is dead and * can't be modifying its own credentials. But shut RCU-lockdep up */ rcu_read_lock(); @@ -252,7 +259,7 @@ void release_task(struct task_struct *p) write_lock_irq(&tasklist_lock); ptrace_release_task(p); - __exit_signal(p); + __exit_signal(&post, p); /* * If we are the last non-leader member of the thread @@ -280,6 +287,7 @@ void release_task(struct task_struct *p) sizeof(unsigned long long)); release_thread(p); put_task_struct_rcu_user(p); + tty_kref_put(post.tty); p = leader; if (unlikely(zap_leader)) From patchwork Sat Feb 1 16:31:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mateusz Guzik X-Patchwork-Id: 13956256 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2667FC0218A for ; Sat, 1 Feb 2025 16:31:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A5AD5280003; Sat, 1 Feb 2025 11:31:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9E4A6280001; Sat, 1 Feb 2025 11:31:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 85DBF280003; Sat, 1 Feb 2025 11:31:37 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 65438280001 for ; Sat, 1 Feb 2025 11:31:37 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 2B1EFB1A27 for ; Sat, 1 Feb 2025 16:31:37 +0000 (UTC) X-FDA: 83071916634.01.83B139F Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) by imf22.hostedemail.com (Postfix) with ESMTP id 43E13C0007 for ; Sat, 1 Feb 2025 16:31:35 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VyBtPSQB; spf=pass (imf22.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.48 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738427495; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dyyFSflvKZq+gCyw4L+aRmZfdJK9jjjI1PXfRtKE+Wg=; b=mGqX716ValaaTsxalbF1UV0IAoV2e5e5GUfswn6fvjX74P0ch8b5Z7V1e22J1f3Bfv9URa XHR35ojiXhFv7aNVugkA7sis6OpRBtJZKfctSkPrjuN85Mq/QD4XEGyXVjppt/vMQmJZ6Y RUujl1juWGiKEIvpSAInJizh5rK4obA= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VyBtPSQB; spf=pass (imf22.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.48 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738427495; a=rsa-sha256; cv=none; b=uIk69tQaauKQ4C4kYEPW3HnhWvTtpgtqfhEJT76GQ1XNdbibqgFRiVCLoP1jlCxOudZ+ce XUuDsWnD1tO8bJZ6aIAgsCwu917waEE7djwBtaosgjEcn5635yMkyThLDAQXDGzSV9RGI7 q8O4hkvp/BpBnZz5PeihHqAKC811bgo= Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-ab698eae2d9so594678266b.0 for ; Sat, 01 Feb 2025 08:31:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738427494; x=1739032294; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dyyFSflvKZq+gCyw4L+aRmZfdJK9jjjI1PXfRtKE+Wg=; b=VyBtPSQByfdlG1ma1Gsw6PmpkFl28njm4LBBtPAUb8KaxFNzF5fNI5H3SVEF/atTbd NB7Z6rCO3M1A4876AbrYTyPcCmi89BLKq5Q+Fw7lzcQ8Zt7nHcWRHMY1I3+A3d6k55VB OSM+BGTuaBdc4qMKFbg8bn8ItEH/fn+Y/iz16Ce1jeYC3Ek0d6d2Uf0fS2+uIgmcludO kcAWzj26iYG4S98PHm9KwjL0s0eUO33lfcFhEntHcjpV+PfD/mpFQfFjuU5OwLiPpumx EIOLHAWxBVtlvS9t2H1w/ZLmU/FqSsWigRftyh89wXDvilp1prEcYpcDFTVES5DS8CrW pmZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738427494; x=1739032294; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dyyFSflvKZq+gCyw4L+aRmZfdJK9jjjI1PXfRtKE+Wg=; b=venC0nFl0NBm/5mrKasMqRdlcaB6Fs/c3Z4mbFhcfBRHizkLv/9A74GYUVEuSsoUSw zUVe0Akj824OaRmZyQeTwrSFJW6jLKEofvwdOmGr5WWGqedor2JiRsQxIpO++Gb4JiH1 32oFj5EO1YVVemirkE0jEvu7LaC1TLyNFkWDfLf8AM2IgUADHPkeweKWOZ8g73sK+twW KMXOPc8Vqw++G8xcwFlWUCVO3wFyguSUklhOPpL3xuKrf5gXnU0jeU2G6ZVV0OA1WCHd 4sRqZjxNCBz8P6j0ltwRxziCQYO2R1v6WV9pdmiV5Pz4b1sN7YvZLgwVLVGDyiqKeXNL sRWg== X-Forwarded-Encrypted: i=1; AJvYcCUATGvJMpXeqPpnxRhDsh84qVizTOyqC96C5jGBaVxA6RXfj3r86u7RFGprG51ZGHtI+1piclWv9A==@kvack.org X-Gm-Message-State: AOJu0YwLpiITt4nYuCXtk8dPqRNs77hwPU1eQMMxhxM+bUmAMVF1DtIU OgaIVzo/ZE3/1N7OYBU7T32N+gOPa11emd6MW8Lo7XSphrOlQDFt X-Gm-Gg: ASbGncsUy2CZJa3AgNb/W4aS0ieID8wLIj3ENpareIiKOE64nrEZTZvekV/72vl3j6i 2ZYqoglaOHJNFxrYeET99LjnrgZau1BEhSWAgve1HBl8fb0ZB5kRYoJm1KqvfyPoRbLJeq9dEqw EJqaOWJyZgtTltrem/z7KUAlQaN+93vOueJeQv5nEEQwlDt2owictlcd+ZCayJTxAN3IXEgZDoS fsgzLOobpwZceuyX2hh5OMBe82eFVZYlMrMegurcIheDmMup21PUsXyYEPlg0ZT0BHdWHr5jW2I oKjbPB1SJEFm9R3fhk0V6z8bYFx4rn4xQg== X-Google-Smtp-Source: AGHT+IFqaFYGHdlE7Mgj/EaOXQAoxs/uxy0rQwtHMZ/EngGz610MENXkBznnc7SJaPbJh49JC1NgBQ== X-Received: by 2002:a17:907:7fa2:b0:aa6:6e10:61f6 with SMTP id a640c23a62f3a-ab6cfdc6724mr1500512566b.52.1738427493533; Sat, 01 Feb 2025 08:31:33 -0800 (PST) Received: from f.. (cst-prg-25-223.cust.vodafone.cz. [46.135.25.223]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc723cff72sm4636959a12.15.2025.02.01.08.31.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Feb 2025 08:31:32 -0800 (PST) From: Mateusz Guzik To: ebiederm@xmission.com, oleg@redhat.com Cc: brauner@kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mateusz Guzik Subject: [PATCH v3 4/6] pid: sprinkle tasklist_lock asserts Date: Sat, 1 Feb 2025 17:31:04 +0100 Message-ID: <20250201163106.28912-5-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250201163106.28912-1-mjguzik@gmail.com> References: <20250201163106.28912-1-mjguzik@gmail.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 43E13C0007 X-Stat-Signature: mj86og18oka6dg5pc59bjkxaijsyfa4x X-HE-Tag: 1738427495-548024 X-HE-Meta: U2FsdGVkX19hVBLSUu2ca8v3NoEuDqbk32uleNbTm8u14LtOoLEDMItwUWDULKEP2hNyLaUWB6dJyuH/xQDK0/UnVQcz6DQl7XUGmGObujRXjb2JolzvsSYo6+ZaZDRLj+MC5kJ8+TtvyOMvyrCrdkPIMbUxgSNPDVRvjRnLcYLK2+qOcDH/Hi2PWCVdJCXZoJbxgB7afGwPL8DPzgrQTVYqD0Tqut96g1tbwexqNsYL3VB5ksJBwvvvmyrNWfZzaOwStZiox0dWk1aZGKWwjMkyg3DSgPA7Li9jrLjjb0zkMv+5bmeBW+xFdZ8ZEMX3Rweu3uLEbU48b8Qil0Wafl6J53Ajgocindz44hoHz7rtbic4UMKnl+T2x+IMWrha4y1VJKeAkTgrY/kifCi8xKwlh8Uu7w1SJJpnMBq+kRJneuQViCcHsMEzLOmJ8tl0vrxeD1uao18BL+xNMSsuE+b7hpXomd18qZa4Rrm7P9mltmPF1oqliQyRQed5tip9lpLjAKPm8s35ZQnx9BeocqI45TDbp2J8i3DjSCKL4L9f1zgNKuykaa7XxgRP7FwiQyqaqoasFdCX08bwG601ojk46GNT/XEw4O0mZ0j1sR9WSlW5+ezy0JHXA3zuB6LUltcCuL18y2WCmabWAL7/GDcgYvQTglbYMfM8IMEAbD3/rI2mfSt/CZWgAfSUm5f/sFRP9a0Gtq6PwBhhqYTjcrUYtioDvFpSHZToDTkAGH/cKvDZqB0q8XS1dlgWv/xoaUVXI69IqLDZzPy8zCYCMyZoK4CZm72n/fHRqLvpAGkHD307gf9NlBMPxKQe4DHBUGBKnnWf/Iel6OEg8ZEyGaVXSIpZtwh5YCd4RXv8hRZfOh1fCmxg+2Xgeyk51EDn6OrBvgB7i7rPN1M/DFOKwAG0LS38IdHouAXoOuhXE21+N8iC6nbgsqX3G8VHxj0ddkHAcpJwcRU3bTkizBs zkfTcMsu t+bLBfyC50WEUgQF/2yglNMALD9UhUkAbd0umuVWlLKnlXpl+xg5hnW6ix/msHIjkqosxRbwdIIhZDASR2xkBOH9uIYBqyn+T/ASOsx4nagBrQ5OHk1AvNbB//Cjjr+MQ2DFAgeY92NIFe9mjuCsOZG8Vfwj5Fwj2yd4W2IyX5plJQtOmtqgm4o94g3hz43t6v9UUMuN7hxtmSv84I89YeVYvP0OHtZkzzSr5nYuFD/DfuwM/dBsoK2YTupmdq54+0LQZiLKSbm9Qkskx1zsJer2sEuBPQAAyiwtbNCUH00EQUCIjZw0vxpFN2SIYG4yeWO+eAz/cE8diVM0zr5kemMbKr23ZuTd+y+IV2+ZdaaG8M3iQilhpS4gxMvo+iDdOvK50i7Evt/5wezfs32ohuvDNGsfGLvvgqGHp X-Bogosity: Ham, tests=bogofilter, spamicity=0.000471, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Signed-off-by: Mateusz Guzik --- kernel/pid.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/kernel/pid.c b/kernel/pid.c index 924084713be8..2ae872f689a7 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -339,17 +339,23 @@ static struct pid **task_pid_ptr(struct task_struct *task, enum pid_type type) */ void attach_pid(struct task_struct *task, enum pid_type type) { - struct pid *pid = *task_pid_ptr(task, type); + struct pid *pid; + + lockdep_assert_held_write(&tasklist_lock); + + pid = *task_pid_ptr(task, type); hlist_add_head_rcu(&task->pid_links[type], &pid->tasks[type]); } static void __change_pid(struct task_struct *task, enum pid_type type, struct pid *new) { - struct pid **pid_ptr = task_pid_ptr(task, type); - struct pid *pid; + struct pid **pid_ptr, *pid; int tmp; + lockdep_assert_held_write(&tasklist_lock); + + pid_ptr = task_pid_ptr(task, type); pid = *pid_ptr; hlist_del_rcu(&task->pid_links[type]); @@ -386,6 +392,8 @@ void exchange_tids(struct task_struct *left, struct task_struct *right) struct hlist_head *head1 = &pid1->tasks[PIDTYPE_PID]; struct hlist_head *head2 = &pid2->tasks[PIDTYPE_PID]; + lockdep_assert_held_write(&tasklist_lock); + /* Swap the single entry tid lists */ hlists_swap_heads_rcu(head1, head2); @@ -403,6 +411,7 @@ void transfer_pid(struct task_struct *old, struct task_struct *new, enum pid_type type) { WARN_ON_ONCE(type == PIDTYPE_PID); + lockdep_assert_held_write(&tasklist_lock); hlist_replace_rcu(&old->pid_links[type], &new->pid_links[type]); } From patchwork Sat Feb 1 16:31:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mateusz Guzik X-Patchwork-Id: 13956257 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7382C0218A for ; Sat, 1 Feb 2025 16:31:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 37DC9280004; Sat, 1 Feb 2025 11:31:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2DE78280001; Sat, 1 Feb 2025 11:31:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 131B8280004; Sat, 1 Feb 2025 11:31:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id E7746280001 for ; Sat, 1 Feb 2025 11:31:40 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id AF011B1CD5 for ; Sat, 1 Feb 2025 16:31:40 +0000 (UTC) X-FDA: 83071916760.30.339841B Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) by imf26.hostedemail.com (Postfix) with ESMTP id A73AD14000F for ; Sat, 1 Feb 2025 16:31:38 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ig7gwdCI; spf=pass (imf26.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.208.42 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738427498; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9gAV0esEOMPqj1wMAKXBZQiiLf9TUFsrr9mzaYygi1E=; b=V4RuSjo6nbV309ZD4srTSU2qzLgkydf4lZHT+dQGivMCbNDUBHpbu9DGNpgKhVc8vn8l25 A6sO6EBM2zAf37Y5EN0+n7pwnQzzM8dFKbx5BD7AhnFxs3tTr8jKWKVoEF0xNY3KVHV9W6 evHg6EConY5t3O6MnpLzPzFZYCf9jT8= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ig7gwdCI; spf=pass (imf26.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.208.42 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738427498; a=rsa-sha256; cv=none; b=Sqq/foRsaf49lOQiEatMarNvGTNXDGFaL9EMeQ8mGMwtfc0KqNGnj2MQrApw4m1Za1BEWg XN5+LtLfKJTf1jn7dbjk5UC2ADO59p+Fr1FVoFuHwwPoMKdEiYoV6ONaipY2eT28HK1QIX yHiMvqkWx8n2wOOuJOmky+MdBJ6B7lY= Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-5d9837f201aso7574766a12.0 for ; Sat, 01 Feb 2025 08:31:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738427497; x=1739032297; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9gAV0esEOMPqj1wMAKXBZQiiLf9TUFsrr9mzaYygi1E=; b=ig7gwdCIEsXUs2CpkD+OX+uKmzVyBai+Kjo9yiMj1vlLkwvqNdGkvOYQ8yiqwF4BjH DzJymg8AZK/cQOiikENgcTGE5TUre74YaVJFdt8nShePTokIqoJ8X2D7jyJtiaii0oSO b4ttgfSU0CDLNHMa0Ik2q6t11c9h71aBkjBnhyf4jmnDeelSIGzbdLzv3tnQDxAOyPI5 m+Wb4AuBaIfiRiRTFsIuO9jjw9x0AsSJvnM9KkbC1qIObugKDbWRtJbke0gTiLJ2r/FA RJmk4O7tMun5X/tydj/uTxeE4w1iGEakaAHbpmD9UbTgHqV4m5TvCff7Fc+uzyfX3KYk bTcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738427497; x=1739032297; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9gAV0esEOMPqj1wMAKXBZQiiLf9TUFsrr9mzaYygi1E=; b=cXhZolEO2cfYanGJ5mabL6Z1AUDVxLIH81v5ySt2xpTv8HlPN15g06FjoruvV0g3wb u/5LbIhDID35zYiieffFiM106rUEbl7EmzCjy0e989oXDn7tE9OomBN29jTuCfbQM5No tTlYpIeL/veP/j8ukkOyEdYezAeP7MF+6Uc1/fcrTwkSziQKGdjZ+WjBgBo24eTIqr2k sX+HU9B/Ltm/8Iisw1+2624VZxhi6RAHa9qcDwpn66X9klhmmv+wG4FKm3eDHBDrQxOC uvIxzasbE2r61nvMzCSjtmVFyObx+CaOS5a8AipCqfzGGKyTdVe3lCrOAF5EKWsdc3CA KyTQ== X-Forwarded-Encrypted: i=1; AJvYcCXhIHA9DhqeFDkAL+8wR2JydMiqAnbVvlTRZ9ejN1wrLHSF0DGaOOfquGM3PCQ68jPFdd70dlhRJQ==@kvack.org X-Gm-Message-State: AOJu0YwfXupxkyJ47jPvED9wvosUjkoHBv0/fgo577yddHBxA+1nHIA3 kX+uRvGrVlu1ZNiPAJtLp5TP+fwRspNF+2yM/KuidZGMbARvKPTcBjwSuA== X-Gm-Gg: ASbGncv5/xQHaIXtktKaLACI1qt2qc8NwryzkaxVu1Nh4Ay5JJfllKRabA8PSSmTk7e KPsows2i97WfM5VH5pJ+ORQ5Qk3ouuSH9ckFn4jSmWr1f4LH91nfSXveubSCHM6BPGAZtm/d0Rs 0P5AYzef7IidCusqBExhORLPnR/A8yi2oB3jn7HtOQ4chR/x0zWHhDgAxEyKgLPmyzHfB7lNik3 s56xQ9+ntWZhOsykxQHbtbKkkbkcnRqVnAbiGyWoS9ICEJpwzsHVjkkASULJ1jX96ZLshXADQrO D0dJmJORjp57/qpQoCWB8KW1Jl14p/NyrQ== X-Google-Smtp-Source: AGHT+IF4wAmURNewahoQOVfYM6M5jXjyc6eKsbposvu/SCSkZtrKzenFnpL1jbA6kPR8ePzJ8PJdEw== X-Received: by 2002:a05:6402:847:b0:5dc:783e:3efe with SMTP id 4fb4d7f45d1cf-5dc7fbb58ebmr8188423a12.6.1738427496993; Sat, 01 Feb 2025 08:31:36 -0800 (PST) Received: from f.. (cst-prg-25-223.cust.vodafone.cz. [46.135.25.223]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc723cff72sm4636959a12.15.2025.02.01.08.31.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Feb 2025 08:31:36 -0800 (PST) From: Mateusz Guzik To: ebiederm@xmission.com, oleg@redhat.com Cc: brauner@kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mateusz Guzik Subject: [PATCH v3 5/6] pid: perform free_pid() calls outside of tasklist_lock Date: Sat, 1 Feb 2025 17:31:05 +0100 Message-ID: <20250201163106.28912-6-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250201163106.28912-1-mjguzik@gmail.com> References: <20250201163106.28912-1-mjguzik@gmail.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: A73AD14000F X-Stat-Signature: r48gmd3eiphxtj4wdeycpxp948cxnud8 X-HE-Tag: 1738427498-741894 X-HE-Meta: U2FsdGVkX1/mZZiuTsjaIuRYF77/qRt9u9Ay8U+yNjb6qx74EObI3NQraxZ4EdVAHDt1cqgUqj5dy3omMrx59EMw2dCLyEC/MRRMca4M+ZwsFFN6bUER+A0WUcglpGwnrzQ1QLT7zkOdygagJDF68aGLuXlefVAReSHukMBn3/G8J009IlQVdfCn61eO8IJ0Wl1PkVBnPJiMHLmvGudxiu8bTiMAckPAKUl4VA/nckbkqU2PZi4RPyWsiE1lp0os/4IrkWmjMLkQKrg2ddIsv6AClVYsJl6EaBcMF6bQJ7e3bmFNNWYG2AU/4IIZNO5EkBUYkNiPtbt+7iC/oRTjT3U/y1kyO+jMes/B5RzwHlre01P4rWAurvZSc2qpSDpmUWG2R1X84/xI3DmuyusnNa2jLFvHMIBQ3WRvh+b/RTdwBIt31YYGQVcYJDrVegqhRR/JHJIRP8FQcRktc47+IaYwirwjAMc7gcxNBSc1VvBC1toV2IphH4+CwW/6t4AWDvQCqAx1V4+2UwwOTsZFjOEihJkjmX7dP9WjRE+o2CEe6lzTDToUHyab5YNwCQp3z0BwQmgPpJ4Zj6HweUWJBOXMZBfimZcx5CwbbGjKcaZ1kJ2+MjhhPw1a1rnD0uapUj8yzP9NdzZlyOZd6k1/qQdM5ecSa5zQkjowitID+5PVZ6PkXKvTvCgripGHoVYqwLmLg7reVW5RCAtsWIrTSCnkvKW9LYzY4iZa5wdThV8FgnUVPmj3xw49xwCN3HjHTHrFisGCiIa2ckE2S2/UbR0VzZQvFnV4Rdur1o193fXFVinscqBH9D9lxRdGAMWwoA8i/da4WGtWAES3FmsKNWl1GTWc1jUmW//sznR83iXBtqG0W+JdqQmvZQLcSr3wo1f0xo1F8LxNJrvd8Yyj+ZLWFi9qRdLwMyUOk/fQbAcbG9aaBMb4O4Lt3FnyFAU8ww8SDdrfEndfwjapuaB N+5MyvyN C8igowMkbyU6y9krqziHOthOGlbpMETdA+PK3ET177AK6BYPAdpzrTab4i39Y0DGXKcgB8A8l7LDTU7d9FC1L5+4B3MpkQX0P3EvBDpcRvcFXNfmbEvKoZBsvz1B1u46M/ETB5O8sK427/QTL+kaChKMooIhSPhQXUREXQjY2NxmIFe0H+1gAdLcbWi+C/XKq0YbBvZgE31RM/sTObBt9UkY69XdCzDH5zlRpACEmOD72zB0MHlpqFsBeHaFeJdTFXs4NfAeRpxmQ80t1mVw5iYZHDAp1TsY7C+I5+bJ+tZlFijhEpT0O5JGG0LyhvaW7205zb6Q0q5AIgoqpk2yOsDXi124ggf1NZWhqIvDp0D0fMbsdq820Hlgv6XIuy4dzqN0AU5sZyTInLg4SQdz0gebv+6sV51fiZodR X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: As the clone side already executes pid allocation with only pidmap_lock held, issuing free_pid() while still holding tasklist_lock exacerbates total hold time of the latter. Signed-off-by: Mateusz Guzik --- include/linux/pid.h | 7 ++++--- kernel/exit.c | 15 +++++++++------ kernel/pid.c | 44 ++++++++++++++++++++++---------------------- kernel/sys.c | 14 +++++++++----- 4 files changed, 44 insertions(+), 36 deletions(-) diff --git a/include/linux/pid.h b/include/linux/pid.h index 98837a1ff0f3..311ecebd7d56 100644 --- a/include/linux/pid.h +++ b/include/linux/pid.h @@ -101,9 +101,9 @@ extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type); * these helpers must be called with the tasklist_lock write-held. */ extern void attach_pid(struct task_struct *task, enum pid_type); -extern void detach_pid(struct task_struct *task, enum pid_type); -extern void change_pid(struct task_struct *task, enum pid_type, - struct pid *pid); +void detach_pid(struct pid **pids, struct task_struct *task, enum pid_type); +void change_pid(struct pid **pids, struct task_struct *task, enum pid_type, + struct pid *pid); extern void exchange_tids(struct task_struct *task, struct task_struct *old); extern void transfer_pid(struct task_struct *old, struct task_struct *new, enum pid_type); @@ -129,6 +129,7 @@ extern struct pid *find_ge_pid(int nr, struct pid_namespace *); extern struct pid *alloc_pid(struct pid_namespace *ns, pid_t *set_tid, size_t set_tid_size); extern void free_pid(struct pid *pid); +void free_pids(struct pid **pids); extern void disable_pid_allocation(struct pid_namespace *ns); /* diff --git a/kernel/exit.c b/kernel/exit.c index d2c74f93f7d2..a90a0d159570 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -127,16 +127,18 @@ late_initcall(kernel_exit_sysfs_init); */ struct release_task_post { struct tty_struct *tty; + struct pid *pids[PIDTYPE_MAX]; }; -static void __unhash_process(struct task_struct *p, bool group_dead) +static void __unhash_process(struct release_task_post *post, struct task_struct *p, + bool group_dead) { nr_threads--; - detach_pid(p, PIDTYPE_PID); + detach_pid(post->pids, p, PIDTYPE_PID); if (group_dead) { - detach_pid(p, PIDTYPE_TGID); - detach_pid(p, PIDTYPE_PGID); - detach_pid(p, PIDTYPE_SID); + detach_pid(post->pids, p, PIDTYPE_TGID); + detach_pid(post->pids, p, PIDTYPE_PGID); + detach_pid(post->pids, p, PIDTYPE_SID); list_del_rcu(&p->tasks); list_del_init(&p->sibling); @@ -200,7 +202,7 @@ static void __exit_signal(struct release_task_post *post, struct task_struct *ts task_io_accounting_add(&sig->ioac, &tsk->ioac); sig->sum_sched_runtime += tsk->se.sum_exec_runtime; sig->nr_threads--; - __unhash_process(tsk, group_dead); + __unhash_process(post, tsk, group_dead); write_sequnlock(&sig->stats_lock); /* @@ -285,6 +287,7 @@ void release_task(struct task_struct *p) put_pid(thread_pid); add_device_randomness((const void*) &p->se.sum_exec_runtime, sizeof(unsigned long long)); + free_pids(post.pids); release_thread(p); put_task_struct_rcu_user(p); tty_kref_put(post.tty); diff --git a/kernel/pid.c b/kernel/pid.c index 2ae872f689a7..73625f28c166 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -88,20 +88,6 @@ struct pid_namespace init_pid_ns = { }; EXPORT_SYMBOL_GPL(init_pid_ns); -/* - * Note: disable interrupts while the pidmap_lock is held as an - * interrupt might come in and do read_lock(&tasklist_lock). - * - * If we don't disable interrupts there is a nasty deadlock between - * detach_pid()->free_pid() and another cpu that does - * spin_lock(&pidmap_lock) followed by an interrupt routine that does - * read_lock(&tasklist_lock); - * - * After we clean up the tasklist_lock and know there are no - * irq handlers that take it we can leave the interrupts enabled. - * For now it is easier to be safe than to prove it can't happen. - */ - static __cacheline_aligned_in_smp DEFINE_SPINLOCK(pidmap_lock); seqcount_spinlock_t pidmap_lock_seq = SEQCNT_SPINLOCK_ZERO(pidmap_lock_seq, &pidmap_lock); @@ -128,10 +114,11 @@ static void delayed_put_pid(struct rcu_head *rhp) void free_pid(struct pid *pid) { - /* We can be called with write_lock_irq(&tasklist_lock) held */ int i; unsigned long flags; + lockdep_assert_not_held(&tasklist_lock); + spin_lock_irqsave(&pidmap_lock, flags); for (i = 0; i <= pid->level; i++) { struct upid *upid = pid->numbers + i; @@ -160,6 +147,18 @@ void free_pid(struct pid *pid) call_rcu(&pid->rcu, delayed_put_pid); } +void free_pids(struct pid **pids) +{ + int tmp; + + /* + * This can batch pidmap_lock. + */ + for (tmp = PIDTYPE_MAX; --tmp >= 0; ) + if (pids[tmp]) + free_pid(pids[tmp]); +} + struct pid *alloc_pid(struct pid_namespace *ns, pid_t *set_tid, size_t set_tid_size) { @@ -347,8 +346,8 @@ void attach_pid(struct task_struct *task, enum pid_type type) hlist_add_head_rcu(&task->pid_links[type], &pid->tasks[type]); } -static void __change_pid(struct task_struct *task, enum pid_type type, - struct pid *new) +static void __change_pid(struct pid **pids, struct task_struct *task, + enum pid_type type, struct pid *new) { struct pid **pid_ptr, *pid; int tmp; @@ -370,18 +369,19 @@ static void __change_pid(struct task_struct *task, enum pid_type type, if (pid_has_task(pid, tmp)) return; - free_pid(pid); + WARN_ON(pids[type]); + pids[type] = pid; } -void detach_pid(struct task_struct *task, enum pid_type type) +void detach_pid(struct pid **pids, struct task_struct *task, enum pid_type type) { - __change_pid(task, type, NULL); + __change_pid(pids, task, type, NULL); } -void change_pid(struct task_struct *task, enum pid_type type, +void change_pid(struct pid **pids, struct task_struct *task, enum pid_type type, struct pid *pid) { - __change_pid(task, type, pid); + __change_pid(pids, task, type, pid); attach_pid(task, type); } diff --git a/kernel/sys.c b/kernel/sys.c index cb366ff8703a..4efca8a97d62 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -1085,6 +1085,7 @@ SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid) { struct task_struct *p; struct task_struct *group_leader = current->group_leader; + struct pid *pids[PIDTYPE_MAX] = { 0 }; struct pid *pgrp; int err; @@ -1142,13 +1143,14 @@ SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid) goto out; if (task_pgrp(p) != pgrp) - change_pid(p, PIDTYPE_PGID, pgrp); + change_pid(pids, p, PIDTYPE_PGID, pgrp); err = 0; out: /* All paths lead to here, thus we are safe. -DaveM */ write_unlock_irq(&tasklist_lock); rcu_read_unlock(); + free_pids(pids); return err; } @@ -1222,21 +1224,22 @@ SYSCALL_DEFINE1(getsid, pid_t, pid) return retval; } -static void set_special_pids(struct pid *pid) +static void set_special_pids(struct pid **pids, struct pid *pid) { struct task_struct *curr = current->group_leader; if (task_session(curr) != pid) - change_pid(curr, PIDTYPE_SID, pid); + change_pid(pids, curr, PIDTYPE_SID, pid); if (task_pgrp(curr) != pid) - change_pid(curr, PIDTYPE_PGID, pid); + change_pid(pids, curr, PIDTYPE_PGID, pid); } int ksys_setsid(void) { struct task_struct *group_leader = current->group_leader; struct pid *sid = task_pid(group_leader); + struct pid *pids[PIDTYPE_MAX] = { 0 }; pid_t session = pid_vnr(sid); int err = -EPERM; @@ -1252,13 +1255,14 @@ int ksys_setsid(void) goto out; group_leader->signal->leader = 1; - set_special_pids(sid); + set_special_pids(pids, sid); proc_clear_tty(group_leader); err = session; out: write_unlock_irq(&tasklist_lock); + free_pids(pids); if (err > 0) { proc_sid_connector(group_leader); sched_autogroup_create_attach(group_leader); From patchwork Sat Feb 1 16:31:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mateusz Guzik X-Patchwork-Id: 13956258 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE5B3C02192 for ; Sat, 1 Feb 2025 16:31:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 63F5C280005; Sat, 1 Feb 2025 11:31:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5EDAA280001; Sat, 1 Feb 2025 11:31:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 48D11280005; Sat, 1 Feb 2025 11:31:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 28E00280001 for ; Sat, 1 Feb 2025 11:31:42 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D06F61218E3 for ; Sat, 1 Feb 2025 16:31:41 +0000 (UTC) X-FDA: 83071916802.10.ACDD39D Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by imf17.hostedemail.com (Postfix) with ESMTP id DBD6540003 for ; Sat, 1 Feb 2025 16:31:39 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=MFDJVu+u; spf=pass (imf17.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.208.46 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738427500; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=KxrKCmOPbL9lf6kX3GnLZapq/62phjaxdfTVTGbwAvo=; b=ZquqDm+NaURdAGIeFZSS1BwY5d5RFU0YRllc0f10xMe8zKsZhmxZP8Z/kwV4NMjeSw2VkP WeNsFUMN6EVDyu4cMkfDpuJRhcaX4qSV6nMEVuj0uSNGHI/rWiaHJnFdqBqaCv+wdwjmuD frDn8MIOYd09a5OvVgick2dWjwf8I44= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738427500; a=rsa-sha256; cv=none; b=ZCtt35Ow2fpZorcEEVwxdKmQqKHI5YpvvQQ50OpkITDe7HS35AAVATEqiVI8QFBdfcslgK h3OscuCV+umul5Sw6p7QcInYocAXnhmIfySa3s8C9wZKlFbJjL4MVm97LnCKeqUhXDpM5Y fV1YExudox+R/OCQRp8+xC7PhEeCzkc= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=MFDJVu+u; spf=pass (imf17.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.208.46 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-5d3ecae02beso4093261a12.0 for ; Sat, 01 Feb 2025 08:31:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738427498; x=1739032298; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KxrKCmOPbL9lf6kX3GnLZapq/62phjaxdfTVTGbwAvo=; b=MFDJVu+u3iGMxOPcO+MmPVWQc3EOff3k+ElTwcV+BP6Rg2Ntcvb7+0Im9pknuMrQPw GZ/xHqdCZqEX01A//Ri0MSs80qgWILeEe0OCjqA2/bappwWp3BAbWzSr3c5cTzQhgu5A KmwHntUJas6vBDOjPc+d6aub1qhOcwWeIXSU10GE51FtXbqilgjpvwlKxefXwJD4Clji tD2339NnyiCLPC6nEYODQahfn9DStLoqlQ6pleU6rj3IMsqHllVBNVv6orgwOlF+CKZe 2aWW7eah01Vg921YjGRW97uv50jS8NRhd9OmOxs+Jj2gouM7/0sW8dixOZRxcIMy2OvL mqCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738427498; x=1739032298; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KxrKCmOPbL9lf6kX3GnLZapq/62phjaxdfTVTGbwAvo=; b=liWg92H3ftcI+1uyug7fMjaOEoVDQXAMsMniAjolR6UjSOpi8NkcaEVeqlbjAsxdjR L/IRWWxihWJ7PwtX7PNm60dU8nnkWDMamPk/a50U9xKGAkogcEkoYLAPSbloK4gqENln B8p6hhLiKsGaApjsoMPDMRfWyLy0Dz6GOhou1Wj+ZRBz9pagZlqUZuGbtDOY4QQyb1PH ro3fTGo1sQ9K/IYNoJX+Pul5xonGiBSIBbfltNsB3ZpvzPzX/NPruDCcx7hRtvLICSn+ 2kNzqX3mZ1Rx4COnUmtYaYeaduzgnR+Yhhp6RSzlkqdrSKgZKvCJD04HpTyGnZgqRSof GwSg== X-Forwarded-Encrypted: i=1; AJvYcCXI/9cPv453t3RuGkV4ZmAPzWM6P4qy1ZN5BTIzPlb7S0d+rpRY4m5s4C3Q8Saf3/ZmP4GnMIY3Cg==@kvack.org X-Gm-Message-State: AOJu0YzB+VG2kGaKvMRTY8k2wy6ot+8wUSQWyNcIde4+I1zdO1exCP/b sjn7sZPKdVbXzcOne/1rhsTLLd1G3giO7bGW61x+DJeVRBS+UplZ X-Gm-Gg: ASbGncu68Xo0/OwrW1ehlemL9tEC+X/4SzULwZJblGBWAanvIEFBhH4E8B9gsI8IpKb MQgA25mhpF5l2M9AGtV1CbufjXz4NdKERUcFOkOjgT58Z17tt7LqH4DzDXbT4bgB+yN+W885jCA HUsFTNDu36qk8q8y2a8wg8rmH9gJPd77BzMxaiJaovgpmLSzW5poXaLLtEXjLLqtIF8XpVaYNRd jLRtgn+yrZFitkOQ5xMTlHECUZBE/ZFWc0vaXakY9KPw+4PL6HVrp7yGaZrXsRcu2ZO2DQxacDF nrU9/FrunO/KETojpvaoMi4qKpH/bQWk+g== X-Google-Smtp-Source: AGHT+IGwN8EDOCEWYQ+wXNUeHKgeJQKZbne3lalB1Xi6RAalLKFML7voSYY/GTyC8a3v+rsL/rd8PQ== X-Received: by 2002:a05:6402:42ce:b0:5d0:b925:a8a with SMTP id 4fb4d7f45d1cf-5dc5efc7231mr18239742a12.16.1738427498295; Sat, 01 Feb 2025 08:31:38 -0800 (PST) Received: from f.. (cst-prg-25-223.cust.vodafone.cz. [46.135.25.223]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc723cff72sm4636959a12.15.2025.02.01.08.31.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Feb 2025 08:31:37 -0800 (PST) From: Mateusz Guzik To: ebiederm@xmission.com, oleg@redhat.com Cc: brauner@kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mateusz Guzik Subject: [PATCH v3 6/6] pid: drop irq disablement around pidmap_lock Date: Sat, 1 Feb 2025 17:31:06 +0100 Message-ID: <20250201163106.28912-7-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250201163106.28912-1-mjguzik@gmail.com> References: <20250201163106.28912-1-mjguzik@gmail.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: DBD6540003 X-Stat-Signature: susqc3791qr85ux7dxs5ykr8negzbm1e X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1738427499-902441 X-HE-Meta: U2FsdGVkX1/ASwc2mmGN10D/oGbnrtyFxpNVGnPASWb3t+dAcL0xYHVWmM82YJJgg8Ogj77xnABDN1LI7wh77yyMXM0CKDGdFQNHx2EWazd7jumXxTgEcrVTaee2T6CCC1+I5JSxUvyqZ8E0NQfNz7MchpuktoqFh74ane+OPFdgbqY8H6PDZpGa+aG6xb0RYpDTakdST2616SGHPm2GAcqDMC2xAqk4V1w3TmNaiJXweOG8hjYHeb+hVbO8Gu/naIF0jJ+z0/stcseEQumxqPri7JGwUv/DZ/hIzmoWf+WcjE2FbS3foiZjKY04fLUb0z15nJh905x2MHnvQ8ucqie2dmLwDiE+iuyDpj7o6AMLv0xUGNon6SJMIjmbT4KI/iBu7LQ17VfYLYIOpi0T2XnNWJ45JCzURZLvS80Iu7Nz014ScYP9BII/eWZs6ERjJckMBTouYQcuVJNQNZb2JdS9VbvdbMHfWF4qhKWqfORcqEDdVVAkaqBHRPU91dOyRo667TyoMh4dEE7MRbbyzX613zqVlVjyz5R02OPIVZcEdQue23SD8liTIiqlpuKkrgQ/WmNZSkt1+w3XgSbNjaLdt5SIaqRnvFX7zoKFSt6/w7YF3/5yLGJ+423bKq06Mn6OnM4QupylBh7y8s9+xt9oyIAvPzMdM2H/szlgl+6fRWd8SnsnYqQ8ESRHC3IXociaGNuWr2CAT3hImdS6XBu7Y3TUhCaP4vXgKaoLscNYjbFixdn7oilG7XSIJEI9k85mtbqFGyMoerVwC/ippnHL8kieqTULd6r9PQnDF/No0r3ZnKYTSBvdJLVbddRzidsUhpydiYewKFTz7qJ/wAXPosSaQMrGGktdVkQHaNoEe4p6Ce/lYgmssgBts/t/hsA1xnEQZqb5dRMCUz8ZgdJdNPJvq2N3HviU1+dvtJyXcCJAh0dhmKtedglD970gOTsHzij6FdU57Ra1FdG koY3P6J0 ttGdb85dIxSWiPLGe2FuMd9GgaJEcrJ2tVe7s6VDLVemgBhvhAGFb8q9FNhFLlDgVDNzRZQP0z2sJGAvMj/CnuIw9NT/GLa33o0X9lMjZxYZMwhg1h5ajaPsmIHPrW69TETicBdVRMHdUrEeJvgdm4O4p+i63DaZxetW5tRdPLA4bIV5o6OaLrEdN2/IabGJCX9NpwkBd87smVkhN7JG+RdigocTkLOCOxPm4qcjEDTB9q7FdizBWLoEYLMjgefx0fEXbRsX2eFCQwL3B4YqXZ2cpFqqYilt3PGN0gR6CyUrDtto7JPbADx8VUui1CotA+vqYDtfExujEfT77ldn0uvorIWh0UUiA7tjn/vpDQQ7fapTCXCzO9YlWQxioOwIzj8lMz0VgfbQ2BaAgmccywqqH0Q8dlCSekRmpCqS5kLC6jHynC+uWXKe//QqW0fZLomJ0lWb5CWVKEe4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: It no longer serves any purpose now that the tasklist_lock -> pidmap_lock ordering got eliminated. Signed-off-by: Mateusz Guzik --- kernel/pid.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/kernel/pid.c b/kernel/pid.c index 73625f28c166..900193de4232 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -115,11 +115,10 @@ static void delayed_put_pid(struct rcu_head *rhp) void free_pid(struct pid *pid) { int i; - unsigned long flags; lockdep_assert_not_held(&tasklist_lock); - spin_lock_irqsave(&pidmap_lock, flags); + spin_lock(&pidmap_lock); for (i = 0; i <= pid->level; i++) { struct upid *upid = pid->numbers + i; struct pid_namespace *ns = upid->ns; @@ -142,7 +141,7 @@ void free_pid(struct pid *pid) idr_remove(&ns->idr, upid->nr); } pidfs_remove_pid(pid); - spin_unlock_irqrestore(&pidmap_lock, flags); + spin_unlock(&pidmap_lock); call_rcu(&pid->rcu, delayed_put_pid); } @@ -210,7 +209,7 @@ struct pid *alloc_pid(struct pid_namespace *ns, pid_t *set_tid, } idr_preload(GFP_KERNEL); - spin_lock_irq(&pidmap_lock); + spin_lock(&pidmap_lock); if (tid) { nr = idr_alloc(&tmp->idr, NULL, tid, @@ -237,7 +236,7 @@ struct pid *alloc_pid(struct pid_namespace *ns, pid_t *set_tid, nr = idr_alloc_cyclic(&tmp->idr, NULL, pid_min, pid_max, GFP_ATOMIC); } - spin_unlock_irq(&pidmap_lock); + spin_unlock(&pidmap_lock); idr_preload_end(); if (nr < 0) { @@ -271,7 +270,7 @@ struct pid *alloc_pid(struct pid_namespace *ns, pid_t *set_tid, upid = pid->numbers + ns->level; idr_preload(GFP_KERNEL); - spin_lock_irq(&pidmap_lock); + spin_lock(&pidmap_lock); if (!(ns->pid_allocated & PIDNS_ADDING)) goto out_unlock; pidfs_add_pid(pid); @@ -280,18 +279,18 @@ struct pid *alloc_pid(struct pid_namespace *ns, pid_t *set_tid, idr_replace(&upid->ns->idr, pid, upid->nr); upid->ns->pid_allocated++; } - spin_unlock_irq(&pidmap_lock); + spin_unlock(&pidmap_lock); idr_preload_end(); return pid; out_unlock: - spin_unlock_irq(&pidmap_lock); + spin_unlock(&pidmap_lock); idr_preload_end(); put_pid_ns(ns); out_free: - spin_lock_irq(&pidmap_lock); + spin_lock(&pidmap_lock); while (++i <= ns->level) { upid = pid->numbers + i; idr_remove(&upid->ns->idr, upid->nr); @@ -301,7 +300,7 @@ struct pid *alloc_pid(struct pid_namespace *ns, pid_t *set_tid, if (ns->pid_allocated == PIDNS_ADDING) idr_set_cursor(&ns->idr, 0); - spin_unlock_irq(&pidmap_lock); + spin_unlock(&pidmap_lock); kmem_cache_free(ns->pid_cachep, pid); return ERR_PTR(retval); @@ -309,9 +308,9 @@ struct pid *alloc_pid(struct pid_namespace *ns, pid_t *set_tid, void disable_pid_allocation(struct pid_namespace *ns) { - spin_lock_irq(&pidmap_lock); + spin_lock(&pidmap_lock); ns->pid_allocated &= ~PIDNS_ADDING; - spin_unlock_irq(&pidmap_lock); + spin_unlock(&pidmap_lock); } struct pid *find_pid_ns(int nr, struct pid_namespace *ns)