From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) (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 2209E3D75C0 for ; Fri, 5 Jun 2026 08:43:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780649001; cv=none; b=X3+gncDJHdua9U+MROAaiz5wBj0SVbRu/xjtzm04jahn4GUXx24K/BMrfdj/SvqKEk/XXjGAUOtbCxPTIHx31K7I4eYtHnqGbHjGiqPSKGJPDDjVg2TTvjzR0+5kdnFT5XlWikC+Hd6tnsLI6DRoetPHEzdacOXpYr42apdpLNY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780649001; c=relaxed/simple; bh=wSDsiSkevtHZyspDLFv2g3e4ELgdNKkWBW9bCKoYiXU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=X7SGSaHRP76LUmEGSC6IktCuwTLkSEOdvL8Qh9o3e9Be7oeljTh9l8sdbUVWbXQOIFz/MAIHM3OwILwrf815DV6rxCfFn1juoljjA9mVVTMTg7tUIq84WI9WAvnJ1NxSemuKYY98rOGNUgUsanZGj589NusxR7Fhm2L/bhI0N+s= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GdrcYTAr; arc=none smtp.client-ip=209.85.216.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GdrcYTAr" Received: by mail-pj1-f52.google.com with SMTP id 98e67ed59e1d1-36bba9a1089so1087382a91.3 for ; Fri, 05 Jun 2026 01:43:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780648999; x=1781253799; 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=J5brAHyiBTWKYNL/XpyaHSOnMQ5/iB4MkIc268tnFsk=; b=GdrcYTArYoo+2rbjhaM9O1N3iu+PQc6U+QQUHeeiIA6OGp8OvlJ6CnrI/SIulkXcdh iSm3514V0iSIvxrq8JHBB0JF1XuklFsOsuv94NoBlo5+YzLVnbyPNy6GPTON3sH/TEmb 7zsPYqKd4UjbsTig2UEBSoXDMvEiStM+rmSp1RAYIkDuqDHDiqayIEsMQUTBoe8c9fIh 2GdWs97Anc0V6Fi65p11VfMR3ncc12Oa3iaj0W8GWJb6c0nU8sOpUoI+e+Vw6cVxIFdJ Yr9lh4TDndSWw3uw2kuraOlrCczo8WX+09ryQG1nlnMXQnEti4Nu8XH4PRYOYW0GE1/M FPbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780648999; x=1781253799; 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=J5brAHyiBTWKYNL/XpyaHSOnMQ5/iB4MkIc268tnFsk=; b=VONAM44jf05s2c/aT4K1B+lHaL6OIgoiFhgY4ILogHqptmpL2fSTFEc9MyNeTYcx/S VZkWdwJKQHgTYPkyHrkZDFF0RViTtWI+ZymLMMHbsBNfcVOBSBaD6nstFcawg8zyKyag XUhp32kQZR0ZiFLqQCZDpqayvi6tab6x7xDlVXzPHc48moN2YCzmqbY33J66l8w3TOQn ZOIFWD4RykJ9hd0y5XSykX8sfBbtE4XGE4+sj4iVgyaX/jjGZsjiiwk+0imlhDAhU15l 7Hag11KC4QTSLaGxuvRejr1NSmmrMk4hQQu6Q+0XPfJkT8VumafgMBPbEZFW93dyamyj Fqiw== X-Forwarded-Encrypted: i=1; AFNElJ9Bjc/CWE3kbFtxhOb/IhlPQ3bnyrVODv+IvDTahIohJdaI0jGoj7lX+sgigr8Yqoq05hhY/BY5qCBjMhE=@vger.kernel.org X-Gm-Message-State: AOJu0YyawVS0MCGTk6rgXMFaAYKtgGzfep5ok+irPmwZKCJN4ec7M+H+ wW0a8FhPKC54xfjL0eST7Vc5DrnSYBIyzLJWcIFi0y3+UKVIaoqsGZvn X-Gm-Gg: Acq92OEiYI2UgSLi+QxwV1YasKoFrbSidQekgaV7NjO+8l7eZ76TL62wFYuZVRdyBw2 FO2FYvi90+DTa3DWWB0mji39uHTICLOVnlzvAZ0rmP+C6WwDXL/pHDM/jdHvmGAI4gtOZXdFnIt Sjqsyef67WkH3gce0f7as2gwQHw16LqUVyMNZlcDaZ4EnqH3nmURj8JYdft/W6++VavEziHbPSj XBhYfFWdpy6xri70Oh+vGjuPgHXjdtrSgQjfODRT9Xez8iID2B9j9CkDxEt+nDDx4uzKg09l1Z6 K/vS3iLURwVEC10shmFSgsF9aQw3XWMf6jBfnxL3gjdYj9dQguFMZ8hmqJP37hlkhuQnPBBswlS m3OxgL/7yQyNq0d7tm/myxDSbZNm0N5b0KqWjpIafVZFYZ/b17VSZErfWVOeGgJ+w3A8chxxKMM skvjmGn7XnlDPfDc/K2sSicwCYCsPo2BSw5O/12Y7OaM6JGCco3Q== X-Received: by 2002:a17:90b:3a8d:b0:365:a5f6:4a5c with SMTP id 98e67ed59e1d1-370ee5448f4mr2558375a91.1.1780648999316; Fri, 05 Jun 2026 01:43:19 -0700 (PDT) Received: from ubuntu22.mioffice.cn ([43.224.245.232]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3712fcb2607sm926632a91.0.2026.06.05.01.43.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 01:43:18 -0700 (PDT) From: Wenchao Hao To: Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Minchan Kim , Sergey Senozhatsky Cc: Nhat Pham , Joshua Hahn , Barry Song , Wenchao Hao Subject: [PATCH v3 4/4] mm/zsmalloc: document free_zspage helper variants Date: Fri, 5 Jun 2026 16:42:42 +0800 Message-Id: <20260605084242.1549811-5-haowenchao22@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260605084242.1549811-1-haowenchao22@gmail.com> References: <20260605084242.1549811-1-haowenchao22@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Wenchao Hao After splitting __free_zspage() into a lockless core and a wrapper that does the class-stat bookkeeping, three similarly-named helpers coexist: free_zspage / __free_zspage / __free_zspage_lockless. Add a comment block above them describing what each does and where it is used, so the names are not easy to confuse. No functional change. Suggested-by: Nhat Pham Signed-off-by: Wenchao Hao --- mm/zsmalloc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 2ecdf79cea03..9f588b63ec0d 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -856,6 +856,21 @@ static int trylock_zspage(struct zspage *zspage) return 0; } +/* + * Three free helpers, kept apart here: + * + * __free_zspage_lockless(): bare core; walks zpdescs and returns pages + * to the buddy allocator. Caller owns all zpdesc locks and has + * removed the zspage from its class list. Used by zs_free() outside + * class->lock so the buddy-side work does not stall the class. + * + * __free_zspage(): __free_zspage_lockless() + per-class accounting, + * under class->lock. Used by async_free_zspage(). + * + * free_zspage(): full wrapper - trylock zpdescs, remove from class + * list, call __free_zspage(); kicks deferred free on contention. + * Used by compaction. + */ static inline void __free_zspage_lockless(struct zs_pool *pool, struct zspage *zspage) { struct zpdesc *zpdesc, *next; -- 2.34.1