From patchwork Sun Jul 9 02:56:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Senozhatsky X-Patchwork-Id: 13305736 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 5FC1CEB64DA for ; Sun, 9 Jul 2023 02:58:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 754DC6B0072; Sat, 8 Jul 2023 22:58:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 705C08D0002; Sat, 8 Jul 2023 22:58:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5CCBF8D0001; Sat, 8 Jul 2023 22:58:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 4C5876B0072 for ; Sat, 8 Jul 2023 22:58:29 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 15AF94024E for ; Sun, 9 Jul 2023 02:58:29 +0000 (UTC) X-FDA: 80990565138.06.7B5BFF1 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by imf16.hostedemail.com (Postfix) with ESMTP id 2DDFD180002 for ; Sun, 9 Jul 2023 02:58:26 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=BPkvaOK8; spf=pass (imf16.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.172 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688871507; 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:references:dkim-signature; bh=YvrbRcVf34QYRGEvOeb8o51NnBzvGljIM/+6H4RQmnw=; b=gTUPbxyS4Usf7WusGcaYoOfqzZ5xyYdY2DIVoL5NqWcptSuSFYZogyMBJW+nlNvLBJQTAR BdOuNoH+51aYKXNHqly7xhy84OTXknGbMYu2rOQKpdxr5akBxxGxjgffxb4lxgTmvK/IQ7 o0Rdxx0fs0YTGbYumkG5f8LkK6kZquo= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=BPkvaOK8; spf=pass (imf16.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.172 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688871507; a=rsa-sha256; cv=none; b=akgW4FnvGI9Z+tEn4xhWdbfRa8EH5BYjJaIM/FtW5s255P7aIGLKkzAGCt67cW88XQfN1y WDAKZKVtHa53zIU2Sopwc3gy0VPJCeDU+8AB1AaQxZ+t4VITv1Qs5AayEHxE0z0TEd4F9a ASz2FfkCy7GWIDAFhSkxXJAUHDVEl0o= Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-1b8062c1ee1so23727175ad.3 for ; Sat, 08 Jul 2023 19:58:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1688871506; x=1691463506; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=YvrbRcVf34QYRGEvOeb8o51NnBzvGljIM/+6H4RQmnw=; b=BPkvaOK838go+G1HrQkX+Mx/IWl3EGU9AzamBueyGmEcC/mlSfa4//V2xYwFAA+fiK nTURG163tncGV6yHgRR74VZHTH6SlBDQovphq34eEEMZtlCimq9fS+6s3tJmUdJr6Tmz CqawMCutSOUCunelVTVmJJKLy8XgSPG9MCKjw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688871506; x=1691463506; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=YvrbRcVf34QYRGEvOeb8o51NnBzvGljIM/+6H4RQmnw=; b=N+Jo/AKOCVfVtp3n152WJRV5w2ynriGqubmp+UJebK0WeH9HK2a378bD+iAXyoGtTG lVMh7qvV5+e6pOv5x9MDec0TcVEfxTMGK0h6jcKK+/SRWtx9W6oc8A4htzwX9MxOEDiS bGDJu0TFc5WBKE5/wrJ9liGaOLPD3WzR2e6U0JJIBZMI7DQ60wm8l0l8aqZD0lF1cGqT Gc4YTCGxRa6AO7+GiWQQsVL7kba7yMx/SkRi0S1oT7cTXz6NHZ8uGEmLH60dOgmJ3Sjj 0FBPoG0IjTPudQl5Yb+ZO6Ie4q/Kjg7nJTsZxHFTnvo65BUK83J0ltWDJIC6y8vv/lFv NLpg== X-Gm-Message-State: ABy/qLb14Uh1LlI7cCJXACHrhM94LEj8pPvo7iED6QoE6vgkBRvfNTkq jZr+deqqa2anGIWngqjJpuCa4w== X-Google-Smtp-Source: APBJJlEbpU/NZCFkTgjjdaIt5zrIa2eMKgYl6thtBD0RkTksPKzcNAdlx+T295cYcg2D75rapKC4og== X-Received: by 2002:a17:902:b713:b0:1b8:903d:8dd0 with SMTP id d19-20020a170902b71300b001b8903d8dd0mr8567304pls.32.1688871505848; Sat, 08 Jul 2023 19:58:25 -0700 (PDT) Received: from tigerii.tok.corp.google.com ([2401:fa00:8f:203:42f3:1eb:4d14:e45a]) by smtp.gmail.com with ESMTPSA id m21-20020a170902bb9500b001b864add154sm5545981pls.154.2023.07.08.19.58.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Jul 2023 19:58:25 -0700 (PDT) From: Sergey Senozhatsky To: Andrew Morton , Minchan Kim Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sergey Senozhatsky Subject: [PATCH] zsmalloc: remove obj_tagged() Date: Sun, 9 Jul 2023 11:56:26 +0900 Message-ID: <20230709025817.3842416-1-senozhatsky@chromium.org> X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog MIME-Version: 1.0 X-Rspamd-Queue-Id: 2DDFD180002 X-Rspam-User: X-Stat-Signature: mbt9se6qtykp8z837r5sjzkw1cebtetr X-Rspamd-Server: rspam01 X-HE-Tag: 1688871506-103799 X-HE-Meta: U2FsdGVkX18Mn5EoP8ERmIdg8dfFqOL+beOpaVjjlQTyJbNrS6ziWmKGye5aMsp+4QVC5F8sdk33ZYzrY3poLjxtuO8YAO5onavNKfjHUOq1Oo2Vv2Iym5vXR7H6x+DXlbI9geAVUhf3IkH2gnMN+LSZBhnVEe7cP3ayWkXJdF8NIbvSAxODqkw5uzzjkJ08VqdUrMidV+xdaVaUIq31ypQ8PexoFprCJlp2L/HBoVJp6uAGy6qM/CGjc4xw5AuU+GWYRSi9xLvfb+olyrrY3oKaCwE3fgxsuNswNvD2OVLgpGp63DMaS5eTPNje5auXIK4kMgQyuhnTqKG6J5XGm9RtDSZQsAvluZHC/OphrAiG9w8Oven6t93m13Jh5oeiLWkBHoT/SOk1O89U2hZHnnVt88hW/lzAWk0kvRVq0sPUH+jNlgbZ8AXvFMHNmW4VoPuJ53rASlG5nHmX9xDYXEoVebifTp4UMYxD9MAzOyQefVqIu+j7SaukhHUamrC5Qm+hgcF3/ryuqbbLp8YHlcMJMrHYHInccU2BW9kRPV1h3nxyn4NQG0C+orlaGCLnLcIiOqUrqjJAZI2ZtyhtwHQ9do0coz5TiCC112NEG8EhaQMwYNuzXE2TIIK1DuZRSW09Ch2oFVe+/0bFUv5lj2xQ32D7nSfqxP3l1i6UmDkNzQr7ktZ8+CGrC3HFmbKVzKMketDsdr9cGivMLj7vJjDTi6iEWfzdtiFh6HLn9H0s21Leg2l2STtYhBFaNepN91qTsB73Ic28MtfDnsGogfsB3CY9FzCWoA4pGOwrpzhvumr8A/sMAxyevKsNHtn8eGqY9T7fiDt096nnbVjwMkG78XynNK0gbYb4VfBw7P3bbrW+u+TCNDYwaYLrjbIHUIJakWDtP81fdRGv0hEwELQNRJZoXVfis9J+ppV25vm6HOmQuH0R6rel2Xh8rmQyVk2mvwZMTKY/uyiAHeQ S5zB9cX4 c5+AraaR3tKRJ45kl89WLXR5ZEGkkXl/35Du0jHQ+EoMABx1OqOx3LhYSq7NxBR89bDL/WjuZMQ28hvpac/WKGrJbsXg4kCcsPj1xZo94TB0Ht+WYBfWdfZIwbMIdBMykcSWAaUu3ofWsQm49l71kRv3P1caEh5mV5zxF9shgc8i0naUiw9zo9nkkzQpXchoMpj/CVVZ3fJZ2aLMYPz2lFfNJKjC7BUPoUAKr6mw7xnK9YU/CDqqtD2rmfGMljHphpjvfJoVwVq7PXn0c0UaqwPrLzF6tkw3VHvWs6eEWOZxUCNBbjqLd5QA/jsaBWGp3FwnWnTBNhO4XIwa5GsPHVI6g/DDAvD9fK4kult1J3oV/GcsDctNfd1ndBUmcoaT1sjjvowVCB2cx/wS4bdV03zv2l70JJRWl8AyJX84BBgNLmcE4bdNd+hhqiTeHhIyvtn/10uWWJcqp64VJhZFxW84A9Ey0aKir34s0r4rydn/V5EA= 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: obj_tagged() is not needed at this point, because objects can only have one tag: OBJ_ALLOCATED_TAG. We needed obj_tagged() for the zsmalloc LRU implementation, which has now been removed. Simplify zsmalloc code and revert to the previous implementation that was in place before the zsmalloc LRU series. Signed-off-by: Sergey Senozhatsky Acked-by: Nhat Pham --- mm/zsmalloc.c | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 84beadc088b8..32f5bc4074df 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -795,8 +795,8 @@ static unsigned long handle_to_obj(unsigned long handle) return *(unsigned long *)handle; } -static bool obj_tagged(struct page *page, void *obj, unsigned long *phandle, - int tag) +static inline bool obj_allocated(struct page *page, void *obj, + unsigned long *phandle) { unsigned long handle; struct zspage *zspage = get_zspage(page); @@ -807,7 +807,7 @@ static bool obj_tagged(struct page *page, void *obj, unsigned long *phandle, } else handle = *(unsigned long *)obj; - if (!(handle & tag)) + if (!(handle & OBJ_ALLOCATED_TAG)) return false; /* Clear all tags before returning the handle */ @@ -815,11 +815,6 @@ static bool obj_tagged(struct page *page, void *obj, unsigned long *phandle, return true; } -static inline bool obj_allocated(struct page *page, void *obj, unsigned long *phandle) -{ - return obj_tagged(page, obj, phandle, OBJ_ALLOCATED_TAG); -} - static void reset_page(struct page *page) { __ClearPageMovable(page); @@ -1551,11 +1546,11 @@ static void zs_object_copy(struct size_class *class, unsigned long dst, } /* - * Find object with a certain tag in zspage from index object and + * Find alloced object in zspage from index object and * return handle. */ -static unsigned long find_tagged_obj(struct size_class *class, - struct page *page, int *obj_idx, int tag) +static unsigned long find_alloced_obj(struct size_class *class, + struct page *page, int *obj_idx) { unsigned int offset; int index = *obj_idx; @@ -1566,7 +1561,7 @@ static unsigned long find_tagged_obj(struct size_class *class, offset += class->size * index; while (offset < PAGE_SIZE) { - if (obj_tagged(page, addr + offset, &handle, tag)) + if (obj_allocated(page, addr + offset, &handle)) break; offset += class->size; @@ -1580,16 +1575,6 @@ static unsigned long find_tagged_obj(struct size_class *class, return handle; } -/* - * Find alloced object in zspage from index object and - * return handle. - */ -static unsigned long find_alloced_obj(struct size_class *class, - struct page *page, int *obj_idx) -{ - return find_tagged_obj(class, page, obj_idx, OBJ_ALLOCATED_TAG); -} - static void migrate_zspage(struct zs_pool *pool, struct zspage *src_zspage, struct zspage *dst_zspage) {