Message ID | 20230713042037.980211-3-42.hyeyoo@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 1CBAAEB64DD for <linux-mm@archiver.kernel.org>; Thu, 13 Jul 2023 04:21:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8B0958D0002; Thu, 13 Jul 2023 00:21:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 868536B007D; Thu, 13 Jul 2023 00:21:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 728328D0002; Thu, 13 Jul 2023 00:21:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 642D26B007B for <linux-mm@kvack.org>; Thu, 13 Jul 2023 00:21:03 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 374094005F for <linux-mm@kvack.org>; Thu, 13 Jul 2023 04:21:03 +0000 (UTC) X-FDA: 81005288406.03.CDA32CC Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by imf21.hostedemail.com (Postfix) with ESMTP id D2C5C1C000D for <linux-mm@kvack.org>; Thu, 13 Jul 2023 04:21:00 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=YRSuxrIH; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689222060; 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=2uyb10W8xRjD9R6Hckb+QVobZc3eb265x7Mbz+pRkDU=; b=5UPujt9hEMpQswIk7YkoQBPyFOlltWZxMOWpTY120edhyvLd+/P5jNPpmw/VfCqNL0xGt5 d3XWrct8kQDcUnOUK42UsoLeFKqdNUA+o5aiHPA+a9b4tBp2xrhf2YXUDbODLPTGiFAJMz D/OaXdcsFpfbhIk5tyMoYnkl0Tc1v6w= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=YRSuxrIH; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689222060; a=rsa-sha256; cv=none; b=UuSo2amjnlU9INTBgZflNErnLFAGM3PzPMJbQL5ErFMt0+SLbdTyS4iKfO91h8yrmmPHTD pQ0qR3EzgMh7216b/egES9+tHetQ5LE6VNEWLM6Kt+40+Z10cfbf2cxWrQ1InjoNCL1cJM giw5poN0DByYMDkmbIZdULPmFSp6wjA= Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-6687446eaccso311212b3a.3 for <linux-mm@kvack.org>; Wed, 12 Jul 2023 21:21:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689222059; x=1691814059; 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=2uyb10W8xRjD9R6Hckb+QVobZc3eb265x7Mbz+pRkDU=; b=YRSuxrIH8XKdAW0kQO3SmDGmJ+pvEqfPMHAcG7+sFafS/d+jT6N/m/StdjuFthkODl J9x6h1BvoAUJ2/0Py77CgQKA0V45/7UT3CCDyVErHqZgssLwbka39ahmK//VnFw5/Orb u0FUM5IpQcO6CKHS4DkgDUp2nPGIBzpSrAY+ckKGMG4p38UniHiXjXuVMY+sZQxK+UZx vqyB7eU1ay5ZD3cGjO/STbrR2/GjTvwsX3rqjh6UdhYbBju5LjFgBHJsB+MbMl4166hd 6hKN3Duy7Ko+5Jjf6CxkWYuosaPbu1WsOpO+6fO+x22OsbfGPNaUxGejvj3lD+1UlVTN +AFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689222059; x=1691814059; 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=2uyb10W8xRjD9R6Hckb+QVobZc3eb265x7Mbz+pRkDU=; b=haY72bpUq8VXNmKZqhGvTyAnGH2sLYvNfihoD1gneWxzB4SMyrMx0rmBm/wPneKMEU VEiUyIXCYuXN5T5CedXRunvM5qyBkQ7nYwtn8caaXuKaqtTgw2ulERrVz8LQtsl0ws/n yt/FdOaNxu8ZDUaHOuwvlr03/F/zy4DrtDXeERaEdL1hw1sAaXzF3Em3/tFN6pUHAF3Z ZAOrO1A//YtcLB3RNCCc6rhJrGHThNXS9UH6ZzPld/+UPic77HIAf+mGmSC+TXLaiCeI /wB7V51p7IqLlvmNEG0gAW/9G46TgMf/4ley8V96NHCnHnKVM4HpwACOf1aAb1vOSq3b 0jNw== X-Gm-Message-State: ABy/qLY9uS7cuXdhsb2K04d53sAVy67tJhhXl17HoIWQy/NdXjC35LuZ Y3aWUYnhwF7bHGBF6O52WYQ= X-Google-Smtp-Source: APBJJlFngfTCIZX6kEzbBCWxzo+TpDlnPYvBK4wEL/QFsnQzudRdGVDSAK30ILKKi++2X8hEX7YykA== X-Received: by 2002:a05:6a20:4291:b0:133:21c3:115e with SMTP id o17-20020a056a20429100b0013321c3115emr442265pzj.48.1689222059554; Wed, 12 Jul 2023 21:20:59 -0700 (PDT) Received: from fedora.. ([1.245.179.104]) by smtp.gmail.com with ESMTPSA id u18-20020aa78392000000b006827c26f147sm4346601pfm.138.2023.07.12.21.20.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 21:20:58 -0700 (PDT) From: Hyeonggon Yoo <42.hyeyoo@gmail.com> To: Minchan Kim <minchan@kernel.org>, Sergey Senozhatsky <senozhatsky@chromium.org> Cc: Andrew Morton <akpm@linux-foundation.org>, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Matthew Wilcox <willy@infradead.org>, Mike Rapoport <rppt@kernel.org>, Hyeonggon Yoo <42.hyeyoo@gmail.com> Subject: [RFC PATCH v2 02/21] mm/zsmalloc: add utility functions for zsdesc Date: Thu, 13 Jul 2023 13:20:17 +0900 Message-ID: <20230713042037.980211-3-42.hyeyoo@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230713042037.980211-1-42.hyeyoo@gmail.com> References: <20230713042037.980211-1-42.hyeyoo@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: D2C5C1C000D X-Stat-Signature: 4bk9m8c5dnx9a1by3cgzxk8exsjtcaz3 X-HE-Tag: 1689222060-410569 X-HE-Meta: U2FsdGVkX19fQomKzMeRyo2r1oIePtL5kRRxL91P5OYiBii882sMT4vYgwI3cY6Q2oNK+GNAasJMIjihSr1SvimRR7A4s4dDFLcxrgOpOpma6E7GShnmB3lYaT4NIhQutumAORKcP5e7XCKX6406n9YAtU4pMhCFO1JkpANpVwOY2J1HEqpBinTs36uKwony1/W2DkF3KhWNhETgZu8kiPl1t30pR3zzbdX8U3YYqVMKWUrkA5sptGoQ612qeCVDckCwTovi/y7bqBYaZl+o4V3x9ufeoROmrTvyqjsIOJnR7UAwHEXc3JQSzMHPKCl85aqYgcGAO8yq88DPVAi748fM1I9GkI0MTbofp2RWLr57DKAL604lZEvF8WiBRj6ZmjuacqCXoLYSpLZVZ28GgZmJ2FkesuxE/ktBAgWqo4KblNAY7BpopAC2t0tcZWGTvar6pZStWJvsaZUllXZlR2o41fRHXzgD6lkQ5JEawyx9VA65xpnCXFAA7KSYQ1QRh1eOip6j5NPAuOy2xshrhhItP31cSD5p/LZxRILNdXgQY3e7/O4jOBK/VwfkUc9gr3iJ7rA4cOY//U67iLu9fIVG8LmFtdYf+XgVDZBxfPkuQtEXgwN7wm7VS9QSsAbkmelenkDZatbhG5lmHS+3S+B3oLnaNF+is913I91r2n7yNBKQyMDokrIuTRdtGxe0SS3ZcDtSpYGEs8v1P96msjwDJaVCkEIwndzbJwTqnJGPQ5CqhuTQ65EQJnemVsU2itUbsznSY65T1Gj+ajDVzi4bJVXJcLbxHI1whzMmhWZbgFw45H2E/x+NTOhPRaVrECuan2r4/6rSN9zv5/u4+yp930Zopnv2ondjyG9DcclZaEKWNK0z2DuW88RMho9cWs1BmC/2kv2Mqt0cjAJnTIF8CMqPjZFWlfs/BBvrH+VicwtNLnxL72RMzZVqlAlODdfPYErRxrL7UAmBpjr X5omKyzv Juxa9fyJLnCMjXGQUqKhsjjvzwOFuqpBc9bnJYh5k5VJSgEyUuEirmlpUzV94epD1CbifI9ecR9AHjOxDMTfkiAZdRrg6jvJhmVWo75Akr6se29tDoUkDk5JNxVkAoU9mfiozxFXUUuGegJUvofrosStinfDS/UWAPKh5c4f7TvjH1/2BEIjilbVbAAWzeWStyaVioDyb1VXztpcIRJZ0vdUsp2iKaP1Q/n+QLQORIf3BkUci/hsv3yTeTby7a4pd1KtOG/Oo4mLheybfERmniqUG1PSLQiN1WnfGEbQAILkNzS5H535V5RbKtRogFDOCXvbuk0TCmqDq0DsT8bzJjY7Fgb3ZiSAyFeO6mZt6b40jUnEilklHPgxi26bRQdgo+36NGM0X9zTqtHEuCUEadEFS2NmrRhpTdRPo5Vud0FcYmz+eUtL76coosSTmw0cNo2C63ewOX7HZhl4ahBgrtt4/Iw3vrAi70N4fI785SUn4oD4ZAJ9yvdW04G1rdfLlL4n7dnBaRqFPqoum+LZ9uPjF9F6ZqikBvKwDmI4yzqzQidY= 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: <linux-mm.kvack.org> |
Series |
mm/zsmalloc: Split zsdesc from struct page
|
expand
|
diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 2204bea4f289..11c203e79c39 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -293,6 +293,39 @@ ZSDESC_MATCH(_refcount, _refcount); #undef ZSDESC_MATCH static_assert(sizeof(struct zsdesc) <= sizeof(struct page)); +#define zsdesc_page(zdesc) (_Generic((zdesc), \ + const struct zsdesc *: (const struct page *)zdesc, \ + struct zsdesc *: (struct page *)zdesc)) + +static inline struct zsdesc *page_zsdesc(struct page *page) +{ + return (struct zsdesc *)page; +} + +static inline unsigned long zsdesc_pfn(const struct zsdesc *zsdesc) +{ + return page_to_pfn(zsdesc_page(zsdesc)); +} + +static inline struct zsdesc *pfn_zsdesc(unsigned long pfn) +{ + return page_zsdesc(pfn_to_page(pfn)); +} + +static inline void zsdesc_get(struct zsdesc *zsdesc) +{ + struct folio *folio = (struct folio *)zsdesc; + + folio_get(folio); +} + +static inline void zsdesc_put(struct zsdesc *zsdesc) +{ + struct folio *folio = (struct folio *)zsdesc; + + folio_put(folio); +} + /* huge object: pages_per_zspage == 1 && maxobj_per_zspage == 1 */ static void SetZsHugePage(struct zspage *zspage) {
Introduce basic utility functions for zsdesc to avoid directly accessing fields of struct page. More helpers will be defined later. zsdesc_page() is defined with _Generic to preserve constness. page_zsdesc() does not call compound_head() because zsdesc is always a base page. Signed-off-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> --- mm/zsmalloc.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)