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)