From patchwork Fri Aug 19 03:55:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Muchun Song X-Patchwork-Id: 12948291 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 718C6C25B0E for ; Fri, 19 Aug 2022 03:56:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AA0118D0003; Thu, 18 Aug 2022 23:56:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A4F6E8D0002; Thu, 18 Aug 2022 23:56:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 916A68D0003; Thu, 18 Aug 2022 23:56:14 -0400 (EDT) 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 804658D0002 for ; Thu, 18 Aug 2022 23:56:14 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 4F84E140207 for ; Fri, 19 Aug 2022 03:56:14 +0000 (UTC) X-FDA: 79814979468.20.98DE6F0 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) by imf24.hostedemail.com (Postfix) with ESMTP id CB7C218000E for ; Fri, 19 Aug 2022 03:56:12 +0000 (UTC) Received: by mail-pj1-f48.google.com with SMTP id o5-20020a17090a3d4500b001ef76490983so3714929pjf.2 for ; Thu, 18 Aug 2022 20:56:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc; bh=lsYH3OgGm+oHq1p9PQ/FH9m10DPJDbLS51J0/xysfI4=; b=xyWUxCnCtiRVks8bx4WTVcTP79R4XwxodGozr2BfuWMYL2wMiy9QNiUXrDQBOtYoHZ G6rhUiXlwXfcFEn82tlDfnoPcHgyk8tYiRnfcdNTkE9hb2pOUfkLy739UAWc4Ybzq1IP t4z1nTW/72bSvA9ufhs4aCHBc7FrSBrqLzACp6Uwph6Sk7cp5bJXw6yO6tXVZU8xD1vs S/TgEWWQUTLT9J9JG7BguW90TplbaneAfs5Qsj74KZsBEsEptyZ3ycslrBMJhbxpttN9 TgXC/OKQQzEML4fThs4yLu8lULhwr7HztYj9An9076t+IwP/f4sKT/eeXlo+J3D+J3Id 32+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc; bh=lsYH3OgGm+oHq1p9PQ/FH9m10DPJDbLS51J0/xysfI4=; b=LGA75ztETJu0HBkc66CUODr2LUu1GYq3fLpUH0m8F73/H2NuEtCWar2q6/EQjhRtcU L0jP+IfHwyIytx/j8uBwd0KvmgeJar9Yn9XPl3U8gzprIn59V9YwXZ7tQTFsCHUQSy+5 MzWoyWSG7cHy7HBVdNt0Jn6xTF/djO5oEQvJ5VtsgUrxHsYzUBPoHMGWFxZcXkeTbKZG 2xAMKa/VnMnbQKGXrb84eSGku9AzdsPh4p4oMrimNZfHn7mdp9t+sIUTQ1IJUrhk7WNq UiUhrRewbAbiKvZAEErri/XrN0m9EvSBHbPVnjrhuWTndiTjITLpY6t+h+Fp6GtGK/g6 khRQ== X-Gm-Message-State: ACgBeo1IXx/5+G+wSte4LP5/6eQ41XfULWXqSqyeFm4yEaqScLLEu9NI 5JZr5/NMOzimB57aSTRqmwCtKQ== X-Google-Smtp-Source: AA6agR4krcZ/z93g7PMR3mck31vUbIjZaXp5iOunh1k+/Ram3cJcq8i0hwITMlmHMSQ5BcoAUilh9w== X-Received: by 2002:a17:902:f688:b0:16f:4b4:fc18 with SMTP id l8-20020a170902f68800b0016f04b4fc18mr5531691plg.49.1660881371716; Thu, 18 Aug 2022 20:56:11 -0700 (PDT) Received: from PXLDJ45XCM.bytedance.net ([61.120.150.76]) by smtp.gmail.com with ESMTPSA id w27-20020aa79a1b000000b00525442ac579sm2391456pfj.212.2022.08.18.20.56.07 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 18 Aug 2022 20:56:11 -0700 (PDT) From: Muchun Song To: mike.kravetz@oracle.com, songmuchun@bytedance.com, akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, muchun.song@linux.dev Subject: [PATCH] mm: hugetlb_vmemmap: simplify reset_struct_pages() Date: Fri, 19 Aug 2022 11:55:32 +0800 Message-Id: <20220819035532.6189-1-songmuchun@bytedance.com> X-Mailer: git-send-email 2.32.1 (Apple Git-133) MIME-Version: 1.0 ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=xyWUxCnC; spf=pass (imf24.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1660881373; a=rsa-sha256; cv=none; b=fVzvrVIDQSMlpgFAPkQO9RSMXIruBg2t2Stc7E7M+893C9itdua0WKrBrlvBwCWa4VheVt x8t099ifDdHhebPkCbMH9AHgrIhkVc5cay2nHc7RUEOnFQf6wrHyZ8tDGvlHF1XcJWvob7 xMXaHkcCqyCeFSVr1xp5M9dRuHxaYFM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1660881373; 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=lsYH3OgGm+oHq1p9PQ/FH9m10DPJDbLS51J0/xysfI4=; b=kEtgca/mYkyzYgQaLur1iPXlPtlvrLLu3jqpt9UAd24W9BDAKRHW36zWpzuY5RqKbV/8ns JpEmPZZbOMdFU2UoMBLJE49qb4pEsqOXdp2wZx01KoIJTL7xI7jjfpSZ1xyaJuOwuhUO+L fiwyxakJl7AKGwMjCXsLBeLV7mYoJZc= X-Rspamd-Queue-Id: CB7C218000E Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=xyWUxCnC; spf=pass (imf24.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com X-Rspamd-Server: rspam01 X-Rspam-User: X-Stat-Signature: po7bf8b9godcrutrh8bh7g7csihh65sz X-HE-Tag: 1660881372-392818 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: We can choose to copy three contiguous tail pages' content to the first three pages instead of copying one by one to simplify the code and reduce code size from 229 bytes to 63 bytes. The BUILD_BUG_ON() aims to avoid out-of-bounds accesses. Signed-off-by: Muchun Song Reviewed-by: Miaohe Lin --- mm/hugetlb_vmemmap.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c index 76b2d03a0d8d..ba2a2596fb4e 100644 --- a/mm/hugetlb_vmemmap.c +++ b/mm/hugetlb_vmemmap.c @@ -265,11 +265,10 @@ static void vmemmap_remap_pte(pte_t *pte, unsigned long addr, static inline void reset_struct_pages(struct page *start) { - int i; struct page *from = start + NR_RESET_STRUCT_PAGE; - for (i = 0; i < NR_RESET_STRUCT_PAGE; i++) - memcpy(start + i, from, sizeof(*from)); + BUILD_BUG_ON(NR_RESET_STRUCT_PAGE * 2 > PAGE_SIZE / sizeof(struct page)); + memcpy(start, from, sizeof(*from) * NR_RESET_STRUCT_PAGE); } static void vmemmap_restore_pte(pte_t *pte, unsigned long addr,