From patchwork Mon Feb 20 13:21:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Harry (Hyeonggon) Yoo" <42.hyeyoo@gmail.com> X-Patchwork-Id: 13146433 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 0CC9FC05027 for ; Mon, 20 Feb 2023 13:22:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A96566B007D; Mon, 20 Feb 2023 08:22:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A46B76B007E; Mon, 20 Feb 2023 08:22:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 90DD56B0080; Mon, 20 Feb 2023 08:22:50 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 79D006B007D for ; Mon, 20 Feb 2023 08:22:50 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3A5AD1A032D for ; Mon, 20 Feb 2023 13:22:50 +0000 (UTC) X-FDA: 80487735300.19.5E984FC Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) by imf30.hostedemail.com (Postfix) with ESMTP id 6694080021 for ; Mon, 20 Feb 2023 13:22:48 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b="XXi/LCKA"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.216.44 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=1676899368; 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=+xSSG1cF+HzKEOU6xIlHzi5yWE+5FWq8Is/agZPYpIY=; b=E0PtyZDiszB2ZWrYeFKgkuuvpJ0jGzkABRyrYp7G1BJaZZ9ClSocP320uRElNSsrTVP50H 0X9er/lnLmmUTL70nAtZFunuEkaXNbZdYSD8mhQvq0EzM8GamfnQoMZaXHYdfiFGhmBgQc suUCE1s7ew4y7MCaqN6Dn1uFftWq4JM= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b="XXi/LCKA"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.216.44 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676899368; a=rsa-sha256; cv=none; b=nXbJGbckifUU15Vf2AANT4/LaINbBKEzLgRKQHQwnoJ607CBqd8ZjzxCSYPK5etNvL0oHG 4+txsNitbfMD+1ibGLjzylsCG6Z5+YoXMoyFemSfIRCSng4fXjIUhTwIY4Zu0uRZY9Fdl8 WY9QLKPRR20k9YsU00CT8uoqOenQVOI= Received: by mail-pj1-f44.google.com with SMTP id nw10-20020a17090b254a00b00233d7314c1cso1503960pjb.5 for ; Mon, 20 Feb 2023 05:22:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=+xSSG1cF+HzKEOU6xIlHzi5yWE+5FWq8Is/agZPYpIY=; b=XXi/LCKAo2mFdy0UvJMaKl0dX6pABmdPv+T5Q04/L2J4Z0mnyfCfZYKrWUl2jzEHRL Vp0oZdsPH4k6vYoSt3snfQaVGubVwdHLUk46YcORt0vcDraCo6618MR/eUV4dirTLLfZ fN4Ym/DaEhd6zOPGRywO0dd6KqfriiyxFQKu/5j4sYqUqz1RYsg1TZuQszKdGqxtR3lz o8Wgi5vIG91QixPMCewNjV1WuS4lbJ1VaEpMENupcdBn1AReE1X9u1EIXW0EIyKB/PNM gwu/MikGGt6cFAJykt+NKEluqG7lzyGvnffK0GHDlDrbf6zF7D4A002XRxvWSP/MKFbQ Q6BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=+xSSG1cF+HzKEOU6xIlHzi5yWE+5FWq8Is/agZPYpIY=; b=WVmbYZGOEpKWwdYQPFWCgo/iTY8ve3ubxzUZ2Sa9O10lKtOSPbFkO3n0l4a8Si5mzT E2PrSxE+5Io9cMZcs+x+mcF60CftXskFmdxWeG9L7Y7DU1o+gJb7s3HYnOb9Wjm3oi5y Zu0l5h2+ojVxoiJWhgvvcWKRl2krNN8PqhjoUoBzcNQ3IgSz0tF07ISFuuEER/1T/KCL 4Gope+kDgfzd7cYqTODrDNMH3U3JCc9XCi7LqDBbRS0u9nuf7Yw4lfyCe+PBfKh4mQ57 tMm0/BTo0O7xOfZ2C4sTY7d9jBI5poNVA3eIPGuy2xsI3s0uUEQC4G5QmrGe4B7o8gbV 59Jg== X-Gm-Message-State: AO0yUKVtcY8a2Uey0UCr6EfJq1DKmSYKT3OOb/d+HmfHn9cDg2Rpm8c/ opoynfe2/ekhc2BGszsYv6Q= X-Google-Smtp-Source: AK7set+4/MHxZuGpQOEjDZC2tljelJHKpPjn9FokUXyXvUusUJ10ZCD3dsuq0mleZJBQW/TK7ircuQ== X-Received: by 2002:a17:902:f685:b0:19c:169e:ec56 with SMTP id l5-20020a170902f68500b0019c169eec56mr1283278plg.37.1676899367380; Mon, 20 Feb 2023 05:22:47 -0800 (PST) Received: from test-ha.kr-central-1.c.kakaoi.io ([210.109.63.229]) by smtp.gmail.com with ESMTPSA id x2-20020a170902fe8200b0019c13d032d8sm6125436plm.253.2023.02.20.05.22.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 05:22:46 -0800 (PST) From: Hyeonggon Yoo <42.hyeyoo@gmail.com> To: Minchan Kim , Sergey Senozhatsky , Matthew Wilcox Cc: Andrew Morton , linux-mm@kvack.org, Hyeonggon Yoo <42.hyeyoo@gmail.com> Subject: [RFC PATCH 05/25] mm/zsmalloc: convert {try,}lock_zspage() to use zsdesc Date: Mon, 20 Feb 2023 13:21:58 +0000 Message-Id: <20230220132218.546369-6-42.hyeyoo@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230220132218.546369-1-42.hyeyoo@gmail.com> References: <20230220132218.546369-1-42.hyeyoo@gmail.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 6694080021 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: a38i1oniyk9wdiuta15fskeyqp9sbbi4 X-HE-Tag: 1676899368-607427 X-HE-Meta: U2FsdGVkX193NKpybDW68H+rhPIs7R+qybmke5j+zDd68qm0KLGZ7UZP/P/RglxjKhKwIZrQq4nTMCofUvqyIpzMttKW9NXGuzfsTguP2SRDAaTIllMdVji6chl8JPLAkyQ7MJdJSxQVFAEr/boXCjV1741nmFLoMfWGMqlPMcvY0GY6WjyDWLAz3Lqkx9gkVXU9IxUWa2BzylWv0eS7QHCeFOb1fOAlnAGsjANB+mKgtQxOHSw012/GVH8OJsROJEoPhTP1AGXlFfP42UTKlxmUHa6WAaFexl7pfOEhotOnMVXu81jkwao5A55yxwdlyPYfRLIulqzRu/mWeuXwovSBC+bKgz2X8bwCbZyME8xismDVOR739uq7otMGEj6ey/7PhhPCYzuVH8bxlmVJQrXJ1GsvHbDfx2Uxp0QngR1wYQvEHu+S7CIoZ09eNHiqCcnHfPyTOWbZHtB7R6FTMx4kNetqUPpJmdsVt/41K9FtZNY3fggBzqMmu0t3FaMpH15zKzIql3kWBLUK2Rb7KFb5wR7qQiS68FWCYXH/ctKhPPiMqJuaODrOfu4zSJ8j3bddc0Mkwrz/4U58FM7TakhsIfGO0nrVgKldwuPtKBBptvg0l8BvRU/irMLlJGfqtZhJe6cKeG6/MG9/RLNdTL4OlwoAr62ky4ImV44y2Wm5sNZMMbii93VGAcVwCMlopNnjUtrnMo+pka3s5emFbSfkHD1DwzXv5MNHAr0ISWVJ0FQjZ8cfAx+L+fnNA6No0itEeRUEaqcJKbYpT441QMtF5acF6qcTgP08XyUeYjqbgNhy2vE7Mpwsp2vabAspttEbxkSpG1nJn2Ido1pB7mozAGCPolGddRf4kMzpj8CCJ0i4bHsNkFfP2QDgNPFyqrlB5SM5lMApbpM9DUfeVRXizdqLQeoNl63s7cbxiSQSVqIsq6BVd78SkVooNw1qL7PRfHS0I2xSTBtpy2M 3LBAtbxj jYxDeFY97EK3xmUkTYQ5zc9Xibew4M38RknZ4A5F5CT4qhRwvIoN8BOZ64NM+7ajO0scxJZOAfzq+Whp5gNGKV/mOIDtYyu/1NDNlTL8JW7eAFztZGTHiPRgOiyZRGc5Nfxgvvz7FeOMx6xYWmfDlCfQK1jJu6ZMtE6FlGkfAvH7JJwcSRoDz2LuA7hiGCnaRfacvSgtV/wErX/yUxNLujXJi3GjMDbu/kp91jSNO0EMUsuX+lAk593v236xGNOfqDWs6ajZW3iT4KsezZ7AeP1JVa581jscyGkylPouNqJa52jEAWSBgzooh6h0PCuM62GSuY7bZfdhegACidMvXDoA/Kax4lIOFwpd6hAqRYmY6S/WFZFLDXRLn+NiPfY2Cz1lKJd4ym3Y+Jb5mhlZ5En23Zqed7Gx+dV9eHxzgfZSYIP0KdzuB0kTvu+0PH78vX21JCrm+uc6CelndPGewb4akxeIqXsfsevo2ehVCyIQHYcc8gj2BK/W3cEC6IJ8BwbF5uoXlm/BV5W+OJ21+6RAa5dMuCzTpjAD0gdHmTmO91Y5Ie7IqL0B3ZhXdqUqeIELoA5ecazK3Ok3VfwF9D1C6sFqJ18FYb0UH 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: Convert trylock_zspage() and lock_zspage() to use zsdesc. Signed-off-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> --- mm/zsmalloc.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 1ee9cfae282b..dc6a7130cdfd 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -1091,11 +1091,11 @@ static void reset_page(struct page *page) static int trylock_zspage(struct zspage *zspage) { - struct page *cursor, *fail; + struct zsdesc *cursor, *fail; - for (cursor = get_first_page(zspage); cursor != NULL; cursor = - get_next_page(cursor)) { - if (!trylock_page(cursor)) { + for (cursor = get_first_zsdesc(zspage); cursor != NULL; cursor = + get_next_zsdesc(cursor)) { + if (!trylock_zsdesc(cursor)) { fail = cursor; goto unlock; } @@ -1103,9 +1103,9 @@ static int trylock_zspage(struct zspage *zspage) return 1; unlock: - for (cursor = get_first_page(zspage); cursor != fail; cursor = - get_next_page(cursor)) - unlock_page(cursor); + for (cursor = get_first_zsdesc(zspage); cursor != fail; cursor = + get_next_zsdesc(cursor)) + unlock_zsdesc(cursor); return 0; } @@ -2056,7 +2056,7 @@ static enum fullness_group putback_zspage(struct size_class *class, */ static void lock_zspage(struct zspage *zspage) { - struct page *curr_page, *page; + struct zsdesc *curr_zsdesc, *zsdesc; /* * Pages we haven't locked yet can be migrated off the list while we're @@ -2068,24 +2068,24 @@ static void lock_zspage(struct zspage *zspage) */ while (1) { migrate_read_lock(zspage); - page = get_first_page(zspage); - if (trylock_page(page)) + zsdesc = get_first_zsdesc(zspage); + if (trylock_zsdesc(zsdesc)) break; - get_page(page); + zsdesc_get(zsdesc); migrate_read_unlock(zspage); - wait_on_page_locked(page); - put_page(page); + wait_on_zsdesc_locked(zsdesc); + zsdesc_put(zsdesc); } - curr_page = page; - while ((page = get_next_page(curr_page))) { - if (trylock_page(page)) { - curr_page = page; + curr_zsdesc = zsdesc; + while ((zsdesc = get_next_zsdesc(curr_zsdesc))) { + if (trylock_zsdesc(zsdesc)) { + curr_zsdesc = zsdesc; } else { - get_page(page); + zsdesc_get(zsdesc); migrate_read_unlock(zspage); - wait_on_page_locked(page); - put_page(page); + wait_on_zsdesc_locked(zsdesc); + zsdesc_put(zsdesc); migrate_read_lock(zspage); } }