From mboxrd@z Thu Jan 1 00:00:00 1970 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 A32D5C4167B for ; Thu, 30 Nov 2023 10:13:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3244E8D0036; Thu, 30 Nov 2023 05:13:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2D3BC8D0001; Thu, 30 Nov 2023 05:13:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 14E2F8D0036; Thu, 30 Nov 2023 05:13:47 -0500 (EST) 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 EA7B58D0001 for ; Thu, 30 Nov 2023 05:13:46 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 87A2516015E for ; Thu, 30 Nov 2023 10:13:46 +0000 (UTC) X-FDA: 81514209252.13.D15C304 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by imf05.hostedemail.com (Postfix) with ESMTP id BDBFE100013 for ; Thu, 30 Nov 2023 10:13:44 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OKGFBr62; spf=pass (imf05.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701339224; 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=6s4/GinPwmjXp8PbuqsM/ouukWTYhIWhNNDkfCgacts=; b=7n4pDqKDGQLNHI10vfGl/gvLe7DfudWLSOkPAWKWQCUwek24+c8bzkP8VnAAmNBKxhtKk/ rOBxvAf2lqXcjPlPDi1MovmJO4stCUA+/YsjTU6668Gme7qJcB2uKtdNh0KCPzc30oHzll cQYe2biOCiqLZgyou1m8N9s6Wt5QhOc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701339224; a=rsa-sha256; cv=none; b=HiwWfGErTy/t1qHPx58lvI6AN9SPx0nkSSXwHyducfvi8D1CFMlNhfXY6ivLx/0akVtVu1 7g7+Xv6seV6f5fFW+HMy5vB/8f+7zVdnS4ofELiL+OkM0F9tQBzpKypZROczl1dxSJJ7SF F2MEJe7yG0FI/3IuuhecxKhUPl4Q3T8= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OKGFBr62; spf=pass (imf05.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-6cbe6d514cdso706047b3a.1 for ; Thu, 30 Nov 2023 02:13:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701339223; x=1701944023; darn=kvack.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=6s4/GinPwmjXp8PbuqsM/ouukWTYhIWhNNDkfCgacts=; b=OKGFBr62hvNvtGA4bfdU60htw1yqPj8KfWzUF4uN/CQNni3rEffTMe9aDp+EO3oi/b cgb+OqY8/xL+FYUyPLpHIhd09OGEBeRLPG+KjseeZLICWqEHo0C/nED3pcdB38VwcryR pESH3osJiTZa4Lwws5WHefjbOXGSypm6W4p5zgbKWTTzCZ5M++Z2Y4Cxp928+xNSXCiU WlhDYmtE1qsA2qHA9HV3FXh3jdA4n348kivTE/S8Ki59yx98cLQgm0iOAGCJWLvgqO7r IlA+hHuheKxp1RTM/ZN4r8vKQPX0yHUouz8BkZE4WyS4jh0XztkSGS1trM2Ckek2gJmO Jsvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701339223; x=1701944023; 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=6s4/GinPwmjXp8PbuqsM/ouukWTYhIWhNNDkfCgacts=; b=fdlM4ex2luOyzcurNsBBpwCaoB/EkVhV46eRbgfTaRNdR4xgFsSo9UJ2vjnwANvNeP hKjFrt+I7T+l5hxT4KtoiKCyILmNrSOVU4/l7qybhCnCAlryDNV82bgzhhhEdXl/LR1a vlV/iQ6exLl8+jaGXGoQKX2YyJcJOMUgGVn6QpjQZtuEbYL8AXip0Nrh6toxcLg6O0xn i6HR2BldCckAnhJaPAupEiTqiDl8grt+cpEBUhuas+1EmA7EZi1zDApRo6kAs25YVb6S jfhqQjbW72yqPO1Q9qYqiR2jeH1rrfdKKD6mQw0IV++ruKEBy5FuRrrlNb8Ar6vicFtV +wWw== X-Gm-Message-State: AOJu0YyOywo6vVZSLf3GavxW65uRZIVKVyCuA0WIXepDMoFxPnZPOHAB rcXvKhv6PSnxpsaKSQbhE5w= X-Google-Smtp-Source: AGHT+IGErMaw7pLwEkQPvsLeicTbR+t/oVEeqeV0rqcgbCDfrSFfgzMQ2nl0OvW/1207sCLUvGeYaw== X-Received: by 2002:a05:6a00:1496:b0:6cb:4d36:5d07 with SMTP id v22-20020a056a00149600b006cb4d365d07mr20752770pfu.10.1701339223391; Thu, 30 Nov 2023 02:13:43 -0800 (PST) Received: from localhost.localdomain ([1.245.180.67]) by smtp.gmail.com with ESMTPSA id r27-20020aa78b9b000000b006900cb919b8sm841402pfd.53.2023.11.30.02.13.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Nov 2023 02:13:42 -0800 (PST) From: Hyeonggon Yoo <42.hyeyoo@gmail.com> To: Minchan Kim , Sergey Senozhatsky Cc: Matthew Wilcox , Mike Rapoport , Yosry Ahmed , linux-mm@kvack.org, Hyeonggon Yoo <42.hyeyoo@gmail.com> Subject: [RFC PATCH v3 15/21] mm/zsmalloc: convert __free_zspage() to use zsdesc Date: Thu, 30 Nov 2023 19:12:36 +0900 Message-Id: <20231130101242.2590384-16-42.hyeyoo@gmail.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20231130101242.2590384-1-42.hyeyoo@gmail.com> References: <20231130101242.2590384-1-42.hyeyoo@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: yxzzf8o4t6d6yk694aasokq7318p96qh X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: BDBFE100013 X-Rspam-User: X-HE-Tag: 1701339224-581968 X-HE-Meta: U2FsdGVkX18k/AM+bzHx6+LZ/wEgbxbMoX7ns4qztZZCOMcsKTkZvy4w2GgvR29AgmzOwDK0t5JNBAqcNMYAsxXVNI+teyrTEk8vlxSEBQCEkV+2VqTzsfl0FBxPhbI4hcwFa4kejanA9d0F5LCIdhzSN1jpwg1/XZBZB/kv6xd1/kefGpAcog/Kct+aVGFpIzEkjFo8huxNGW6rjU7hIhd+WAK7ITETwBu4YL+GsTsSlyy8YPfcYGwBq+oW4Wy23S1F9rn8GQGYcumKYQR4X8FxXxC6+c9YH59xSld72JW5u8vip4CJY/l3o0gOs2PDMrw9Lqp6+4k/5lApoll/tN4mqjPPOQxZHn6ybGvA4e68U5MTcvG/3c7BtwGBerH7guPLwiwk02Xl36sd2iIwEcSH8YclF/O9vxa5XUrq9a/RyuFpn7EgysjA4xr3trigDct/Pjr6dg4Qv8K77Ja80QfI4ZR/965N9sefDAWln29Kemr66Sr1rNJHvyYfiBLNB1exMX3z0i+llxFC4288Mi7HwKvYc/BW7TmmiIzWOzZV5wIlsUkdCvg5j6mBJrftRjGI/OuRYk66maMgLpgZYBMROKA4JHkbdDJ69GvymarcRUvglFgfWMtE7c4aNM92f/0EV85sQhxQ4biO7TXLanQUTPvqX+pE0FGYVU/aUi9AZE6kmeStkmNdfMfneJi6SuHOILCk+0HdeLdXffZh4hzfyTRBvunGoXSS7meLWu2mXCfUcncKGUSjlTkFN0TNtlVsb1U1fVJUcHTq8UdIaWoW17CSh/Qhx3/0zFQ8b2DyLQW8ZKlhr580EgR6WTlWpUqH+DwAhP1CM0MPrJpGXbLYlwiz14AV+6fvGuEMM4VwrISy9P9lylNL9FXSEUe1Rbmo+Wre8fjCFjfQf7lOr0+fVIXmCH80e35DhwbB4gIFe4I4HkNQrjS/nINzVKHvhtoixIM2eRYSwdXhPXx wpEOV0Ze KeJauk7P/qo4oq7t+sMRGqoSTcIOnjS5Jg3soVKwQ81rPZBmWP5jxZ0Pv4ReIgi6/Nf+Vc/ipPUSTdT5IpmZEAWfqr+YA5EgYEQF0yJd6QnknBNn1Z/jSoZb0QpNL1grwLjhXD+PZ/tKtqO90vUI8tLmFQoUA5T4WYpHQa+wU2w4LiNZoOGAgW2VZkqHsdzw17HVGBcztWjcAeElUeYpXeiUY/0a+WzcLUk8HijCPSBw8bBOFmyPjJ7dcH7aOwaO4LhJFI+/Nk7+ygKk7IQsWNWoY1GeYsbThyeVYhQADomW4LnIDsEIvCTUmnoImplzZTjv+Sc2qnoauu0Q279Konuau6N/tfwcyapSQkdvMpuNkzOrXVI+00pG4J/BKRg8xM5uVjgg15AdkL8ZPo90up/x4c/lisLeuasbIsgj3kOBnNZ4sqGcAoIWl1QgKcQDY8sGLyq80gF3WRvoN8vcwC5ldt+I5uaWlI7DDxSzerzInJ8CRVM8Dczpk28qx5AblVUiK3/+4WBOjlOgaKPSyJkoxnEl4wJaMG30T8pp6Dhc5CxwW5Ifqn7e6OpiPu4l384xqzvVTuKGD+wfms8xCsqbk9A== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000020, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Introduce zsdesc_is_locked() and convert __free_zspage() to use zsdesc. Signed-off-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> --- mm/zsmalloc.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 92641a3b2d98..fdcc47569644 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -317,6 +317,11 @@ static inline void unlock_zsdesc(struct zsdesc *zsdesc) unlock_page(zsdesc_page(zsdesc)); } +static inline bool zsdesc_is_locked(struct zsdesc *zsdesc) +{ + return PageLocked(zsdesc_page(zsdesc)); +} + static inline void wait_on_zsdesc_locked(struct zsdesc *zsdesc) { wait_on_page_locked(zsdesc_page(zsdesc)); @@ -1011,7 +1016,7 @@ static int trylock_zspage(struct zspage *zspage) static void __free_zspage(struct zs_pool *pool, struct size_class *class, struct zspage *zspage) { - struct page *page, *next; + struct zsdesc *zsdesc, *next; int fg; unsigned int class_idx; @@ -1022,16 +1027,16 @@ static void __free_zspage(struct zs_pool *pool, struct size_class *class, VM_BUG_ON(get_zspage_inuse(zspage)); VM_BUG_ON(fg != ZS_INUSE_RATIO_0); - next = page = get_first_page(zspage); + next = zsdesc = get_first_zsdesc(zspage); do { - VM_BUG_ON_PAGE(!PageLocked(page), page); - next = get_next_page(page); - reset_zsdesc(page_zsdesc(page)); - unlock_page(page); - dec_zone_page_state(page, NR_ZSPAGES); - put_page(page); - page = next; - } while (page != NULL); + VM_BUG_ON_PAGE(!zsdesc_is_locked(zsdesc), zsdesc_page(zsdesc)); + next = get_next_zsdesc(zsdesc); + reset_zsdesc(zsdesc); + unlock_zsdesc(zsdesc); + zsdesc_dec_zone_page_state(zsdesc); + zsdesc_put(zsdesc); + zsdesc = next; + } while (zsdesc != NULL); cache_free_zspage(pool, zspage); -- 2.39.3