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 5B682C7EE23 for ; Wed, 17 May 2023 08:31:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E9B9C900005; Wed, 17 May 2023 04:31:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DFC12900003; Wed, 17 May 2023 04:31:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C4DB9900005; Wed, 17 May 2023 04:31:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AF9FF900003 for ; Wed, 17 May 2023 04:31:21 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 84F18160490 for ; Wed, 17 May 2023 08:31:21 +0000 (UTC) X-FDA: 80799077562.25.B1F0723 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf26.hostedemail.com (Postfix) with ESMTP id 3A8F214000A for ; Wed, 17 May 2023 08:31:19 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=O6PMMZZ9; spf=pass (imf26.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684312279; 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=+87hwHfuK6j4i/fuLrmFREP9Nl0u0nKS6+0RzbNzN84=; b=KJw4MNkteoAddh1sdGZXlsDa18+H+etj8mkMFfltTAwT93LE+belakPXCMM6HbH8KBJ5tE fMFrtXDuXYdC1s9LAsn6NfiNWiMcoVn1mwC7/jEgxCHH+REnRW9DX5DgYiUPZ58xmgq6v/ YEnh7Er6dPegR/A1MLD4COrMkdpEEqs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684312279; a=rsa-sha256; cv=none; b=DW+zEQmN0xx1de3yTuRhOwmFuIXWvFDWzXyL5PRkRV+4eiKPgNrrF2KGbaaQCg7MLf1RFF sfSJMgm/WsdcjuInMMuQMRU/tUtmnhBoY6w7BZoHpNywo/ZTkIHQ+tkVMF8ryWTIyOY9MU g0mxK6nFPQ86QcT1LyPmwf996izO46Q= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=O6PMMZZ9; spf=pass (imf26.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1684312278; 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=+87hwHfuK6j4i/fuLrmFREP9Nl0u0nKS6+0RzbNzN84=; b=O6PMMZZ9/gwFw0XRtwBY0K5AXmr1h3tMjG6AhBCDjQ1ps6ot/s6qEwJ7RcI/w0948OXmAq JFWi6wHVQKz44cfm4+FubutqbNBbv/nUixuNYSjU8DQSMZZvy/FhmTG2gWLaIsyPEVlix8 h91sSe0U7XrwfP5m2Jax4/QyTwWL/iA= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-358-UQnaQmNcMm-2rH8ULuPfDw-1; Wed, 17 May 2023 04:31:17 -0400 X-MC-Unique: UQnaQmNcMm-2rH8ULuPfDw-1 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-3093b0cf714so178385f8f.2 for ; Wed, 17 May 2023 01:31:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684312276; x=1686904276; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=+87hwHfuK6j4i/fuLrmFREP9Nl0u0nKS6+0RzbNzN84=; b=IWwEc48Pd7kpwMCW9vKWZTF0SyFDGRncx7cakuTrMxKDEPZOnzkMbMSXdxUfTn5YGa 29XGY1Xs0SGlElyI4p9YdMrTLqSiCtiPCSOsWvx2vOvLVxEyF3Ju2C2J+hxJbrS4agbJ XOEtia4mzGwgmdicm7UcmVOWiqVi227SStmLROrSsSuy18TqhZAN+6mTipoOSvy/fNIu V78Qyxvpe//e4/Ol6/eSz5ARTcYYRA4lFmiGb8Te4+rGPLaC4Wtr5BinomcCHPGRap7Z wJBBBGWNOHFEwF25G6KmwSlBqYHA8OdYBIacgvGA8KK39MNUr8v6QOc237TBFaDw/o1C VnPw== X-Gm-Message-State: AC+VfDx6VFUIYBX0t3AuusqzuR3DXrxoJzDNUI0h5vVS17ozZXVJ8UJW pPYqfaiuipN9dxN19uE555OA4q7V5Kvqc0L1PqHLEzWeaIFDJuZk1f8nhvfsIOY64oJitKkgRaz nGm2UlIAYH/Y= X-Received: by 2002:a5d:5221:0:b0:2fb:703d:1915 with SMTP id i1-20020a5d5221000000b002fb703d1915mr26788404wra.43.1684312276040; Wed, 17 May 2023 01:31:16 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5QaVKwS34M34vksP3fcVTyCM0DHux/DI1V9/o+0472vKaGysoi00ZT1X872bnMVy2FbYiUrw== X-Received: by 2002:a5d:5221:0:b0:2fb:703d:1915 with SMTP id i1-20020a5d5221000000b002fb703d1915mr26788385wra.43.1684312275770; Wed, 17 May 2023 01:31:15 -0700 (PDT) Received: from ?IPV6:2003:cb:c707:3900:757e:83f8:a99d:41ae? (p200300cbc7073900757e83f8a99d41ae.dip0.t-ipconnect.de. [2003:cb:c707:3900:757e:83f8:a99d:41ae]) by smtp.gmail.com with ESMTPSA id q28-20020a056000137c00b003078bb639bdsm1934194wrz.68.2023.05.17.01.31.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 May 2023 01:31:15 -0700 (PDT) Message-ID: <86142559-f15c-938a-a0eb-1ea590cb5e91@redhat.com> Date: Wed, 17 May 2023 10:31:14 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH 1/3] mm: Move arch_do_swap_page() call to before swap_free() To: Peter Collingbourne Cc: Catalin Marinas , =?UTF-8?B?UXVuLXdlaSBMaW4gKOael+e+pOW0tCk=?= , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "surenb@google.com" , =?UTF-8?B?Q2hpbndlbiBDaGFuZyAo5by16Yym5paHKQ==?= , "kasan-dev@googlegroups.com" , =?UTF-8?B?S3Vhbi1ZaW5nIExlZSAo5p2O5Yag56mOKQ==?= , =?UTF-8?B?Q2FzcGVyIExpICjmnY7kuK3mpq4p?= , "gregkh@linuxfoundation.org" , vincenzo.frascino@arm.com, Alexandru Elisei , will@kernel.org, eugenis@google.com, Steven Price , stable@vger.kernel.org References: <20230512235755.1589034-1-pcc@google.com> <20230512235755.1589034-2-pcc@google.com> <7471013e-4afb-e445-5985-2441155fc82c@redhat.com> <91246137-a3d2-689f-8ff6-eccc0e61c8fe@redhat.com> From: David Hildenbrand Organization: Red Hat In-Reply-To: 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-Stat-Signature: inb5abcxhco6pamqeq1kqtm7mh9d9b69 X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 3A8F214000A X-HE-Tag: 1684312279-670974 X-HE-Meta: U2FsdGVkX18abo/pRf9H5TV+H2eVlaSsXCt9LhmteWZBZQNC68nGGqdhvBd0tnOJRPHmSyjuQMv4qDHcCdS/fVFuQgNiJnm0tUa0z1q9Sc18718JDqv70CgJgenAti9tSIooZxrSEO1+teHnXc/XyPsz0zUmyIxGNBJmlyJ8kfhJrvaa6i9aUbdE/ByIIlW54cUboTfb0iTC2jxjdY2O5tTVh8jDj/h5Sxi3g4VsvKE9UmEAheuNXKUr56PNAXOXeWO7yGR7ZT/dCUIGpImJjEXI9BIhZlV3WgFSaTps4RxpCDKpwBfv4F5XLzz+svQIp9KLyPqr90b63CSI3gQ/DcikOOeHqZg59gUQ+/c2SzkSsYSWLzYVGV9Q4LZrbFOuB3DY8dXeKwxg/hXROXjd8XbXxEq8QQAkrf9xBt9UiEYeJOIHRaQ5lBJd85lxr+2WKa6FjRR+KpWyhgj4rU2xkWC8MGWXNeHaSEv7w6mvRQHIe32Aa5dTNmzT3gCYMZ3fMJjkslFDyf8gPxdFulbIbTMINjnnmf4RoaFOuZ665Y53++hc73MeC2wNNzDo2rUzf8J4lz++0tyVOsgG5eHJIQKHv5tINWRZCe4NyWhl42WWWo80HW5v9KhLDwVsESFIf/DVG1R0Wk9KNxzSmPmjj0Ow7jVJd58VeSU+lkEOuw1lIK5r20ofg7lX76ZfrRYGty9WAqPs1vXsx33dSr+y816IWFAOBWbNG1C8/a7lpyYJ9GMiOmDnIH2PGHbkd+ixykCSaVEb5rUAj0gk4HH27Jby/kDLHm3MNv8IXn/jqWxS/h291A5HgxuONVyzR0WztEDUWdmw7EeUJ06S0/yMrM6q+FtCy2aj3dYjjkBsn22bETcw7hVN5a/lyag9R2QH10eK5srxcOKFdpFQJ8GlWKH6ITKx169zXnSPbGauK5Occ20mD/k1+SRwCn1zyycCtobIobBxbUfhmkvNUhQ XBc9jmQB 904bRN5Z0gM/5hdwJ1P0jmf+yCamE8Ycj36GqjsKj10ffTm5nsYn38s0r6qav0zDzOzqeJmPS4jR+8oBe2KqNVO1nr5ok+NeZ4ZRYE8FjxzqfyQdbDt39bOxPMH954wuBKiuW3IGOaG/qponewUAYAtrv4LyhZ2nQ6fFkTeYhWeVPhtOCM72HIrKoFmeLmlrdE7TY9xQDXPWY2rNAfsE1kh4OqgfLuDG1SSvtxs0p6G9iB7+JARsj3+2owHCwEACFOV/BT2vJHFsJ0dRhO8+Ey4jWZwZasWICVaNAt00/zlwtET2N3bANs2N8EGGApXfQKa29CEv33W7M3SB1d0pvnZpTGzN73vZq/lQVPkaIU/5XihELZK2K0aE1nHo5KwqeCjrv/Bz8pixJg3JfCZVIm5ksOZQ14WeU66Y+Wjx1jok37QhRxC4Qmk/Lx1zga/wnQzbR/+jcJAj8G0IFGhyzZvzQVQ== 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: >>> Is there any other way of handling this? E.g. not release the metadata >>> in arch_swap_invalidate_page() but later in set_pte_at() once it was >>> restored. But then we may leak this metadata if there's no set_pte_at() >>> (the process mapping the swap entry died). >> >> That was my immediate thought: do we really have to hook into >> swap_range_free() at all? > > As I alluded to in another reply, without the hook in > swap_range_free() I think we would either end up with a race or an > effective memory leak in the arch code that maintains the metadata for > swapped out pages, as there would be no way for the arch-specific code > to know when it is safe to free it after swapin. Agreed, hooking swap_range_free() is actually cleaner (also considering COW-shared pages). > >> And I also wondered why we have to do this >> from set_pte_at() and not do this explicitly (maybe that's the other >> arch_* callback on the swapin path). > > I don't think it's necessary, as the set_pte_at() call sites for > swapped in pages are known. I'd much rather do this via an explicit > hook at those call sites, as the existing approach of implicit > restoring seems too subtle and easy to be overlooked when refactoring, > as we have seen with this bug. In the end we only have 3 call sites > for the hook and hopefully the comments that I'm adding are sufficient > to ensure that any new swapin code should end up with a call to the > hook in the right place. Agreed, much cleaner, thanks! -- Thanks, David / dhildenb