From patchwork Fri Oct 25 00:44:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kefeng Wang X-Patchwork-Id: 13849874 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 62045D1039A for ; Fri, 25 Oct 2024 00:45:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9FD2F6B0096; Thu, 24 Oct 2024 20:45:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9ACE16B0098; Thu, 24 Oct 2024 20:45:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89BB06B0099; Thu, 24 Oct 2024 20:45:11 -0400 (EDT) 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 6BDD76B0096 for ; Thu, 24 Oct 2024 20:45:11 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 815C2AB6F7 for ; Fri, 25 Oct 2024 00:44:33 +0000 (UTC) X-FDA: 82710279708.25.51375F5 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by imf20.hostedemail.com (Postfix) with ESMTP id 4439E1C0009 for ; Fri, 25 Oct 2024 00:44:44 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf20.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729817069; a=rsa-sha256; cv=none; b=WQSPaSDNF6z8DAGpB7iEmkcSzLH1eJRb9C/BqboxKtZafv/e4H7y8sulzXPlsHz9XqmJyO MjIfQ5Ksue/YvWj+cBPMfr2BoXykvapTCvMU5BuYpjE+DDZhOU9mdQRVyu5UmN4v/YHWgH P14OlkAzv0t90Un7TKcViREFZ176Tuk= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf20.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729817069; 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=ZK3Zf6HM7N0SpLe9kzKLzoBhc9AV2VvZ+aAPKfXwSZI=; b=Fxz0HA1hS3DAcrNwPUUuIrPmMg4q9aPQ237uoAC8244phiT2vhFaiPcpleIYk+uKRE4D0A iT5NQcQ/85kvbDtl0XkQ6Qo3D3I/6xkDN3EIb81m0AyAgHT6EN3Q/7qE+rH8Xoq7EKYi+o Op4MNczmGfQCyfzLiB0euyVCjbupjZY= Received: from mail.maildlp.com (unknown [172.19.88.105]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4XZPCH6t2qzpX5N; Fri, 25 Oct 2024 08:43:07 +0800 (CST) Received: from dggpemf100008.china.huawei.com (unknown [7.185.36.138]) by mail.maildlp.com (Postfix) with ESMTPS id 9DC871401F3; Fri, 25 Oct 2024 08:45:04 +0800 (CST) Received: from localhost.localdomain (10.175.112.125) by dggpemf100008.china.huawei.com (7.185.36.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 25 Oct 2024 08:45:04 +0800 From: Kefeng Wang To: Andrew Morton CC: David Hildenbrand , Matthew Wilcox , Muchun Song , "Huang, Ying" , , Kefeng Wang Subject: [PATCH resend 2/2] mm: always use base address when copy gigantic page Date: Fri, 25 Oct 2024 08:44:56 +0800 Message-ID: <20241025004456.3435808-2-wangkefeng.wang@huawei.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20241025004456.3435808-1-wangkefeng.wang@huawei.com> References: <20241025004456.3435808-1-wangkefeng.wang@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.112.125] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To dggpemf100008.china.huawei.com (7.185.36.138) X-Rspam-User: X-Stat-Signature: xhc7cf4xhskr6z6y7sn8qirnmau7r79e X-Rspamd-Queue-Id: 4439E1C0009 X-Rspamd-Server: rspam02 X-HE-Tag: 1729817084-436200 X-HE-Meta: U2FsdGVkX1/g4chOs/WHFo6GxsR53dKl9Izx6Ne3BowzUZVXREg8A3nBtWkJd6VVmoePThcertAxPVveuXabtEmwTmivdgOurMrmt0Cm+FmQvXfAgRupB/4RedbnmFnKYDJb0jXHev+3298r6xbVJjRg0GGbJw6kkNDof4urqrYJNYbvTQnToKw3ZS6CBE8pigyI0W9m9nbYINkxU5Xuucv6giob3lVGJQTm4PUhQSqJS//6mb8FZJP1aSb0t3EE6m2i3/AeDRTC7ozMfWrZsjoZ9L0tAJWeGo0JvsrBg0OvAJanqjqA1x0diWnymbm6xqkSVMMsonvBsa8HzHSs2lIOGx4wCOpswM91GwGp9E0YqAeqtgICigz7HHRpTXfJgp4ufvumNqJJR3DVH7CrcVoMZVSDiSSr4W7VB2uUoIo1KGanFN4WBuFUOpIbHIdIZPnJ1yW4PSAQo07ncxM6p4ygb1mFm3d/pCp38pQh/4k+TLbjvvgMjWTJkvG1zSyxeciewd21REGxc4NM3p7aoQbzrIlHDfW5vHWFJcVj91R0z7Y6aFzMJeVGWotzGh0GqiW0/sXbu0IzobDnHjXfkFOLZBqBUFzVVqyASogoNuPbiKFmiqhyGyOQSrHl8geZaJIVWaZi+MnOKW1j3IKbz/8muHhX9pL5u4LCFUlgFUng963C4T2BjpLvEMsJfL3/xPafmkne5Rflzdh6pXM2Fks1b/wk6Dpf3Q1NsyDlA8WVexKFYsjZikY7SpN/sGohftVUmO10VoLVGtYxRgi/Z0ovadZOvZSt5uid8Y7bEK1Nti2uDLKgRNUv1rzkQlnCro9616z83wV8NL0akpfPE8GbNHtibG3MBgIOyPjLMG7nfomgK2v7M2hlITjqcVoQMJHR6ofLROljQyOUoZDFLk7/1RTJVU4Lw6uJnkPsuHzc6Y9NUt0fPnmW5udNWbxOACa+FdOOkjV3PTCwdxg GW7fimEf 9xKwCiazzhakN0X5UBLtZsMNbkpAyBJbRqeXVb+y1d6XUCvuvIXf219NzlLuiXJKJXtKf8xud6x4SaxKpaebAu3G5MhotzcDSw+2faOuLtPBtTsLdfZmg83gsbKkfHXggt9eneJ9Nj5GY5YLNclS0FvSMXQ== 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: When copy gigantic page, it copies page from the first subpage to the last subpage, that is, aligned base address is needed in it, and we don't need to aligned down the address in the caller as the real address will be passed to process_huge_page(). Fixes: 530dd9926dc1 ("mm: memory: improve copy_user_large_folio()") Signed-off-by: Kefeng Wang --- mm/hugetlb.c | 5 ++--- mm/memory.c | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 906294ac85dc..2674dba12c73 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -5338,7 +5338,7 @@ int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src, break; } ret = copy_user_large_folio(new_folio, pte_folio, - ALIGN_DOWN(addr, sz), dst_vma); + addr, dst_vma); folio_put(pte_folio); if (ret) { folio_put(new_folio); @@ -6637,8 +6637,7 @@ int hugetlb_mfill_atomic_pte(pte_t *dst_pte, *foliop = NULL; goto out; } - ret = copy_user_large_folio(folio, *foliop, - ALIGN_DOWN(dst_addr, size), dst_vma); + ret = copy_user_large_folio(folio, *foliop, dst_addr, dst_vma); folio_put(*foliop); *foliop = NULL; if (ret) { diff --git a/mm/memory.c b/mm/memory.c index 934ab5fff537..281c0460c572 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -6841,6 +6841,7 @@ static int copy_user_gigantic_page(struct folio *dst, struct folio *src, struct page *dst_page; struct page *src_page; + addr = ALIGN_DOWN(addr, folio_size(dst)); for (i = 0; i < nr_pages; i++) { dst_page = folio_page(dst, i); src_page = folio_page(src, i);