From nobody Tue Apr 7 16:16:03 2026 Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E956374E43 for ; Thu, 12 Mar 2026 20:53:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773348817; cv=none; b=AM+arMQmNFwTvr1q/ex2rFXttzMgVPtjxNzzQcJVX8xo/QJWwd+YKWM1tAjLzGdI1xeNGtRuXP4fyzn/dUBbhmuq1wMJwcNV8kV+OEMYs83a75nIU/F1t8IgPs5xGa7Rhc5ZpUvDsoX5nWHANLzltYMGoLhOQWGDL0znQCcOpL8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773348817; c=relaxed/simple; bh=qbsbyItfFL8uygu+Ulf4MLtwpF0DZ+jfdHZf6+XmqYY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X/1ux08Lf7rc+OkSBb6PnXrnnzCGVZzUjl8SwG1cnVf0YfeYSI9gSMO70FlSx388QBmopnaXu+gGhrkPGNBxk7OoySEm2wu7W+7mAmYQ7LaLRf2H82LixtC36M+Aafkct3JMTofW7ooVDBJaHLiC8nQ7xUcutEMHIfV09e5GxOY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=cmpxchg.org; spf=pass smtp.mailfrom=cmpxchg.org; dkim=pass (2048-bit key) header.d=cmpxchg.org header.i=@cmpxchg.org header.b=E9FR12Q/; arc=none smtp.client-ip=209.85.222.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=cmpxchg.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cmpxchg.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cmpxchg.org header.i=@cmpxchg.org header.b="E9FR12Q/" Received: by mail-qk1-f175.google.com with SMTP id af79cd13be357-8cd90401034so164016885a.0 for ; Thu, 12 Mar 2026 13:53:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg.org; s=google; t=1773348813; x=1773953613; darn=vger.kernel.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=bKktsnvx+4HbrqJvE5JfNhKHypqzO+issASPe3WGHl8=; b=E9FR12Q/IdYtkXB9HKflM9kJccr68Z4+xe7oZY92kIjHjwXAYwE2/hem8lva5l6kMU V5k1WszgsP+kH7v2/q8Ki1N3vu5G9xzXnCWAvOrOfiYGpJlHhnn6X0IqARPV8WenxQ54 k1kXj3h+zol2Nc+Ihj7k8IMmq1jLWQuklEmg7RCiDhXwxBV3zEKbVq0k7NN1S5vHNpV4 Ca3KCP4JgpOxNVNvxipKOeUgydYXphIH7hYg9dbxCDfGsSfQzhD7552lc1UU1M2Rry1s xcKUGlJJz10gaCh4xn9OXrzA/oN4NfQRCZPFhFISy+o+aGbkjBRdtOFTsYRN1ufwwNRc P3qQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773348813; x=1773953613; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=bKktsnvx+4HbrqJvE5JfNhKHypqzO+issASPe3WGHl8=; b=H2qrdmve+UKnYpdWbVIFeBnzXuunrPVhcr7ytWHa9HNV7H2xCX3uuCxTxUa2gZZZ6B lC1Yj3LIVd2WEuslzQysq4vYx0RopSsElqiOv066bBqCCSOWbfLl3tB3v9E+jCB7yFgA PW6yDmykNJkBOOZKoiyElKx9F7SBTofmEYAiJfT9NyyWBQx+n1713mGhDRSrwXSa0ZjD 5OkklaLGYx+6bBNZHXPkQErPhOKaW9pf0dGBn/2wIIQLou5BARLnP9bXljzeHvp9FRy9 /eEQSNec8jBWwalmftUeQsLcjgcpyyQZCDFeHk9uP1SNDnubP+jWYDgxbUQhWPqqG1C5 Enig== X-Forwarded-Encrypted: i=1; AJvYcCXfFCmDgrvsAJlNaaBZhEzzK0oKo7pYzuw30rYSr4iv7b/9la/scB9sqxyRVNVgVRluAZlrRIsbo9gKDwE=@vger.kernel.org X-Gm-Message-State: AOJu0YxOHt9qgy5J9tAclCmC6MuhJaueefKGAby0cftEjGYtN7MrOcPP 8dTu8kweVN3mc1RSgDIgxwSQMoehLZaW4vexwlGSa04Kf2QKceCDfVt7s/+0yWPqsiM= X-Gm-Gg: ATEYQzxhhSI/QM5IuYFGD4tGlx4k1019EzjVSZ8/HGowEozM9aIDsHVz+lXX/e8WeW1 hm+ruhTKFEfhqBlxpK2wSmmB95f+IHZ8TceeVfmP+0O2qOVotdrjhNx78h+SHRKzkpOVp5+oYer HZlK5ncPZkVQRTNkehpb07d+CZfD2fNAAE2g1JxCpWvrMIXCCaPcY6mQEJg/dLq7B401OMDdyO4 rixPKC1iejxETmApjsPi7fOrercTTJ21UN3JRBYcIhn/6NT1NbzHFIT3XXSbMGFWCxuhcsg1kE/ 3oTRhAhYV3/8C+ecIQSzCYqhwPacuyZBFIgH3zRtWzDYlEtFVd+l58rIKBj38mSgaAsSiDL3HaQ YmjJIg/uJIGezC4IXR8vCeOTBtaBzUvZseWeC1ekK8eFYvj2KrMtDwsu/3eGQPRdlB0gbGifg6N pVtvtxJQHWkibKlW/bSTNXQQ== X-Received: by 2002:a05:620a:4510:b0:8cd:79aa:6931 with SMTP id af79cd13be357-8cdb5b6f77amr159581585a.58.1773348813306; Thu, 12 Mar 2026 13:53:33 -0700 (PDT) Received: from localhost ([2603:7000:c00:3a00:365a:60ff:fe62:ff29]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8cda2112f5bsm473183885a.32.2026.03.12.13.53.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Mar 2026 13:53:32 -0700 (PDT) From: Johannes Weiner To: Andrew Morton Cc: David Hildenbrand , Shakeel Butt , Yosry Ahmed , Zi Yan , "Liam R. Howlett" , Usama Arif , Kiryl Shutsemau , Dave Chinner , Roman Gushchin , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/7] mm: list_lru: deduplicate unlock_list_lru() Date: Thu, 12 Mar 2026 16:51:50 -0400 Message-ID: <20260312205321.638053-3-hannes@cmpxchg.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260312205321.638053-1-hannes@cmpxchg.org> References: <20260312205321.638053-1-hannes@cmpxchg.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The MEMCG and !MEMCG variants are the same. lock_list_lru() has the same pattern when bailing. Consolidate into a common implementation. Signed-off-by: Johannes Weiner Acked-by: Shakeel Butt Reviewed-by: David Hildenbrand (Arm) --- mm/list_lru.c | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/mm/list_lru.c b/mm/list_lru.c index d96fd50fc9af..e873bc26a7ef 100644 --- a/mm/list_lru.c +++ b/mm/list_lru.c @@ -15,6 +15,14 @@ #include "slab.h" #include "internal.h" =20 +static inline void unlock_list_lru(struct list_lru_one *l, bool irq_off) +{ + if (irq_off) + spin_unlock_irq(&l->lock); + else + spin_unlock(&l->lock); +} + #ifdef CONFIG_MEMCG static LIST_HEAD(memcg_list_lrus); static DEFINE_MUTEX(list_lrus_mutex); @@ -67,10 +75,7 @@ static inline bool lock_list_lru(struct list_lru_one *l,= bool irq) else spin_lock(&l->lock); if (unlikely(READ_ONCE(l->nr_items) =3D=3D LONG_MIN)) { - if (irq) - spin_unlock_irq(&l->lock); - else - spin_unlock(&l->lock); + unlock_list_lru(l, irq); return false; } return true; @@ -101,14 +106,6 @@ lock_list_lru_of_memcg(struct list_lru *lru, int nid, = struct mem_cgroup *memcg, memcg =3D parent_mem_cgroup(memcg); goto again; } - -static inline void unlock_list_lru(struct list_lru_one *l, bool irq_off) -{ - if (irq_off) - spin_unlock_irq(&l->lock); - else - spin_unlock(&l->lock); -} #else static void list_lru_register(struct list_lru *lru) { @@ -147,14 +144,6 @@ lock_list_lru_of_memcg(struct list_lru *lru, int nid, = struct mem_cgroup *memcg, =20 return l; } - -static inline void unlock_list_lru(struct list_lru_one *l, bool irq_off) -{ - if (irq_off) - spin_unlock_irq(&l->lock); - else - spin_unlock(&l->lock); -} #endif /* CONFIG_MEMCG */ =20 /* The caller must ensure the memcg lifetime. */ --=20 2.53.0