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 81185E77188 for ; Fri, 10 Jan 2025 06:08:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 245756B0093; Fri, 10 Jan 2025 01:08:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F54E8D0001; Fri, 10 Jan 2025 01:08:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 095ED6B0098; Fri, 10 Jan 2025 01:08:51 -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 DEDF36B0093 for ; Fri, 10 Jan 2025 01:08:50 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 9C1E51407CC for ; Fri, 10 Jan 2025 06:08:50 +0000 (UTC) X-FDA: 82990513620.07.4692572 Received: from invmail3.skhynix.com (exvmail3.skhynix.com [166.125.252.90]) by imf01.hostedemail.com (Postfix) with ESMTP id D9E9140010 for ; Fri, 10 Jan 2025 06:08:47 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf01.hostedemail.com: domain of hyeonggon.yoo@sk.com designates 166.125.252.90 as permitted sender) smtp.mailfrom=hyeonggon.yoo@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736489328; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0Tzam+NXxyJb2lYipoxjcV0LsqAarnt1GZ8wYHd/I/A=; b=FPgp50Dp47oBJooVo3+pVcuZ4eUqu50QRVQ9YNtAr1QAg0ltLuN8NS9Npro7CW4fubb3Yz 4aboXdutS4+Asb9AhCUo898bHGc4/BMjjhVlM/EFbGgspZmqO9cZOlaEmV+GZI1AGLKfhn J908XhjivmV3y+Fw9Y2OHK6ZQgA6cn8= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf01.hostedemail.com: domain of hyeonggon.yoo@sk.com designates 166.125.252.90 as permitted sender) smtp.mailfrom=hyeonggon.yoo@sk.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736489328; a=rsa-sha256; cv=none; b=pI0UT0TUFTUDjT4jJJaQxqTRyIEDCzz6h4JE9bEkXzhM//4WEFLC9/eaCqKKH1WbBu0E8j 2mwRPPeBDNV4UtkKL+oiWxsWOKH93kgx7bYx3N2VvQerM6zGPaaEFnd3GubhQlPo4eol8U omDxgHn5zgQiMjecWzc2nwwpJve3kcM= X-AuditID: a67dfc59-791ff700000194b3-7c-6780b96d48e3 Message-ID: <2c4596bf-ee80-46fc-af87-d564b90c5110@sk.com> Date: Fri, 10 Jan 2025 15:08:44 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: kernel_team@skhynix.com, Minchan Kim , Sergey Senozhatsky , Andrew Morton , "linux-mm@kvack.org" , Vishal Moola , Alex Shi , Alex Shi Subject: Re: [PATCH v9 mm-unstable 11/18] mm/zsmalloc: convert reset_page to reset_zpdesc To: Matthew Wilcox , Hyeonggon Yoo <42.hyeyoo@gmail.com> References: <20241216150450.1228021-1-42.hyeyoo@gmail.com> <20241216150450.1228021-12-42.hyeyoo@gmail.com> Content-Language: en-US From: Hyeonggon Yoo In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrPLMWRmVeSWpSXmKPExsXC9ZZnoW7uzoZ0g1X/hS0m9hhYzFm/hs1i +d3H7Bb31vxntVj29T27xY6JGha7Ny5is1i/7warxe8fc9gcOD1mN1xk8dg56y67x+YVWh6b VnWyeWz6NInd48SM3ywBbFFcNimpOZllqUX6dglcGWfefGEsuC5c8a51PlMD4wP+LkZODgkB E4nu67/YYOzTz56wg9i8ApYSszqPMILYLAKqEuee9rBBxAUlTs58wgJiiwrIS9y/NQOonouD WWAdk8SJ3R+ZQRLCAtESM3ZOA2rm4BAR8JXYtjIMpEZIYBqjxP72y0wgNcwC4hK3nsxnAqlh E9CS2NGZChLmBLrh6tlmZogSM4murV2MELa8xPa3c5hB5kgIXGaT2LLvICvE0ZISB1fcYJnA KDgLyX2zkKyYhWTWLCSzFjCyrGIUycwry03MzDHWK87OqMzLrNBLzs/dxAiMlmW1fyJ3MH67 EHyIUYCDUYmH12FXfboQa2JZcWXuIUYJDmYlEV5L2dp0Id6UxMqq1KL8+KLSnNTiQ4zSHCxK 4rxG38pThATSE0tSs1NTC1KLYLJMHJxSDYwmk7R+h2+8G1KbW5q8Y8WmBtt6p3ifoz8EzI9n +N698jWjvmvn1sBcc93HkjdP6rHlzLGSa+J06ZNa5XyDfcIRFaP92z7e2Tzd0GRHgH93R61w bvnX2MP5rxJm3g3fFnFwRVzolySxtr1aC+40PPb1FLTYNT3t6/MMv2kCvrtmsOR8iIsy51Zi Kc5INNRiLipOBAD6uoB1kgIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrCLMWRmVeSWpSXmKPExsXCNUOnRDd3Z0O6wcXDzBYTewws5qxfw2ax /O5jdovDc0+yWtxb85/VYtnX9+wWOyZqWOzeuIjNYv2+G6wWv3/MYXPg8pjdcJHFY+esu+we m1doeWxa1cnmsenTJHaPEzN+s3gsfvGBKYA9issmJTUnsyy1SN8ugSvjzJsvjAXXhSvetc5n amB8wN/FyMkhIWAicfrZE3YQm1fAUmJW5xFGEJtFQFXi3NMeNoi4oMTJmU9YQGxRAXmJ+7dm ANVzcTALrGOSOLH7IzNIQlggWmLGzmlAzRwcIgK+EttWhoHUCAlMY5TY336ZCaSGWUBc4taT +UwgNWwCWhI7OlNBwpxAN1w928wMUWIm0bW1ixHClpfY/nYO8wRGvllIzpiFZNIsJC2zkLQs YGRZxSiSmVeWm5iZY6ZXnJ1RmZdZoZecn7uJERj2y2r/TNrB+O2y+yFGAQ5GJR5eh1316UKs iWXFlbmHGCU4mJVEeC1la9OFeFMSK6tSi/Lji0pzUosPMUpzsCiJ83qFpyYICaQnlqRmp6YW pBbBZJk4OKUaGDfxBMxyebum3Ve7+CfzxuyQ38lyd9a1ST3/7j+tUdv+cp/9b1Yh81P52xJF jG5o/t46l0t1il7Xo79agkKlzPEz97lKz737uL7x+t1Kye/Nsg4XSxg7FGMXF91/VyytraX8 3y86rMpSxenXQ46wSr+ydqVb9Y/cmqtSA+w1fgboh7oH985UYinOSDTUYi4qTgQAhFD5dXcC AAA= X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: D9E9140010 X-Stat-Signature: ehro8unbpae9ewrdhdrch6xrg6k4z7yu X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1736489327-181615 X-HE-Meta: U2FsdGVkX1+78NT12MeIHlkUywNI+UQrl1jd5ZLbQuM3B6vN4h3Pf9P2ojx+boFVoJVs3r688ythTfAyZKxbcHcRNsgBFALciZaSj1wR3GtznEKLX8zgZAo4xpVIlrKKBayDxNnQQfxFp+CnzD2WxtxwX7Q6s7e+RC2CesPw7nNvLu1A7QiHrrtcRd+VkWRbjP6Toa4KzalRhD1Uw6i6nr73jfMVHc7KPc8zZ3Bz2vMPAuIej1onSQFkpaWr3sfZkZfjrXFiPu5j7I4zy4qr22645g8ipbzG3Gs94rzMPc5HalEuf2v1yxwRZ8f+U1MiMiE0OTP8RDxbT5fbA1v6VlzdQbdTOnVanX3LYPSUbG6EkKQijvuUimWmDUZA+HRxaG/7vlASBlNIIj/hyW6suoGsqhqrbfsqA35fE5Vg9tVW73iREcIxBFTSmJfcGo7UJ57EV0F1+29E8su/RpkZRhlHXcn5VgKbmRt5um24pAYrR9dgk17d+0lnRwaOyE84w5fq7zmY7mW3Z4jOkrdtEv1ugOGW2BKiZivsjQFCElzpqPNcHiEbWBCNgk4fLD0V9il5IJ9JHgRnGaMqjKf3XPb6JRRxTzXB6CG/ssgQ0jyeCHQLht1343RPPGuh5mB/YDrsByjgwtK0mkcTaZgq1uwokDYpLxX7mu5XzksWeOS9wHTWaf//S64XkwxVVhXrd95YorWmKLuAfdr8eMEq4hlXd48uty7KcqG7It3wOLJzvm9XABEzMk75XqbsnX8JSziK+usY6jDf9H5m4QeFV0GTWENXHvegSIqP2VUf2EOKhFRrEiYZzRj4YQgX66qYqwJbflVy4iJx+3+YUaAh25C1sAHVEJfPxn5iEfU3ONed/XuykhqQNKWcwAkZHswaCngyhKx54PL/GzdfZd9mGh35Ef48Zut4xmMnBLvdEqHRXoDPMqVI+lxE4qwzPryVT2dqLPOpeLQcsNr7UYV h+13DxZQ Ttt1+BuyA9BJwN0NXjTPpCFlW+3kiY5Xw73XrFe195+lJalVZlUabi5ArBhCBanko7B3H/VM2k0M4lWSK2+kN3VTRTWQ/QBagfwN5IR/4YDk+GZ7m4avaMHDR0yDw+LjYTGTbBuWDt2EnAmvjskN49HTKlAydPG/eRgAJ5ErPhVmgIsBRlToOpNG8pprqxho5MvWAGpB6mvl9jiFeWroSXIgiGJfrj4dqjTV3 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: List-Subscribe: List-Unsubscribe: On 1/10/2025 1:43 PM, Matthew Wilcox wrote: > On Tue, Dec 17, 2024 at 12:04:42AM +0900, Hyeonggon Yoo wrote: >> From: Alex Shi >> >> zpdesc.zspage matches with page.private, zpdesc.next matches with >> page.index. They will be reset in reset_page() which is called prior to >> free base pages of a zspage. >> >> Since the fields that need to be initialized are independent of the >> order in struct zpdesc, Keep it to use struct page to ensure robustness >> against potential rearrangements of struct zpdesc fields in the future. >> >> [42.hyeyoo: keep reset_zpdesc() to use struct page fields] > > Ummm ... why did you make this change? Now page->index still has a user > in zsmalloc ;-( Ohhh.., my bad :/ I was thinking of a situation when someone re-arranges zpdesc fields and forgets to reset the field that overlaps page->index now. And when writing it did not consider that we're going to remove usages of page->index anyway... Let me fix this - will send an updated version of this patch or series (whatever way that is convenient for You and Andrew) --- Hyeonggon >> Signed-off-by: Alex Shi >> Signed-off-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> >> --- >> mm/zsmalloc.c | 8 +++++--- >> 1 file changed, 5 insertions(+), 3 deletions(-) >> >> diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c >> index 432e78e61d2e..dded6d1f3b7a 100644 >> --- a/mm/zsmalloc.c >> +++ b/mm/zsmalloc.c >> @@ -843,8 +843,10 @@ static inline bool obj_allocated(struct zpdesc *zpdesc, void *obj, >> return true; >> } >> >> -static void reset_page(struct page *page) >> +static void reset_zpdesc(struct zpdesc *zpdesc) >> { >> + struct page *page = zpdesc_page(zpdesc); >> + >> __ClearPageMovable(page); >> ClearPagePrivate(page); >> set_page_private(page, 0); >> @@ -887,7 +889,7 @@ static void __free_zspage(struct zs_pool *pool, struct size_class *class, >> do { >> VM_BUG_ON_PAGE(!PageLocked(page), page); >> next = get_next_page(page); >> - reset_page(page); >> + reset_zpdesc(page_zpdesc(page)); >> unlock_page(page); >> dec_zone_page_state(page, NR_ZSPAGES); >> put_page(page); >> @@ -1865,7 +1867,7 @@ static int zs_page_migrate(struct page *newpage, struct page *page, >> zpdesc_inc_zone_page_state(newzpdesc); >> } >> >> - reset_page(page); >> + reset_zpdesc(zpdesc); >> zpdesc_put(zpdesc); >> >> return MIGRATEPAGE_SUCCESS; >> -- >> 2.43.5 >> >