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 9A242C77B7A for ; Wed, 31 May 2023 04:56:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BEACC6B0072; Wed, 31 May 2023 00:56:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B9B456B0074; Wed, 31 May 2023 00:56:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A3B8E900002; Wed, 31 May 2023 00:56:28 -0400 (EDT) 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 904546B0072 for ; Wed, 31 May 2023 00:56:28 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 4E4A6ADCEC for ; Wed, 31 May 2023 04:56:28 +0000 (UTC) X-FDA: 80849339256.11.88D6165 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2065.outbound.protection.outlook.com [40.107.93.65]) by imf13.hostedemail.com (Postfix) with ESMTP id 7534B2000F for ; Wed, 31 May 2023 04:56:25 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=sIMIGDrI; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf13.hostedemail.com: domain of apopple@nvidia.com designates 40.107.93.65 as permitted sender) smtp.mailfrom=apopple@nvidia.com; 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=1685508985; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=PoouX0kWkY8dBL9yWASGq8p4YV0hZCApaur4dK8cjiE=; b=Yuf0idRArHezGO8wz6yK/j+FsqSK+uPPQ4L+/1Tkkvg2Sxyyq/RMxwotNvkK6oC8SpNGHf AHdY8h5E8LuTbrvrSWb1Bte5G9xV6KXBQRsPDJaPc3rPf3L8wHdAZgTmL8w4M9RqgKlnKv eg/6oR3qyEUYWoblEI9enFL7svl7suk= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1685508985; a=rsa-sha256; cv=pass; b=125ZebEiMQ7kjECw0CvireOt6IrbRVa2SNeaRRh+JhEbsMjSuY3ltLrTnlOxiOtLx13QYc +/XiZzyqg61LkSteWMspHcfL0op10mELzuaZSiIatQJQ7xg5ilSk7Eh94FTD0TgqAxfEqO V5Ouksh5mfDxP3OBKLkqnU+CsyR5cek= ARC-Authentication-Results: i=2; imf13.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=sIMIGDrI; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf13.hostedemail.com: domain of apopple@nvidia.com designates 40.107.93.65 as permitted sender) smtp.mailfrom=apopple@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bWRBROLSE7eOiE9B1JSdiyPqB6frmW87pRitzCQq2Z9M3MmuYmLxdcxXNRc0N7pE3fXmX3ORL1tB8QKnHBmlfWGUle9QiqMqWgBc6L3mUe0CtkYr2PuDaA4+UjfQ29oc52RZlJY98putWXV/FSaxKjRxVqiMJ8xKpeB9xwURltgInhX6dAOnQmIDTRvGZ0ghns84WRuVXJioOu0kqMxk7mEdT9NZI0gCCPh32DneqycJt9YCORy0ZBkw9d8tax5uVSL/7BzvjNYwWphEY2RC1QnI/FLK3bS2fFFBs2jLZvzSnk6hdL+ao4plW031wdaxdhNobAeghbx6Y1Ogo0L65Q== 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=PoouX0kWkY8dBL9yWASGq8p4YV0hZCApaur4dK8cjiE=; b=aZNKVjmbP02Ci4TQvuk5BN8ZALMhuI6yCBC46Vu5mPunJk8PhT9Yeuce4q04h5Kj2TbMmL0OKmm6eiGFW/Pwr+SObOzUhizKV2uuFz3SZO9gY3GjG/grTAEKI6SourKlDq8LMQYH/jcXzeA+8sw55QffbyRDXt6t7n16gQBJ+GDnL0fpcAxp2BQga4EbNfzHbd4xWeVMhb81ws+RVNHizbajDPh/6OIXxICWWrCkYuRd0Zh7vGXYYfD/3XBFhgcdJATWbuvAJ73vPLQq4CK7Vb4OrPTbNXxQzgOszjq7Ybiize5lBWESIJCM6sA1/kBjpOrFvfYBdvhfj90ja/nvAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; 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=PoouX0kWkY8dBL9yWASGq8p4YV0hZCApaur4dK8cjiE=; b=sIMIGDrINu2znM8o/kHMG8y8+BLBfxigbtcXm88mGY1CImod+chj4bNZkZ30ozeedhGoSYy0uRUddM7qUXyZJ9/nrYmMory4hW2jRGIcLpHGp4KEHvxhALFK613o1MdrjDQCaYYRhmYM38H8vm0aLiWyVLguxnRK6jhf9L2uFBHdIqNcgn9kIrFCj605u49Adu8ZtxXGritA+HveMIEm7IZ10RaTNEh4+0ItxYZI3nbrCW+Qb9SFNF7kK/RtIrVHEEapjc8CO/mIRQEImbN7aPh8FYcopRyR713HJusmfqDqa4lgzXUd1hAsx35g6Zh8eAZiLlcT4YBDKL7AarlCkg== Received: from BYAPR12MB3176.namprd12.prod.outlook.com (2603:10b6:a03:134::26) by SA1PR12MB8918.namprd12.prod.outlook.com (2603:10b6:806:386::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.24; Wed, 31 May 2023 04:56:22 +0000 Received: from BYAPR12MB3176.namprd12.prod.outlook.com ([fe80::f6e4:71a5:4998:e6b2]) by BYAPR12MB3176.namprd12.prod.outlook.com ([fe80::f6e4:71a5:4998:e6b2%5]) with mapi id 15.20.6433.022; Wed, 31 May 2023 04:56:21 +0000 References: <46ad119c-b129-e983-031b-d71aacad6a20@redhat.com> User-agent: mu4e 1.8.10; emacs 28.2 From: Alistair Popple To: David Hildenbrand Cc: Karim Manaouil , npiggin@gmail.com, akpm@linux-foundation.org, mike.kravetz@oracle.com, linux-mm@kvack.org, Hugh Dickins , =?utf-8?B?SsOpcsO0bWU=?= Glisse Subject: Re: mm: Question: pte SMP data race in do_anomyous_page()? Date: Wed, 31 May 2023 14:55:55 +1000 In-reply-to: Message-ID: <87edmxqetp.fsf@nvidia.com> Content-Type: text/plain X-ClientProxiedBy: BYAPR05CA0046.namprd05.prod.outlook.com (2603:10b6:a03:74::23) To BYAPR12MB3176.namprd12.prod.outlook.com (2603:10b6:a03:134::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR12MB3176:EE_|SA1PR12MB8918:EE_ X-MS-Office365-Filtering-Correlation-Id: ca2e34f1-3eea-4e94-590e-08db61936078 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VaDjaC8a75lTZzh0UQlROuFgE7gj/Terhx6nhSSpRcFlsuuz2aq+fdlTCanyZ194wFmC8goe/txHFgCT95kPmmVlnB6w66LKNmsvLFVPFq5E0S2Y+Gb6hH0VXI32fIByOL5f4NxaeWLacPE7f4szpfzsLnGoNs+YcCNA1rReC5mhplr7LRX/KdXlYXHVbe5yqz042vT25p71YDJPaXZR3iw6la9k3H6ihYxd+XNarnlROsTHx3dVs1FWM7XVgmju5e83ilYetYT4MtDKcyPRd+9PVljEKtHxhM4zJ1HNhGlzKv9fG0LmYQFcJ7WWtC850qW30vbiI5DWcqD24yy8SR1jbuthxg3EUadrHJRqWwfToUx/zVS9J4Erh15XKyWU1hxev3LeFVA7gGT7VE3+45TVdLUwuiWbgmZSUuUT4FKy81VZ4EkZeibsZwcNA34BudmnAubFkAVflMnCK6CAWs2PdEBwy9t/MDm4aaY52yXPl3cwzJ+IU3yCaKaW17Zz7Jmp/xsU8cBG3wKH/Sh4M/P+iP5rqB79SPfGNpQ4GBe+EsDj8A3s0HSBTnpyP9Oi X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR12MB3176.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(376002)(396003)(136003)(39860400002)(346002)(366004)(451199021)(6486002)(36756003)(66476007)(66556008)(66946007)(54906003)(2906002)(5660300002)(4326008)(6916009)(86362001)(38100700002)(41300700001)(316002)(8936002)(8676002)(478600001)(186003)(2616005)(6666004)(83380400001)(26005)(6506007)(53546011)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SW/M/zyzfJ/PmzidUBwEYOfMyb/Of8AsM+kyK1D9HnKdwSIriZP6ZUqVgHKy?= =?us-ascii?Q?x7A0/NkpCyA8Wsin7RoqEsq2r9Mfc0tzuLEJkVbTs8T9vT3BKdIFyETVga0t?= =?us-ascii?Q?a933PJvxXeek9xAlFE1C36EBqZynfSrRfYG9q+fva6Pjo5RDOiL2W+Wy2SwK?= =?us-ascii?Q?x7x3SyavuLevFQg3aNKKmFMKFQ6bRN6Dq0aM7p+SmWdeCYfM20EZ7/pb60UF?= =?us-ascii?Q?BO0XGsrvpL0mUVqPMqMb0Rh2blVInfaCWVYbH2nyCaw1rKWjopKZfPZdFNfC?= =?us-ascii?Q?3wJrvlBf7JGGQebfqY9eHyKKECtbt/XAoG2hrwO4H7X92bF+Q2ToPcx/tTs3?= =?us-ascii?Q?QN2P15pLa7+cSXf5t2sSDwNls2LAuexDG9YhG6+wIpryhMOosswzNGvCpFqw?= =?us-ascii?Q?Kto9EwT24csKpZbNO4w3kXLnJZnrg30NEZzOPg9vBy1q8lRRglqvplQFJVKd?= =?us-ascii?Q?B63lcimOBVKejmLT/lkLAP5wK+2+zp5gWHPV6he+HxNJj5LQW1eFBcqgLfNP?= =?us-ascii?Q?qBIZ1ovX+vIcDrrTqmV6nC/NtISM3YF1oI3efFh1zplDeNF0Ythp34hq9hue?= =?us-ascii?Q?wrmYkIqu4dC5I2+vJhU4mm1/B2xhMZCNC00lz+deUVvULbPcMHUhjQdrA5hZ?= =?us-ascii?Q?mkVw6hAX7OMv9UpToTuYb6mqjpUAX2DslAJ3fysz2YIzwTbTApAkGrL5TWTZ?= =?us-ascii?Q?NG/hPKK8RSi6GYRUHx5BmCiy1Z9K6iB+epR02GoBPagkzthZDDwBsC0yv1/m?= =?us-ascii?Q?Q5OwnHK8TPsazROYJYA2AUeTLb8p0ZeN3X2/hJPHTfPjBFcKKSuLMqySyl4n?= =?us-ascii?Q?JuIpN7UIWHZ/9N1+gADCqqeSujspl/c5j1/POzUw5wb0DuuFP0j10i/IcEIF?= =?us-ascii?Q?+0IjN+N7empEhhrQYBbD/5qVJVQDF28zYvOcARn5On0Bqp1FLRYgS7HIcGAY?= =?us-ascii?Q?Yq/aWuQIzXvX6GdEn9o1/iU254vXvR+AlJX3tI1lmoKgXSX8GniLXGqZE1NB?= =?us-ascii?Q?4QUswzJXnr+B+zrGS1nNnw60CfqhEa3mEuiqwYENryr3Yw0b7edJStGq9oQy?= =?us-ascii?Q?wPTifa2lGLgtMz14CuVfl4aw/8GNrpYYFEEr9x9C9HmOFXuGdDsZb9StnLuu?= =?us-ascii?Q?aZYUYdvsoA/DbDLt4z9uEl3sesi8LB0EW6uPOJY/muM6xa0MPRXZDmaJIui/?= =?us-ascii?Q?ldXoHzG7nQBPS+ugNeRkbwHuC532zxo6Wbgoc1n4B7d1YfLAdxU+RrZMUG7/?= =?us-ascii?Q?XreoC6BRxPrQA4ojOdu5daVCqr5S7wjMEjTIc6wes1CrbL1WZFtyXsVqyShi?= =?us-ascii?Q?7hljB9WuaV8laElfZASXLOCTu70yiyNuo9ojcNGZQaz4ZxQaoLa+fn65dwpt?= =?us-ascii?Q?wCvD5RiXgtETIhSfyqIUJrTEcd29a84qz698v7o/Nv9xMWevGo6uB0j2Vw1c?= =?us-ascii?Q?yaIysWtb1FiCoMbieoQo6YS7Lo/gxZkstslIRds4NutP+A4K1LaTmsn7gfjN?= =?us-ascii?Q?+lTz7n+sbESiWAEI2+ncLWfHDjFt7sTzPCsn/pQsUj3DgqXmEw3SqPkZnhh9?= =?us-ascii?Q?BHI50gK5XKnFv41Gf/flGzzB08UaDFxDN4nmgV0W?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca2e34f1-3eea-4e94-590e-08db61936078 X-MS-Exchange-CrossTenant-AuthSource: BYAPR12MB3176.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 04:56:21.1317 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Q7G9FvUAYDAyW5rdJBd1yhyQb24LBmqxgfCzKkkEYSMW7NFaAzgeamEKzLJ87jGt6nJSVaRwz3RN4uerDOrHaQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8918 X-Stat-Signature: 6gs3owm4rbsm8igy4q8sjgo9wpyg6n4q X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 7534B2000F X-Rspam-User: X-HE-Tag: 1685508985-584250 X-HE-Meta: U2FsdGVkX1+m2gygtL9QV7l2Pj0kO+rFbRyxL3bD6mtKAEhwyKpCJMEsNyqDaadYwiExSMsOLH9xCEUsS9c8CWAt/VchvL9J2xOF1oc+nOghhZf5yQSFOzY76N7wJwt5XpjbbYwx5S9qDOzbhTyz19GU2CxmyXZipDaj6UaVRGe1kT6u2d3LDK3L5HnPyFFgfqiDvjO8bhsIYkxOm06oyVv/759FM4yMYcwDXZqfIuaYaIyzPNgeytuGy9RiWwGjeWaCAFBTSIyjI4XSOP5vfOoK+BTxhkp1HNK6IpZ1QCokyyfHVXYIr+Y0L61/DtS3iWGz9D7vE/cc00CcL4u5+NzulsMUis98R4Bw5bp286OAzUhUX+Khtfq+dluco06Zh4IIRfUbeU0+5uTT/ThXhcEkzIxmqtHlGdXxlwX2XCK3OCDfsZSnzNu2wLramJiTu6WMtFrTOzm3L7Djwi6D7VKT9vcHL3OpycBUBd0Nde4BiNeQXH+mly9XC7x1zAfnwyEUQj568jzhPN2znZvd+AELpBHSl27G29kglmfQykGW2tbeAmzKOLSfq35lJbyARZX/Fd9nm3cXm8G0pP+2R5JeauENlK/PAk11ZqXC1N3llXCRiYdENlc2NQl5zg7t35+zCQKOMA2bBK7V0ch+AR5dBzGnSd0lWw5lqlWZedLkBWjFqn4lKqu2Tma4+KqCRXsQg1ux/HS/5nXHR+gEqSPmUu21whXi85L//MrMTVHk6EdGRnLv/N78KhXGSXRbrk7puw+gdraBgZskGPJnWjH02r3rOAtVgOk6n4TH57JDQFcVfddH72rWlQc+n4Hc+ztDCdqWE8fPlG9XnysgJnDTlx/4o/Ft3Ks+XtYGKT6cD/Qvlu9qZ9tT45olRslvkZM40jnVctNbqAUUvAVNr2QPp5YYADFzOZDg4g/I26mdsMZfchz06mJx/uCot9wxWz2xMuh7njY/XES/0vo EtZfL6Xr l9ynbyp12AZcSXtH+ZmsJQVjRij2PyIoX/BQO78UnjSIy1nasTL0vI/a5hc51+9EIQaLh30EprqSYjBoki9a0WdtV/1I1IM/tBfKEZLohYs2xkyryClavC22xHRb5o1d+Yg76QKYB6ikC8WQl03Uw0E0ckvz/1NaLsY/Q1+Lc3p5bh7HVa6vhZUXQJP/md6cJiaEHDefPusJX+5f9axFvrN5gzHkXcLfT17V7SBB0dqpHD5Lbv1FOuKcvLdiFyVm/7J/0zmhqkSFC/U1OBdCUQ6otRw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: David Hildenbrand writes: > On 26.05.23 11:07, Karim Manaouil wrote: >> On Thu, May 25, 2023 at 02:55:30PM +0200, David Hildenbrand wrote: >>> On 25.05.23 12:06, Karim Manaouil wrote: >>>> Hi, >>>> >>>> In do_anonymous_page(), a new page is allocated and zeroed, and the >>>> corresponding page struct is initialised (setting flags PageUptodate, >>>> PageSwapBacked, etc. and initialising the various counters). >>>> >>>> Then, set_pte_at() is called directly without calling smp_wmb() to make >>>> the updates above visible on other CPUs. >>>> >>>> This could race with a page table walker. The walker can read the new pte >>>> and try to access the page struct or the page content before the changes >>>> above were made visible. >>> >>> Only after acquiring the page table lock (which the writer first has to >>> release), right? >> In many cases, the walkers don't take the page table locks (e.g. >> mm/hmm.c). > > Looks like we really should be locking the page table in > hmm_vma_walk_pmd() instead of only doing a pte_offset_map(). > > It's all very racy without that ... > > Even the !pte_present(pte) check is racy ... hmm_range_fault() on it's own is racy, but it's supposed to be used with mmu interval notifiers which provide a sequence number and a driver mutex to synchronise against pte changes. See for example dmirror_range_snapshot() in lib/test_hmm.c.