From patchwork Wed Feb 5 19:32:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mateusz Guzik X-Patchwork-Id: 13961819 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 479D7C02198 for ; Wed, 5 Feb 2025 19:33:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE94C28001B; Wed, 5 Feb 2025 14:33:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C99EB280018; Wed, 5 Feb 2025 14:33:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B39BE28001B; Wed, 5 Feb 2025 14:33:11 -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 8F306280018 for ; Wed, 5 Feb 2025 14:33:11 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 39D32AEAF0 for ; Wed, 5 Feb 2025 19:33:11 +0000 (UTC) X-FDA: 83086889382.05.54D86D9 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by imf27.hostedemail.com (Postfix) with ESMTP id 527CC40003 for ; Wed, 5 Feb 2025 19:33:09 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=g6LjwnEj; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=mjguzik@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738783989; a=rsa-sha256; cv=none; b=YF92rRYR2NKpddm7SutUecsgjNp3Kl/vDO4vTPaplvIxqH3X0IQ5ovziIdEfwHRBt1pj+G i4A0ScD5MwNuxziwEIZu2Oj1VjGZdH2pE1XEIIAVJGjSWqs6S8Ib0z46Wqpq3XxHV90dHI 2LPAv5L55ld1klCt46jdwBXnlfjelzk= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=g6LjwnEj; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.47 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=1738783989; 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=4g/eS5lvqZhif3KGVc2E71PB2LxENb86SrTJZykfQCdqJ4u5V4Q/YwCUjm4hG80/rZLS6M 0Q4mebXk/TkE1fkKn+WB/BXxk8aF/VpsQ6bKLRvBdncNDRkXaGxrKDX12cu+zWDYJowEb/ d5Rm8hTynWT6zD79C+7koSLhiLjNK+U= Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-ab34a170526so28168366b.0 for ; Wed, 05 Feb 2025 11:33:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738783988; x=1739388788; 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=g6LjwnEjeqnF832iCDet/RIbogDlIlEnLOBDWo36v8eXWtpN1NcZWAAXPUidAOeF1e DlQ64sQnRbY/2gyvzzQaCwqyXhzZU+uiTDcEEhlApE/q5Yh/LjWQcZVJDusxnq30v98s n912BtfwbAJAizorkiFMS13SaD3mj3bNH+kDZe7rTU7h0/tSdLRvlj1f4nznzNoAk6YR QOX/MU/Xm785VzVeiIQrVhiMbofYZwkW4gDVqe322er6y5zKqOXYBHiRWyUR5FOCvkWk PjYyAAjK7grxJKEWD7pZX2rUOEc8PjpWfzyiOEdbHHuIAMxIQy1C/h+0836N4WwykhTi PJAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738783988; x=1739388788; 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=npyNmd6+MLXEvJskoj7sW5gOPVf8zhaa8L7b6HjHFdDPBSfiUJMqOwwMUXELkV74e0 aQrnmk3EEzVoQSaHxxOjPBHlvmDeiH6/Hr9o6rRMJ9vQTyvrQBaEuNHsTIFWC910gYHA QCUJQZjxwZ7Ycyb5m9s9OiLbd6MUKhiVdvoV85DZtKi+lWplyDVPIBabs3xmDB44PoKt vJbZ5rHPZNjLzTy5mMYauh8frWnpbTkJEg/3JURUdTYIKgMITPSpPcpaiOvUxkDGZ/kz 9A/NPRi7m+fGvc+hEX9YzKmOITYNfv14ST/RWUNICG3qDF+gWiw3veW0/lo8JW4ngMJ5 bNSg== X-Forwarded-Encrypted: i=1; AJvYcCWb72ESOBo49HU8zEWzWbTlvWIidIxWbwnPTXBf+4AXAe5NHqZBp65uGq/SpfH7aQhwZ651HuWtVA==@kvack.org X-Gm-Message-State: AOJu0Yx/UqnczIUZhlSdV1hJcKo5eoMNkgdvKX/Cw18448T8fQYYc8HF q3hoPjHJbZy0SOD40MfOT0zuKF8PeK/AYESxW49aWv07BPC6PVqM X-Gm-Gg: ASbGncuNjhnTGC917KPnW6EAKL5bda4pcw2yES+R2VTP1la72TcXGbZ4mIUW4n0RwG+ 7vU/rruUxHXPauqGrqUrNOd+LR3mGyZ3ETSsaHaI2ddsfeLrQxABdYBHkrF8vWNWOd+YDxOzLTW Nbew3g+DXoIc70nVzFoTGIbqbkejI3SsN8LCBxa1YngTYteub1Pv/WRS/w5D4EvZL5tJ3kgSXEs gWctiK7Nadvz5h6OmPuRMH5UnJjURIwmjCNOetFzw5XeMhl92K82fSoKlP357PyHkQcMDsoe4Ff YsG1jjR3bAGK0ulOg+Hw7L8ecvomxqI= X-Google-Smtp-Source: AGHT+IEspfSoxqbLIt/wPS3oIyPyVwU5YXPwKuyWMm8XPvGckSHESK4eRb45elfXhYfcQxhI/KTf5w== X-Received: by 2002:a17:906:7315:b0:aaf:1183:ec2c with SMTP id a640c23a62f3a-ab75e221e80mr485372166b.5.1738783987681; Wed, 05 Feb 2025 11:33:07 -0800 (PST) Received: from f.. (cst-prg-95-94.cust.vodafone.cz. [46.135.95.94]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e47d06e5sm1167625566b.63.2025.02.05.11.33.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Feb 2025 11:33:07 -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 v4 5/5] pid: drop irq disablement around pidmap_lock Date: Wed, 5 Feb 2025 20:32:21 +0100 Message-ID: <20250205193221.402150-6-mjguzik@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250205193221.402150-1-mjguzik@gmail.com> References: <20250205193221.402150-1-mjguzik@gmail.com> MIME-Version: 1.0 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 527CC40003 X-Stat-Signature: xwrpt74bm3jnx456tr9i63hzcfkoousr X-Rspam-User: X-HE-Tag: 1738783989-7949 X-HE-Meta: U2FsdGVkX1+6FSKwqZe6qn9oKhckYHZd+u2PoCoxanL4t4U0prMOVXfaz/ip84MoYZTnARemiLAZCJQ4X+xcbNXxHNihq/tI+kikpLWKc/6Cg7jEFzZbYlhWNZ3ivzjEnSz2KFjHT3Hu4GFFO7pdMavGPzQO9hDQ0sTtx3LN9uMA1mPKku7kvC+cvMXA2v8E/Pmt2c921Y2ltSiBtZhhgnIzqsiuWNa3kRe7Kym4Ymv7SRalgT0s8Ay4hKJxTC6Ckf3HDN7rBersVkERmcfHhJujfkXwJLKgKz1YrHIZYD91Q0ZQ9JA6NMf3SAvQK/sTLQursd45nH/zSk2WeyL/CDcS4IfaiKO253Ro68uHRg6mr0pvprjlS41NW/D5jxTBIkUUorJyhVFOosqXKpL2rv/oAMOTRAm9HfurKFYDR13G1sACz89GYFCtyuzF/L1mpVjSWs5uyYFddosWXT4JZR4eRvm8iwU2MB24bRzNv/P1ZC7CkL4l9QwqP2vYLdFrtU7mI8nsBY7E6gjFJjmpBRqKhpOo20tUI6eb/5mSC1d+I785Z8tDlpJTKQU3AWy5nNNNjUGyHfO82+ifBGOT9+bTg2u45gIdeV1JzjmK+6cOSXlwAIJjYgxIROKkIjVK/AQlnHTpYuQg18GynaueMNKAO0NXJRuB3lN+RwAkbDYSbz9WAtWQYxMxaIpIYqAgSYxjz+G6dMuRC8ChXIntBV3FnhBdqNSESlHwTsFdUx0Emdmn52/1LRiQXafQAZXDG4lks+oWvWiK3gZxSVwizZmVFa2cDwliR1AkF+1RYATZzLZW1Ty3icjRmB+UjqCol+KP8SVx/L9ecZms2JRBeAnoD5zW98zI/XLLy80JcGs9HiT49Jl/SR0hLevexMfobZLFn4Gih0TDWyBVCcFO+qBeZbCtkw1JbImYZkLRsmSkrnFi5cC7iM/b09nCNvw/E8Z5Mqqnir1fZHf4fDc LJixncQI Hww0wQlnqWMCWWNKIOySzqRsThrUNW+fvPPv4XN8EibBUByjVNicVHPtMV5mzin0g4mYJbp35ImPJUq9JQ6IUH7OLwXcc8RZwcDVn3Odz41rvXro4ypJ7YwSZVcBZve9WKsjgooslt7mmYBAy7F8ANG8/SxkUGEY8OaXwJhASqRgJw4wR3+h3KoCADoAXWkWEx9DKR98lvSaqhg4b2M3Ao/Ocmj/eDxQpk8ySYIkAohS9E4sNZO4v5bWJF9VaaVWWcMYBCva3/G+uuQVVo1C8VbEg9k/47RKB5MmSS3bpe8FH15Rib+3V17VcBhBRMJs2mnSGHA7QA5HsFs7sRWQQuHjJd2fsciSuBuiXE/WqkU/h+xBHpZ4Z844XLMyLgmwBQWN/LLfbdiA/OmDkKiemiGn94PAnlWLRjTJ0BrnIv2N0QMKjlKQ8h75pM3FzgVDAg0Db 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)