From nobody Mon Apr 6 18:24:12 2026 Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) (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 302A33A7846 for ; Wed, 18 Mar 2026 20:04:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773864244; cv=none; b=sjNWv+tH8yFTWjRuV3iDfKMv88qPas3PGvC6YqU61eYexeQHVpqj7i/bA814JyGVJ19RX2hCmORpns2kMzMAj8rFJbY+tdrHqvye8AhFvAQ9HzlLNYyVsbF6hZrGfbJwIhFX/hcBL0NrZCBB8ogH8DRsiYM7sUIF176KcQaC3Ww= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773864244; c=relaxed/simple; bh=lthQ/bW6RIm1uQ7HKZsbjtI4AUpU9WCg3/sJUOcyQ0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qXZ8i71IR/EV/+ooPuVw5w4ObIbtlSp5l+xX5O2KWrY9olylA2RKmt6SwtJxNfh5xC9yCs25hOl8WxwjxeUI0RFQ0XWChf1bEwSV92j5Pln0i/cqLOZgBD0Q4ePRbjI4mFf8QAhTroU+i24hpXBan8TgiJo6KPpjX/zc+KBiDwU= 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=t+2A6pv5; arc=none smtp.client-ip=209.85.160.179 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="t+2A6pv5" Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-5062fc5d86aso2025491cf.1 for ; Wed, 18 Mar 2026 13:04:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg.org; s=google; t=1773864242; x=1774469042; 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=xA2tsV+rhDOG+fLN+eXa3w2/CdlIulJXzLT7vmCgaLA=; b=t+2A6pv5qX40qFT7dC9FKObZw5XVYLEln2Km68FaCFbj0Z3kAa11HFi83Wd8KlsV4C XATu8vVC18l4gRr+riUVWjhcTRG5wTxkRZdK84Gb+p0EbvCXatvRyxQEwLSCSTP/RU+i vTeigZKOGOcwQBLyOSs0r2TCpzDxNekJGU8RXiKGpxJyYhA5fKZ90YWawlUX4/k7X/P9 r9fUkFrvVVzB0HB/XGsg8/X+Vg+iLi3a1aI7B5SrZ1XDmlOxMDYxJf+NvdPi/747EW1C TZx7/EsOkjrEEl8wDmDGN3igrWDR1576FQg5YARXbDD66kSd+NJLtXgI4p0Tljofqwu7 yKMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773864242; x=1774469042; 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=xA2tsV+rhDOG+fLN+eXa3w2/CdlIulJXzLT7vmCgaLA=; b=HX7Y8Sbecil1PqDpz6fPJWvS57c8fUcsjbAl7YZua9Szb/0gD7CqvOn4dGNPBTd3ev iBxB38VgwQyPm55rDBl1AVekOA8znmy+iQ1UsWh1ioiduygBbCuWmhshGkcGSChEJX4N UAUZ92gmM3TMmrvv2s+H75i3mFwa3aEvT/DOtCHU4ufvMfZ+Bpgc0KoNsUV0RnLVtZ5M v3u5f29R3kDNoHdIIWK5oMf/hc2Pnv90mQJDdNXNBQp1LgTZC5fD08OFnu0lVgdGpFQC abMn/sCH+Pyg8VEwM2N0t97+Yo645kRkia99w/TbslwG0+fBppOH/RJzewHzGiGCX82l NKog== X-Forwarded-Encrypted: i=1; AJvYcCXq4iimTzs3atjKF5xc8QREOtrMtGBWx9kEIiXCITEZpvsW09fG1/le2LfAY1nrOLrWW7ow6C1eHwJ2sZE=@vger.kernel.org X-Gm-Message-State: AOJu0YywIIBrf4R8vhMi2s6kCQRPxZq/773odd/P9pXEJkYYP9fPXBXl kxFlMhN8pPb/4hHb2TGlmdft50pqCCg0YPWBv8SOGH/jVQzGZ16bmvYTjkaXWONppM0= X-Gm-Gg: ATEYQzxDBHPENpFqg1zj4ttril6mZs7e5K/2NpXjykCaXxqJDLinELEIuEwYngkS+kj act8ohZR/M40B52/cKX3J76GHG4MPmGDF1AqN/oLRF/fnUqI3VJL5fQRvRZmI6fDGDMV5txmRKM ZEBHAj5NBO1Wl8hjddmRzogHtxLJNyD32QBsOzSmCJifUHgBaW0R9gNLSJXvFxK4hQmk6oWrNpr 0xkqbkp0lHVoGc0b7U0MEc8LfKTmeVQjXBklb/GDLEpYmslVZr8lmt6ZGVDu5ame6Bj69a9lAOA KsfhxdiLkR5h3MyL+PPcmGPPv0+aPO2N3u7AEajFgZ6US7oBuHAclQC0oQTgE5HvbqChJgijlWJ MY+NPGoQF/7YjtY36atXq2rQOV6PL2y7v7VWxcpOYey2ut5sn5NxY/+xpjegNR4alBuzdSCIrOe lGry3VhKv6MmBlNw/ZjfAfoQe/pRTDMYUw X-Received: by 2002:ac8:7d47:0:b0:509:1987:7626 with SMTP id d75a77b69052e-50b148ec22bmr59111751cf.68.1773864242086; Wed, 18 Mar 2026 13:04:02 -0700 (PDT) Received: from localhost ([2603:7000:c00:3a00:365a:60ff:fe62:ff29]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-50b135eeeebsm29705751cf.31.2026.03.18.13.04.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Mar 2026 13:04:00 -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 v3 1/7] mm: list_lru: lock_list_lru_of_memcg() cannot return NULL if !skip_empty Date: Wed, 18 Mar 2026 15:53:19 -0400 Message-ID: <20260318200352.1039011-2-hannes@cmpxchg.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260318200352.1039011-1-hannes@cmpxchg.org> References: <20260318200352.1039011-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" skip_empty is only for the shrinker to abort and skip a list that's empty or whose cgroup is being deleted. For list additions and deletions, the cgroup hierarchy is walked upwards until a valid list_lru head is found, or it will fall back to the node list. Acquiring the lock won't fail. Remove the NULL checks in those callers. Reviewed-by: David Hildenbrand (Arm) Signed-off-by: Johannes Weiner Acked-by: Shakeel Butt Reviewed-by: Lorenzo Stoakes (Oracle) --- mm/list_lru.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mm/list_lru.c b/mm/list_lru.c index 26463ae29c64..d96fd50fc9af 100644 --- a/mm/list_lru.c +++ b/mm/list_lru.c @@ -165,8 +165,6 @@ bool list_lru_add(struct list_lru *lru, struct list_hea= d *item, int nid, struct list_lru_one *l; =20 l =3D lock_list_lru_of_memcg(lru, nid, memcg, false, false); - if (!l) - return false; if (list_empty(item)) { list_add_tail(item, &l->list); /* Set shrinker bit if the first element was added */ @@ -203,9 +201,8 @@ bool list_lru_del(struct list_lru *lru, struct list_hea= d *item, int nid, { struct list_lru_node *nlru =3D &lru->node[nid]; struct list_lru_one *l; + l =3D lock_list_lru_of_memcg(lru, nid, memcg, false, false); - if (!l) - return false; if (!list_empty(item)) { list_del_init(item); l->nr_items--; --=20 2.53.0