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 4D948C4708C for ; Mon, 5 Dec 2022 23:53:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E37C98E0002; Mon, 5 Dec 2022 18:53:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DE8688E0001; Mon, 5 Dec 2022 18:53:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C62D68E0002; Mon, 5 Dec 2022 18:53:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id B70A68E0001 for ; Mon, 5 Dec 2022 18:53:08 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 879B8160CBB for ; Mon, 5 Dec 2022 23:53:08 +0000 (UTC) X-FDA: 80209906056.27.FB66E73 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2059.outbound.protection.outlook.com [40.107.94.59]) by imf21.hostedemail.com (Postfix) with ESMTP id E959A1C000C for ; Mon, 5 Dec 2022 23:53:07 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="n4OdrX/4"; spf=pass (imf21.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.94.59 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1670284388; 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:dkim-signature; bh=ZYGn77Z7H/fjhCHMz2EHimCpDaklzJKDqrATGAjjpXY=; b=tv5pjIR5jsgeZivudNezKlRqvHZHIW6ddckyehM9Sx0k9NeOYX4pqcRwGrYv/pihQYSdsz R8U20lwJ00cTfXs8zuMWO/0+g//wKRCDf4SE3j/RzRm0BUe63hsXWtRS6f0/tB0zBOwLVz bTD403245dEd32Cvv5/YHHcxh0hTU3Q= ARC-Authentication-Results: i=2; imf21.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="n4OdrX/4"; spf=pass (imf21.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.94.59 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1670284388; a=rsa-sha256; cv=pass; b=00ROy6YKq60ZDRVD8dCzXHtwC6uRFFefmcESUGJCUF8ILYyBQnm5QHo2Z18bSFjyKQEKyg U7cEz6ANqGkpYndy6/hZcemEeqIpNGm69u1Bk6CFZnzQ2HUZZbkAffqW4iQJPgxrRHGZCB vuLZVJrBNSqy4SXH/TaIYf4iWgfY2WY= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TCXsLtWss+dWDT9VY3Wu4HdRncw5FjDgO3fLvAWBWdSWrCqI3+CQb3uBm04OYCw4UanqmMykwxDRf9UrTtLu0qfWY0xSZuB4m6ZPLa4x9LoDQJWf/Q39pjSFNK3xDEzeo1tG3dfScdkg+2Od2gZpQS4IoJ0ZoGDiHVfmNMIlD5sCjgBkIaK57x70JDPtctgAwdTLfRXDzXq7Jaeb+5rblXNYjFu2Q432bRHW/v42dmMDwlhc8XDGI/XlO6K4VOpwx6d/eu56NjZKl5SfjqlvylT6F8iwEzirp3Hg1y4bo9yB/58RbS1nFUL3gb4LOai1S4sSgc8fLZs42eZdTnULaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZYGn77Z7H/fjhCHMz2EHimCpDaklzJKDqrATGAjjpXY=; b=W+uxJyE4k40LS36IAc4Pvt0gVD7lpypvlew8i6NqBxVOA5UFxoBa6yTLyfGdwfcWhlRnGh1Fv7r2PDOctAEhjowYbdv6kimA860CSR3T7i8fRioa83re6rXdTBj0FRKJ+VYzUFRnVMP8Rxw71B5ck9/e8Jk3Np5YJFKbnIN42n1z8bIEg/pnAQ/AZqNVApD3yLa8KAs0GGX/pERXQun/JNkmm4ZcuRK+3+IK5+HZ2xSIz0HUdAqhCoXyI9dPMwOMKVgonjpCl/DlxUDgqqQ0L4OD0gGG/E/VqCICMCSXCYkNZysXHiS6mx3G5Zx8UbMP5GJJMMGAUph2Xr3ExeL1sA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=oracle.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZYGn77Z7H/fjhCHMz2EHimCpDaklzJKDqrATGAjjpXY=; b=n4OdrX/4zByGe+EPG4kTzdyf/j0vAWDCYJhdVOcryjqBkJgS0KmxNjE9Dt4nbFLMR7uSTLwroaSHu6Jv7mMyLH/DFiNXKyf27EmFOVRwYDZo49AxGx9v/LIC2A8gKFbfMJsP6GYaP4YdjCzSX5LJHS6F9G7UxUWl/xXqbbLLoCP/NdpMnAnd9P1uXrB4Vg393XbimfhFTRasP5UPJUmubobCSkYvFLtcXvrvb3oieue9MUbp/3pEdXFSSWsJf1E6of1dohYfujI69lMX+c4AuZolgMOpGT+G/J8YinLLNlvvd2oxfk2uBVI93PzagiVi0OkeZZeNIXDiM9zkB8t//A== Received: from BN9PR03CA0169.namprd03.prod.outlook.com (2603:10b6:408:f4::24) by PH7PR12MB7019.namprd12.prod.outlook.com (2603:10b6:510:1b9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.11; Mon, 5 Dec 2022 23:53:04 +0000 Received: from BN8NAM11FT003.eop-nam11.prod.protection.outlook.com (2603:10b6:408:f4:cafe::b4) by BN9PR03CA0169.outlook.office365.com (2603:10b6:408:f4::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.14 via Frontend Transport; Mon, 5 Dec 2022 23:53:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN8NAM11FT003.mail.protection.outlook.com (10.13.177.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.14 via Frontend Transport; Mon, 5 Dec 2022 23:53:04 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Mon, 5 Dec 2022 15:52:53 -0800 Received: from [10.110.48.28] (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Mon, 5 Dec 2022 15:52:52 -0800 Message-ID: <0813b9ed-3c92-088c-4fb9-45fb648c6e73@nvidia.com> Date: Mon, 5 Dec 2022 15:52:51 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: [PATCH 08/10] mm/hugetlb: Make walk_hugetlb_range() safe to pmd unshare Content-Language: en-US To: Mike Kravetz , Peter Xu CC: , , James Houghton , Jann Horn , Andrew Morton , Andrea Arcangeli , "Rik van Riel" , Nadav Amit , Miaohe Lin , Muchun Song , "David Hildenbrand" References: <20221129193526.3588187-1-peterx@redhat.com> <20221129193526.3588187-9-peterx@redhat.com> From: John Hubbard In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT003:EE_|PH7PR12MB7019:EE_ X-MS-Office365-Filtering-Correlation-Id: 2f1ae6c2-ad2c-4edb-b42f-08dad71bd9d1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wWwA3ub5KjpM5KIverDjUqeRpNMgz/9FKmOXKOIcE0GV7pIKQvjwa1mT5AnaSD5U8qxFkuToRjRuVKTNRSWZjULZ5SWxuI4IIIZaZQtxKsIAI8LAoCu4+lb2cb367AS1ODl3ZRYpajog3ejaYtSkV7BwjcMayKM/gs9vl5mlNQuEbHJkTNbSTgLJG1lVB5W6kHGNWesTZxF3pKSbkCgfUvLTjiulH0kEHrTqkLdb1ajxTIcGqhSzLQHfgnXPGXmmyIrfPlCmcQcNZ8Dl0afgWQYf7m7HKWeOSdNU/2nj4KPSMPW3BtG4to/nD1YhUvSG5y7YgmcWNaVkbTt3q8zBiATLFdSCihMo2SNCQVX17wzdIc8odqUcbmyRiV1AFMmoKzubk53dK7KRuIg7WK6Z1KSgTDnfbST5QGgJabV1McAWxcLtAwYmzkXmnB0VXAqbSsaQuMtt8oiCoQ+aL7HRq94RbKo62nc7z/3c/yrM4DLC37u3bQWGoqCJ3sD/W6IqfEpo2kAPwVsos/0oaS/Sz5IuudCEtAwVpq12VelzMuVWWnkNomCI/ZZuh/g/z27ARHnR1Q3hJjLdFzejw6amRpadrRT9/uZVj71cxImirSg2G1OxqLfOcMBPRQYsSJp95XexvvobdQs4btWzBkrMEAlfbHE37ds5VLjUkgkBK6lx5HyakJDIj0Cubjru1JdeVHN4kjMMKMNI602POqQsNK4zSIfPjnjbIKx+GlnDM3I= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230022)(4636009)(136003)(346002)(396003)(39860400002)(376002)(451199015)(36840700001)(46966006)(40470700004)(40480700001)(36756003)(82310400005)(16576012)(426003)(336012)(83380400001)(316002)(53546011)(26005)(16526019)(186003)(110136005)(54906003)(86362001)(31696002)(2906002)(47076005)(70206006)(70586007)(36860700001)(4326008)(31686004)(40460700003)(478600001)(2616005)(8676002)(41300700001)(82740400003)(7416002)(356005)(8936002)(7636003)(5660300002)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2022 23:53:04.2646 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2f1ae6c2-ad2c-4edb-b42f-08dad71bd9d1 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT003.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7019 X-Stat-Signature: zyte5w1mipbemewjdh3hd85aobjumzgk X-Rspam-User: X-Spamd-Result: default: False [-4.33 / 9.00]; BAYES_HAM(-4.93)[97.57%]; SUSPICIOUS_RECIPS(1.50)[]; SUBJECT_HAS_UNDERSCORES(1.00)[]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; DMARC_POLICY_ALLOW(-0.50)[nvidia.com,reject]; R_DKIM_ALLOW(-0.20)[Nvidia.com:s=selector2]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; MIME_GOOD(-0.10)[text/plain]; RCVD_NO_TLS_LAST(0.10)[]; RCPT_COUNT_TWELVE(0.00)[13]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[Nvidia.com:+]; TO_MATCH_ENVRCPT_SOME(0.00)[]; ARC_SIGNED(0.00)[hostedemail.com:s=arc-20220608:i=2]; HAS_XOIP(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; TAGGED_RCPT(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_COUNT_FIVE(0.00)[6] X-Rspamd-Queue-Id: E959A1C000C X-Rspamd-Server: rspam06 X-HE-Tag: 1670284387-786826 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: On 12/5/22 15:33, Mike Kravetz wrote: > On 11/29/22 14:35, Peter Xu wrote: >> Since walk_hugetlb_range() walks the pgtable, it needs the vma lock >> to make sure the pgtable page will not be freed concurrently. >> >> Signed-off-by: Peter Xu >> --- >> mm/pagewalk.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/mm/pagewalk.c b/mm/pagewalk.c >> index 7f1c9b274906..d98564a7be57 100644 >> --- a/mm/pagewalk.c >> +++ b/mm/pagewalk.c >> @@ -302,6 +302,7 @@ static int walk_hugetlb_range(unsigned long addr, unsigned long end, >> const struct mm_walk_ops *ops = walk->ops; >> int err = 0; >> >> + hugetlb_vma_lock_read(vma); >> do { >> next = hugetlb_entry_end(h, addr, end); >> pte = huge_pte_offset(walk->mm, addr & hmask, sz); > > For each found pte, we will be calling mm_walk_ops->hugetlb_entry() with > the vma_lock held. I looked into the various hugetlb_entry routines, and > I am not sure about hmm_vma_walk_hugetlb_entry. It seems like it could > possibly call hmm_vma_fault -> handle_mm_fault -> hugetlb_fault. If this > can happen, then we may have an issue as hugetlb_fault will also need to > acquire the vma_lock in read mode. > > I do not know the hmm code well enough to know if this may be an actual > issue? Oh, this sounds like a serious concern. If we add a new lock, and hold it during callbacks that also need to take it, that's not going to work out, right? And yes, hmm_range_fault() and related things do a good job of revealing this kind of deadlock. :) thanks, -- John Hubbard NVIDIA