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 022E7C3F6B0 for ; Tue, 23 Aug 2022 07:50:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 007116B0074; Tue, 23 Aug 2022 03:50:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EF8186B0075; Tue, 23 Aug 2022 03:50:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DE68D8D0001; Tue, 23 Aug 2022 03:50:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id CEFB76B0074 for ; Tue, 23 Aug 2022 03:50:18 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id AA23C1414BF for ; Tue, 23 Aug 2022 07:50:18 +0000 (UTC) X-FDA: 79830084516.19.51A4779 Received: from out30-44.freemail.mail.aliyun.com (out30-44.freemail.mail.aliyun.com [115.124.30.44]) by imf04.hostedemail.com (Postfix) with ESMTP id ECB0140043 for ; Tue, 23 Aug 2022 07:50:16 +0000 (UTC) X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R121e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045168;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=6;SR=0;TI=SMTPD_---0VN0xkM-_1661241012; Received: from localhost(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0VN0xkM-_1661241012) by smtp.aliyun-inc.com; Tue, 23 Aug 2022 15:50:13 +0800 From: Baolin Wang To: akpm@linux-foundation.org, songmuchun@bytedance.com, mike.kravetz@oracle.com Cc: baolin.wang@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 0/5] Fix some issues when looking up hugetlb page Date: Tue, 23 Aug 2022 15:50:00 +0800 Message-Id: X-Mailer: git-send-email 1.8.3.1 ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1661241018; a=rsa-sha256; cv=none; b=vbyk7gTLIjBhPMoeLQgPJaXsq8d8I/kk54m5YaUnsCgelELgsnVrvxILHdvO4xbW7xjt8T 7iZDf5OYmp8bT1XdogOjFyYkejgZgFdu9/sXX0OCN2cPje7t981Tnun06V1wFAjH3PmBcm JMabAAs8CPV2VBP8KBltrzyrEpX9Gs8= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=none; spf=pass (imf04.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.44 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1661241018; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=BU7k19gHeJ3WIhw6NQw7J6BpugSm9ZNqZCqgh3YlC8A=; b=KwZ3PLW5N6YF2M+JHFvy0wImt1K7teHw0kNJDsxeXd1pVEZbM/kIL00pFpi2hlH0U+tElE z9zUyr9KSh/Tn7rPaX4NhELM2orVSU7D99tkabShp7ATszUlhEPCk10Ag1hUtGs9Tfdzk4 UIuBdlXHIoJe4tfeLGyU8aPtd732x0A= X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: ECB0140043 Authentication-Results: imf04.hostedemail.com; dkim=none; spf=pass (imf04.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.44 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=alibaba.com X-Stat-Signature: zhpc94dfkerjoh6sjmt4rgm6fe8gnd1i X-Rspam-User: X-HE-Tag: 1661241016-697004 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: Hi, On ARM64 architecture, it can support CONT-PTE/PMD size hugetlb. When looking up hugetlb page by follow_page(), we will hold the incorrect pte/pmd lock for the CONT-PTE/PMD size hugetlb page, which will make the pte/pmd entry unstable even under the lock and cause some potential race issues. So considering the CONT-PTE/PMD size hugetlb, this patch set changes to use the correct function to get the correct pte/pmd entry lock to make the pte/pmd entry stable. Changes from v1: - Introduce a new helper to handle the CONT-PTE page. - Use finer grained locks for CONT-PTE/PMD entries. - Update some commit message. Baolin Wang (5): mm/hugetlb: fix races when looking up a CONT-PTE size hugetlb page mm/hugetlb: use PTE page lock to protect CONT-PTE entries mm/hugetlb: fix races when looking up a CONT-PMD size hugetlb page mm/hugetlb: use PMD page lock to protect CONT-PTE entries mm/hugetlb: add FOLL_MIGRATION validation before waiting for a migration entry include/linux/hugetlb.h | 38 ++++++++++++++++++++++++--- mm/gup.c | 13 ++++++++- mm/hugetlb.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 113 insertions(+), 8 deletions(-) -- 1.8.3.1