From patchwork Wed Feb 5 20:09:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mateusz Guzik X-Patchwork-Id: 13961860 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 EF793C0219A for ; Wed, 5 Feb 2025 20:09:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1CD6528001B; Wed, 5 Feb 2025 15:09:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 17C3B280008; Wed, 5 Feb 2025 15:09:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F393028001B; Wed, 5 Feb 2025 15:09:51 -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 CCD2B280008 for ; Wed, 5 Feb 2025 15:09:51 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 7797E140ACC for ; Wed, 5 Feb 2025 20:09:51 +0000 (UTC) X-FDA: 83086981782.14.4AC0AD0 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by imf11.hostedemail.com (Postfix) with ESMTP id 8B4A84000C for ; Wed, 5 Feb 2025 20:09:49 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=la+qxyLS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.208.44 as permitted sender) smtp.mailfrom=mjguzik@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738786189; a=rsa-sha256; cv=none; b=n+hr3dIcBScUBAXEpukZEmN1wizwbhDbAkr2QtnBhvn9ROyIXt9vJ7Mem64yG1TbNZEF8B YTa/sGQTtChwc3hSWuLFrJmi3H17VM0RqSYaPqiIj0g7d4GWZW8O81XonohICatNcbjcB9 9BUqrVGHl5B5ZYUAz6XhUttcsa4cMeU= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=la+qxyLS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.208.44 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=1738786189; 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=JQM7jsQ0JjHif29ISmbv22fCgXm0HuC+oajsMYHqOiD7Ib46+cMaZo/qs82K8bJFW3if5v sePB63y9G3HUWJEaQbXTgcFTRo54C7mQPzZCDDlCEggqF21A6xZSFfdxpT4g+UwP/btkzM OPdT0/hlRYVwtJSzMZyWCo7XFVvLlxc= Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-5dce4a5d8a0so346102a12.1 for ; Wed, 05 Feb 2025 12:09:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738786188; x=1739390988; 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=la+qxyLSIJsca4Tk/bbKR97po3bF9DXJ5MZv/5/QJWCqsZYsmDapEPBH6ad7w3Xkfb PYhQLgy26s6ALiJzBQHykx88a1nQ5/iNgR74gcuRHrLqvghHfUAcyLElQ6bCpvxd0dDI w+C+hqpxdmf0w/CT/UhMfs11Xr0v1WfQ3hvU++eehfCL1kROLy8E5xmNJSO17nJreos3 ywOJUGJ9g49VCXJN13+G6GzM5AnjThw4Z2pKPnXp9H/rboC+IfNgOrMVwkxaT+wlbSr1 5V0JDWy8x5TYOqjuEIzY950CtGfs8+SCliBH02CbErm0T3IWT5yLpG4muviVP1m6cllQ YQnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738786188; x=1739390988; 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=S4Ay8Q+836AaIWnQcjZEOokpA/tZKWSFjv08S1YDgRUmKew6FuFqhb+h5tN5Q+VjsL FI5IezhZ8A33E7nC2qcsI28PX7x/rGTlnrp5AP4RksH+ZIzpvLAa+QmLcxMeE8vhKBuA fz4Lsbg+vjXs5212JEGoBc/+bosdKtz3IAHtPlT1VfItFVcrHUJO7DE+1BfELqeUbTmf j6+wAQNlayNWhSjystoPjG4jCllyAFao9nTeT7lX1En0t/qJnsUTH6Y6gAReDVapJBM4 ZLGDli5iW/ulgNOCbGmu0cC4WFP89JnG/0379JYB/7pgCvzuT+lNzNMAmU9OQCiHxGqf Xs2A== X-Forwarded-Encrypted: i=1; AJvYcCXWSI+2KAmMSjuR8ox7MGwvONSHhtWzIu+Zzp2GHZGs9Z2vPkIFxcIc0Nh9/7zsZnlIEn8dz8duAg==@kvack.org X-Gm-Message-State: AOJu0YwaLZsV3UQ4Ud+nBq55nf4DXIqIG5kBCVZebzD/KajCrsBirKy+ RoKir2N3AY8gkyD+8f1rL0XRj6swGLr33nkAJzYE8jkgP1w6PjdO X-Gm-Gg: ASbGncvH8sDbv1IqviDEESQIoGB2ZxGH+9Ed7bQ7HGyvusclGVsal53z+dnMH9+g+P1 2YWZWgh6zyn/om1qDUukSVTZKDSrUprD7Cv6HmgWP/weDjK96qWRg30ZYOHnQdodiGM0gDbZMNt AB5rQJhng4n/xbVx31+xfolEHyhdL3fqsKeeEsMm89AsCByQx+lVAyCF5A55tI1yP/mRA8DTz5X VaoUP/FqqG9BANcmii99L7JG8JJ/FD3eZx/9O8/u4ac7SXk/6WQe6XqNBB2wij/QqMXnYuJHWHQ rZYLDMjLWwJv7ITIo6fqxKuCneHe3bQ= X-Google-Smtp-Source: AGHT+IHHavuHMxmpQwSvBcREM9wxFJNCAg1KvI/6JkedpqD328qTUBETfMZe6QbsgoB5QiI7qJgVCw== X-Received: by 2002:a05:6402:3603:b0:5dc:5a51:cbfa with SMTP id 4fb4d7f45d1cf-5dcdb6f9f5fmr12270745a12.6.1738786188060; Wed, 05 Feb 2025 12:09:48 -0800 (PST) Received: from f.. (cst-prg-95-94.cust.vodafone.cz. [46.135.95.94]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab703fbcc0csm932221866b.53.2025.02.05.12.09.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Feb 2025 12:09:47 -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 v5 5/5] pid: drop irq disablement around pidmap_lock Date: Wed, 5 Feb 2025 21:09:29 +0100 Message-ID: <20250205200929.406568-6-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250205200929.406568-1-mjguzik@gmail.com> References: <20250205200929.406568-1-mjguzik@gmail.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 8B4A84000C X-Stat-Signature: jkp1pqaj8k54i95ymf7mr3bgsjppopc1 X-HE-Tag: 1738786189-550452 X-HE-Meta: U2FsdGVkX183Xlzxaw4ehjXttovlsQy11MqdxRS6kKg8pHT3hFFHcXho5ouActA75N5l2KLjVUXoYi6qQfaH9jJ0T96ojsPmvq/3PyXlnAEO4FT6JZQaXi8wiJoNGE2C//god2sQGXRCxImphfJ3DZ2OK40iNo+RChhdwG0D4ByX3QFMPtLmJv5zR988QWbVdyvjJtLRBhS8W4hPG093BR8K6hyIwdUxMCeicpUe9Ob2/O08qxN11i6ScrPH3ubjy58jCDbVypWTTnWiPzekr4w193za02uHj50/w+pYDScoO3KjStFgJ/HexVpkpmYCMwydPmlYmnrnoz5lMJsJvfnLLf0uZ6ebYznsaUNl+KoojBJwby9c8RPnZj6zK8ahgPwbBW/m5kJEjuRMAJTTzn2zfs4EkDBe0BUMSz2WK45z0fN7wwwtUeSQClS4NItYmpFvGULwGq3/18TQyNkUDH6DUFQbKmVO+ImecQxpUQtn9CAL4UbZ2oRddEGfxNEVOnamUJNtnl7NllVrfXBzZGTs+88emsfpFDtkxwCHlzkHup5HHpbsEvj4YZ/g/FgLgMUJQIP9lsz6bnoG+8DA2Kcda7xnA47hiMmFoqNfutfNDj9/5MoWr51FaUs2JrYksleNMGtuxBVqhYCY2ukruR0AgYbKLzMJrG4mo4PTU0MuXXekirs9EqpycMr10Ee5SLzL/pCQoBB713DSRrW540pSl74BWB+2WGtkKtlhhUoQmGP9107eNq68caNn0eylVvXKuaK416ckjkiarJJzSq+cnq51ddwkod4GvWpinLqqZUeRICZ7/2fUzzw+9OVyXvgQAnasUO0jZwTAX8R54Sj6jDc+paBBIH6yuS1shPiZx52MwBcHthcJi81A+F0oYPTOuiX/hBP6BR0cFmFioatG20ED5J+o40TaJRaM5Vy7zAtEUP+9nVMTdeEn8NQRSx9y3nUYqS7F7swCvK8 WWN/Ryyw hTsKpeH6lpOCTGAfGOjn+FGB6SWQDc8x1jjTwdWW390TOocCPguTtoQmo8xGAtWGq6JKzabaxblbWvBor+AfwfXPv7WneUbKnpCey0udM8cXpupPxg+7sTjGrsyOhlqic6vPAM09a2EXgo8TUV2wyJzDLq0HT1yLq8J/6L73VcmYwBcmU+0nW8UDtiG56ssM5/Ul1Nrp8tIs1PCn8BXgizNOlDyiIoOeDgcaFaIsoJTNFWwQm2JI+PrGxANpAKk3pfdw/QIIbasvaNoSqfKydYFAUZoz8ByBMV4PKcv/Q2JwsuFIJAR3hE+XEhqMid0uo4tQQaTIKhAFSe0VD7Uxib6NP2a8S7Dkv6T5WojGPyvbQ9ceREBVGWE6pbq772z+im6m+1ZaKdlnOLN9YXsoEUSVO1AIKpUikkoJBpkHkeyZCOu08vwyTNYvgPOdPAF5Z47Q3 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)