From patchwork Thu Feb 6 16:44:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mateusz Guzik X-Patchwork-Id: 13963327 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 0E3E4C02194 for ; Thu, 6 Feb 2025 16:44:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 95B7E6B0096; Thu, 6 Feb 2025 11:44:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 90BCB6B0098; Thu, 6 Feb 2025 11:44:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7D4F86B0099; Thu, 6 Feb 2025 11:44:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 5BD2F6B0096 for ; Thu, 6 Feb 2025 11:44:58 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 1E1841C8F4F for ; Thu, 6 Feb 2025 16:44:58 +0000 (UTC) X-FDA: 83090094276.09.60C1762 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by imf11.hostedemail.com (Postfix) with ESMTP id 2C8F640004 for ; Thu, 6 Feb 2025 16:44:55 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dC1i8GDS; spf=pass (imf11.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.51 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=1738860296; 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=6DMFX6YMCCpHUnKPYix3pzepx5ItpSalkZSrvWGNgEw=; b=nYWVPAs0NM27XZmlkrE/zPdSjst6VzVCy8zNKUXJsenzeT39216aa/TRzRhoBDc8YcWu87 m0zqDhILkKTPqFTgEdcaVxm6OVb64CD9ik+O5HFyvFTwQgLEXn+HkJY8Z4WlcMiJl6tqLM E5LtGPhodd6gzXYCnRsQxGbmdqONYyQ= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dC1i8GDS; spf=pass (imf11.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.51 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=1738860296; a=rsa-sha256; cv=none; b=7bw0iOccYf6V/YIVvXMDi+37GaMz9SkJlnS5EU4YPZuOL3++rbsj9iafe4tXpvE73uL9v8 2Ya+YDMh5FasYylgjO3dI/+uKEAjzMBChd9LKbWeGixLGR+tkzEJ2oHs2yxHOaUuQtrPUm AGP9jZBdWW2qWh6yqneWmK1jCMpXA0M= Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-ab7814aa2adso50254366b.0 for ; Thu, 06 Feb 2025 08:44:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738860295; x=1739465095; 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=6DMFX6YMCCpHUnKPYix3pzepx5ItpSalkZSrvWGNgEw=; b=dC1i8GDS5WVUrsnQl8o4TE/5ub/35p5/8d8+60CJcMmzZ1RdKvUcLOoxPtq56dg6Ng QwA/IRW1l1vof3y4M9Iy4k6JrW4Hgd+wYFDRycBTYl0b/H9mN13ULap8PXESrNPLoTqx NCaprjay6pEZ+tyfWW7X9MgTtcp9lMftYr21GRgk1U9k3UX4LzJ5ka/6ywgdOl6Lrqxe c4XYXDudpXwHNyT9RSiqOdTAW+E/zN0uEqLA8MRGCsHm7Pb0We1e9CMa1NTp0wb6Z4fp y+diStz1Snb0H6HxmGkLPGMtjZhyVU5w31soLAo9mo+axcLcIna0Ec3R0WvvpOn9ldpx C+8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738860295; x=1739465095; 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=6DMFX6YMCCpHUnKPYix3pzepx5ItpSalkZSrvWGNgEw=; b=Q7z75bso02TjeJReFcD6itPHm8e53RQtp/CqiWV30/ag8HCmys+ZxVrg8a5Vm+O/mC +h3voTGfPbgtBAAkr+rEmbNHX2rq7xNSYm2aCr2RLfYeOeukeh4QyqOiPuyDej3ay/S8 41oc/lChovAS4C21FBQm3I8rvMdX7W3l5LDMHXUSZ4F/c2q6B+Nyvt4vf9eGl3nvfJgG P0VitOxAldykmhC0ilfkLxyQM2/WcTZ3kM1XJOuwOSdLbAgypNNHMO8fcu7T5+GMT2Aa a7tsDpgsRLrRpl4BBtvmxWxY5YejU+I/ebKj+CIcNAJqh8OZkzn+cE22B1x8AhbbhGyY J/Zw== X-Forwarded-Encrypted: i=1; AJvYcCV0AS9gnWNILunS4RZXUUt0mivWuw1ripXLPd+RGIcn0Beie9CJ5nKmrnnINeDwzQ+BRrmo8wy5+A==@kvack.org X-Gm-Message-State: AOJu0YwGZZ/ossp+AZpd+BvuDeao70MvZaALdfF8MWiDhObnTy2RSWFo 7cY2/LuFKJWleetTHbihpVnoJG6Lq99QVT5IXXj0nYPupdzFTd3wqhr+ldzz X-Gm-Gg: ASbGnct/QwzfSkgqbUhkFIXnYrNghK8Kznpbm+2nrOhXnUFOx+vQB/axnx/E6uYbJHR XPHeP4Qa910N6lVKNSyBsMc52xzm2QEHizCjp1zZhg9z7lxGYYVmV3g3NHLAD1qwHEkKmhnS6dj pm7rWX9VVZ7I04Lq2xyrhw82uU1D9GiuqzlA0D5dSABEio4mtqpjfv4h0mOvoJFi2D8d44wIA9d lasShuqnTapzHUeLkGC2hN8uzYqyZUkM7r+Y2W84MLt7VahFQdXIFMnnc/dmHaVtPO69A9EgiJo Aed46w23lPeoBphjC8zwq2YOtgj+NIo= X-Google-Smtp-Source: AGHT+IGOagMU3s4dSLwHCKRWQGm5DZx3LMYAR9bqVzPeh6m8lqHiM8BrELKuAU/htbOM8AWykF4F6A== X-Received: by 2002:a05:6402:210e:b0:5dc:58c8:3154 with SMTP id 4fb4d7f45d1cf-5de450800a4mr213355a12.28.1738860294539; Thu, 06 Feb 2025 08:44:54 -0800 (PST) Received: from f.. (cst-prg-95-94.cust.vodafone.cz. [46.135.95.94]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dcf9f6fa69sm1121849a12.73.2025.02.06.08.44.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 08:44:53 -0800 (PST) From: Mateusz Guzik To: ebiederm@xmission.com, oleg@redhat.com Cc: brauner@kernel.org, akpm@linux-foundation.org, Liam.Howlett@oracle.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mateusz Guzik Subject: [PATCH v6 5/5] pid: drop irq disablement around pidmap_lock Date: Thu, 6 Feb 2025 17:44:14 +0100 Message-ID: <20250206164415.450051-6-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250206164415.450051-1-mjguzik@gmail.com> References: <20250206164415.450051-1-mjguzik@gmail.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: 2C8F640004 X-Stat-Signature: m8kbwnxshsdy3rscbij339ipcny3uwcm X-Rspamd-Server: rspam03 X-HE-Tag: 1738860295-717334 X-HE-Meta: U2FsdGVkX187hi4WnszPoh5RCdE8u0nBJMRtkJT3HcRsyWUtNDS3pyqaXqzy7tKBob0/S/KieB04gO9pz9RBTyswNp1ke0Cf0k71GRPGeEGZEagKIOZef4mUllfEGAqN9cAKSF6dgmQoIV8WNPHloEIOkmkaS8uzA5DO8YrgVdvWTl8oeXiZ+l560jj7C4ASzmgHiZ/+4noYhCTheCNVbO260dEcodncmAJpdKJWYjYpfPoK1N+CRmqCjGtpw+Q2EOGFRATexf/ZqlVFoi0RbS3uh1YFva3arvbEKH8Q+pX7dx8FaU/7ITmVnp1kqbuFHahU4wPQyG2RjiavrUnGSlTq9MJ6Q0sQnqsu06gQUayO2EAjEiYAOLldiKj1mbr/E883hSnkVRrzjFJNjndHob7qk/6HG3WucTe15m9zZ77Rltc+tejVK9f7NefQWqbC1ToPpmEKRgK2C+Y3yJEenfASgC4RIoDsuxuN92Z8ReljadMlWx7Ok66Cuj6sHJzRJNE8XFqLvAH8Kx/tsT5J0IwuYZ3Md9RrGPHXJ8nLepG/OD6+j3E3Zvy90hNFcmbJWuN1CyOX/EwbcWv8bsl74kz1z6haweHKYxeAqajXBHT3eYB+tY5fqU07NPIPd7rrMQ7RN8sbx2d2MX0RNi7EpM0at7kKYdQkeg9Fd0ft3vz8RzQCPhsJzpiaMCNLAWAiidBhFY/wYi5sqHldBiCgIJABlot+CFM+lE5RduoZN3XK+dyHv43UTffHoXWMlth5v6T/tYx3dYiWmYxfJiqP09cy+cEhphJve0vUcSb+R9SnDSnWwillVcMKYiqoJ2CLIIvVENmzVdeOkGKj8z3M5yUEP8T8LJXKCl25TtDvb+0ZaRWDqBcsDA+GZA6ijfC7U7+AokA1n3IimepcyoHNZM3lAbGhz4LuNAyg7s58+Yrpta57WGKczTfffupmnqBjsowtSq2j28qfoPWtDwu KN2mpdUm 6GB8yuWKY8qwLSmhG4ohVEVl+Kl4/IaeWCaZQQPIT6viAYBDkeS52jctROWNmKV81udHinBOivppaB+7eSDCU7p7U5OeEfSpiYswncnis07NAa9hfZkhQFAUdAcQFQ3q+ktF0qnqHLFm2EBbWmedhRQrthZD8l3uA1C6AmLdPMtliLEO9ClAIYRNL1vnnt1pZwOp2y/QEBW/CSM/q34B9UMbbGHZbPJh92L2o277BHCxv2QGhu/lPew8AWFShl8IYgXLTxEsw+uYXYRo3xCIBl2GjolQGHJYYARSIuCLwAbF9Q6PEv1pU1k2spHxXafRwXv54O+8eUHv1rgsO+XDJ6zSkhNpIxBf7hxnP5D1KNuDx7EaPOebVaMNgNHTpUsd32P8EJKK9fJYkR12Ln84HyuC95+GuUXKiU7LT3+Gp7XbmMBKGJjMTHhn+fozvcjRVZYMO 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. Reviewed-by: Oleg Nesterov 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)