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 DE87EC77B7C for ; Wed, 31 May 2023 07:27:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7BB19280002; Wed, 31 May 2023 03:27:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 74447280001; Wed, 31 May 2023 03:27:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E552280002; Wed, 31 May 2023 03:27:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 4EF2B280001 for ; Wed, 31 May 2023 03:27:33 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 1E700160257 for ; Wed, 31 May 2023 07:27:33 +0000 (UTC) X-FDA: 80849719986.26.5BDD28E Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf04.hostedemail.com (Postfix) with ESMTP id 24D2840015 for ; Wed, 31 May 2023 07:27:29 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ZYS9SCu2; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf04.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685518050; 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=7jQBaHPvgeXWvzDek+zo1eRPjHdlGSaQFJj9zGRINeo=; b=Vw1CZGU/Zvi4WZMBPytDsHGBiPCQtdtL4YGVRdDrx9jF4NeOkfDPmp7iAYdWWInQZH/QtR g/9qEjpoDsl+pLoJMWlP0iYQN2U+l9ty6ipzYSwEKNuH7p6WQC/V6iYBOxDftQe2oYtwHj l0BInb5tQzDZCISrpzWHsUC85HDKFbM= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ZYS9SCu2; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf04.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685518051; a=rsa-sha256; cv=none; b=YOIIlQGdX7J4qdTFF8gL+rt6WzLwm4pjihp+XZeo3JJ10cTafcbqZbUyGJc9vSQTQIoEAD abXIVA88HCavszkrp1vxTY0HwdUF+RzNP0Op4QC9qsIh17SUXvTEd9XKKNKW/u9q9NfM3q hthOO9UVx/ZDTmKBU+NmL3uQpC1UzRc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685518049; h=from:from: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=7jQBaHPvgeXWvzDek+zo1eRPjHdlGSaQFJj9zGRINeo=; b=ZYS9SCu2AclmuQ9GY063f4HqodI9GbldSoSIgCwc9ppGIJY3MyhkrlXNFZSVrknj7+raNB uX/egmAc3AqQf8QtZRHZNTthk4RlY+z14KsmXJi6VUoLlZrnjrM7+zP3y2y5nCAazbafsx 6nobUv/US1gHCIZkQsS8chJYM257Wt0= Received: from mail-lf1-f70.google.com (mail-lf1-f70.google.com [209.85.167.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-517-bEIYw-99N46bLgWuRHX7JA-1; Wed, 31 May 2023 03:27:28 -0400 X-MC-Unique: bEIYw-99N46bLgWuRHX7JA-1 Received: by mail-lf1-f70.google.com with SMTP id 2adb3069b0e04-4f4c6244937so2887659e87.2 for ; Wed, 31 May 2023 00:27:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685518047; x=1688110047; h=content-transfer-encoding:in-reply-to:organization:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7jQBaHPvgeXWvzDek+zo1eRPjHdlGSaQFJj9zGRINeo=; b=Hy3RdJGE+SHeIIhdo0sWdGrYC1RYsdD+Hf/oxWnm4s/gVzIepX8n8tqc6qRGZk2Q70 Y03TxrHTm1NrZUHSfG+W/0PFBIRPygSFkoiIvowX8sFTHdlkjIONUrhlqUeSgA0tfONb 3TwXXnFCR3T79ng87yyYcaPx6psq0oT/EaTcGjSPL1B67OCkGPlWk3i1Rmc+poGYaFdw 88giVIVv6fRxHyLRzg76Z86m1glFWBT0fxlWt6v9lPieranDmOk5pmO7A4QucN+8lyFH mWjz8qooLkfA0dvmNqLCAWNMsbtoL2Hvly93h9eScMPW/eAUZ0790MiH02dX5+t1+bc4 GWpQ== X-Gm-Message-State: AC+VfDzwSwg8ocE3RA/pYpIkrZBxMvO2yVqsV32DvWLcujuQ3Sm+OQMS N6/GptQT9RjAZaWY5KuKUMP98nclNLI2LeuvLKlu7+pq5rtiTbDBJ8ABo73PN6OAMrSim2+42FX gMokqgx/v4Og= X-Received: by 2002:a05:6512:487:b0:4f5:152c:1413 with SMTP id v7-20020a056512048700b004f5152c1413mr1773358lfq.22.1685518046934; Wed, 31 May 2023 00:27:26 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4fEpf8jg90OA1lEyX0Q4eSJs9jGWmFTz2XijwZDbphdZWEX2HswDXQAmSjIULa0CFKCT/PgA== X-Received: by 2002:a05:6512:487:b0:4f5:152c:1413 with SMTP id v7-20020a056512048700b004f5152c1413mr1773344lfq.22.1685518046500; Wed, 31 May 2023 00:27:26 -0700 (PDT) Received: from ?IPV6:2003:cb:c749:cb00:fc9f:d303:d4cc:9f26? (p200300cbc749cb00fc9fd303d4cc9f26.dip0.t-ipconnect.de. [2003:cb:c749:cb00:fc9f:d303:d4cc:9f26]) by smtp.gmail.com with ESMTPSA id z22-20020a7bc7d6000000b003f4fbd9cdb3sm19560515wmk.34.2023.05.31.00.27.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 31 May 2023 00:27:25 -0700 (PDT) Message-ID: <4f21d08c-3e79-6a16-4cd2-8f166b32d0f8@redhat.com> Date: Wed, 31 May 2023 09:27:24 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: mm: Question: pte SMP data race in do_anomyous_page()? To: Alistair Popple Cc: Karim Manaouil , npiggin@gmail.com, akpm@linux-foundation.org, mike.kravetz@oracle.com, linux-mm@kvack.org, Hugh Dickins , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= References: <46ad119c-b129-e983-031b-d71aacad6a20@redhat.com> <87edmxqetp.fsf@nvidia.com> From: David Hildenbrand Organization: Red Hat In-Reply-To: <87edmxqetp.fsf@nvidia.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 24D2840015 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: dduirk5gore1iz1qnfypbap8mnxg91uc X-HE-Tag: 1685518049-555284 X-HE-Meta: U2FsdGVkX1+Z6DDzV3oZrqUVGAbm9JQSkd29s5lVSvKZ7qLgJ2YRNORB+ZYzR0sCZeq2B6v73xL+FXZ7ftMmN0ANYDrSMxJbK0NmRg1HXGOyeqAkgBK0ZC5q+R0WBDiVoe05/l9K/ayHJVvLduRFp1du/FCPVYXZVzLeWeBAipIr/MK5zkDsIZYaF3QY707ElV+CZlzYj+OHZ4tTd9ePpFN8qui88H7dPuax3LpTrZzLeYrBSh/YaIuraTFIQ7lxKLqYTnyXWCu2a5nLmPNmx1+4J8Uu5MMCZiLoPcVQd0LlhVGsfo7wF0d8bFGq1dXeSc15AYb5cP7mt6OUloVpk/e4FNVto8G2JlHEBGrlKQpQT2C2gz2F9rpRMBzQ4y8iObUmAiSdQyaRQLjj/WpC7pJL6Obx3w1OLzFem9G4XwXvGgMmaFhjlLt2kFUSOBeIF9zr6Pjdr9qlTfbNvK5VgUidl+QpFOm+dd4G9+a2FWryst/LwZfwJKEFIuObpudbO9OxCwGMAvzhf8iwpONnwL8CDJUsbO6Siw0us2dl0b+G+Q2GQjrX0PZK95MjuWavfpo8HLcr2eZ4Xn2WSGhOPTrdteqwcVH2UeXdnqhVbiki39Dalzw+/ZdqJTwnrBZap4zmKABdYvAL9ES/TxsJ96V31Ys8w7aJwGEsZ5fwIZuDd75VrDFDyxgtZks8RUBKqYsw7TQsy/np3E638fWbNEYkUIJ84X/ouiugiYioBGC1ZzgTnIqFtJ5R11YrfOQSp+z143rkh6efnQV5t8tlX+ry3sQv9e4LIHNT5Io16jmxJ2AzKmeMtA0FCh+5OM5A9X3I1IVvgqPCboOZib9ixS2QWTsHCthDe7M7PMEpqPk9XRUn9X2NBq2uHxvF6w2osu7kjKKny8mE0PqJwGJVb3TJ+ISFvnOJDY/x/cyU1iC0U1GA8gw7js6jgr6Cm2lZQiSkBLjwl2pIaJMZRIQ MLXfwDQ5 0QeVMyC3ri5qhQlavtIg1PWuV5doPTHaMJGr9EKbMurdh6jqKxyiFFCjWe/th7TmuHUIF+l/TTVG6mKq2/kEpKR0XCZU08e+3QHwLjYcS0rBoHjXBMXhNIFKJBcDyCxe29AniCJ8iSUuha2FWtsG63m8l3l+JuWUKpX6o1ROJxg66FmoxwD3kZ9qogaQqehFhriq06+x48CFm8vgZv2Z/osLN79ZOFxV+wQibmJkoynq/KspCbI8ozcYJf8mqR4P8p+Hlrob7TmicQyAqTDa/c0fSky/pmDcjs0Qh8hWa0J5t23XVfkqLSgPk+HwHUCHSfcVHJ1bLtJA4MY1vJjuu+YYtf5TTBSRBEBUJBrPPkac0brgPJiHLzy1kytvl6iGfVRGglOjxJtpuRWyVFjoMntSPJTSgCD+4mW8hbhXC7kK/WViKlQ23kFY74hyOVv8W0qHA0saaeee36YgHYu5gGAUdw81VxV/13RM4KFYRCWtuOfsWv3rgpjWZ5w== 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 31.05.23 06:55, Alistair Popple wrote: > > 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. > How is this supposed to work with racing do_swap_page() that converts !pte_present() -> pte_present() without triggering any mmu notifier AFAIKs? -- Thanks, David / dhildenb