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 2D13DC77B7D for ; Thu, 18 May 2023 04:17:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 82226900004; Thu, 18 May 2023 00:17:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7D0F6900003; Thu, 18 May 2023 00:17:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 69864900004; Thu, 18 May 2023 00:17:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 582C1900003 for ; Thu, 18 May 2023 00:17:37 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 283651A0753 for ; Thu, 18 May 2023 04:17:37 +0000 (UTC) X-FDA: 80802066954.14.628E52F Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by imf22.hostedemail.com (Postfix) with ESMTP id 008E3C0009 for ; Thu, 18 May 2023 04:17:34 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=hulu8U7E; spf=pass (imf22.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.51 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684383455; 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=XBiK7zqzCv4YO32S9qrBa6a2V7ip3iodPxLIsQgbycE=; b=sjUSqReZuOATvasnCUPeGLd3m1MEN1CIuuuHmG27MGAWLU8PSfLUhQ4vjbRWEIpjGM0+M5 ZvvI/YhYGrgU5eEGof/ERf4nnGIRwOihGWBRhqGaGgEpIgd+jKoXkErhoYjnBTPgvQ2Qcm +lR0Up50WB5urGApR/a/MqygXkB2t+Q= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684383455; a=rsa-sha256; cv=none; b=vws+EHd79AfDQpuUWh//anjqE4w2ta9LGpq3tvfKV9Eugz7EEJLvf3uu0js0Z2FgrCfwnp ysV/1K+XtVLLeWNdIfVBwIsXHheVVHYQtkSQJQSjaTED4oaxlkb8DHbTXswDdN9XfWjrLg gE5oLApRahthTuZUYf311A4tCZrH4v4= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=hulu8U7E; spf=pass (imf22.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.51 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-965f7bdab6bso301477966b.3 for ; Wed, 17 May 2023 21:17:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1684383453; x=1686975453; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=XBiK7zqzCv4YO32S9qrBa6a2V7ip3iodPxLIsQgbycE=; b=hulu8U7EWqa94uvlgkGcyFLV8vIVbflkroexZVObGT3gB4h9njJ0gEyr5EQ2RVqsVB StWhEwRd8QP9iHgaeqwhkMfRPlYup4wDz8z+77Uo7OM2mJ7CIYNc59ITT0g96MLozHR4 JUhnCkrSINidQ3SORLWJ6DTjtaXZ2avA9iZco= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684383453; x=1686975453; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XBiK7zqzCv4YO32S9qrBa6a2V7ip3iodPxLIsQgbycE=; b=NCqpPnMEShl/1pQXHiW1fwfq2hI8faP0+/FDyiw6Xdimamvg99PFMPW/YMO6whXfc+ nv8g3gX47fJ+fwyFz4XDyswqliTEmdRiatWajB7RzncZS4hiKlthCkqxBSbv9iHCmy/l c/xsLtF2D5Xp9OqYgcz0Kh8eAwfZymTwUw+N3OI9E1sbE3zdJfR4tJATxannEinaek1x 0O+H6b3GUbuk2SodLG1dzpKnI9Qs4mfHeBk+qgcbZxq0PEWvOq4wIqRHvWCsUjXb0cQx 2mUjSx6ImRK/6LS6+fOdycl4B72fT/klqVDLs+i3ds+jjQY1Us+VQ+6MMqiKoFI7D1jD 5hEg== X-Gm-Message-State: AC+VfDyvbuwZuBJl0bxHI++5cajacH48Cbee058PH4GGwYS8v/C+CRCK bdXBJOUS8G/BXWz0pg5GSjoyfo+0wZhhbutiIyGUoMzI X-Google-Smtp-Source: ACHHUZ53HQMJTnpkgBMv5138iQl8lWWP9lOS0h7BMB1rI0DV/X5nSRO0z5qAZtUOdBOx7DNWbrXTPA== X-Received: by 2002:a17:907:a41e:b0:94a:4b7a:9886 with SMTP id sg30-20020a170907a41e00b0094a4b7a9886mr42726373ejc.12.1684383147347; Wed, 17 May 2023 21:12:27 -0700 (PDT) Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com. [209.85.218.46]) by smtp.gmail.com with ESMTPSA id zm10-20020a170906994a00b0094a82a236cbsm391719ejb.129.2023.05.17.21.12.25 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 May 2023 21:12:26 -0700 (PDT) Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-965f7bdab6bso300872866b.3 for ; Wed, 17 May 2023 21:12:25 -0700 (PDT) X-Received: by 2002:a17:906:da8c:b0:94f:7a8:a902 with SMTP id xh12-20020a170906da8c00b0094f07a8a902mr31637538ejb.14.1684383145429; Wed, 17 May 2023 21:12:25 -0700 (PDT) MIME-Version: 1.0 References: <20230518021825.712742-1-joel@joelfernandes.org> <20230518021825.712742-2-joel@joelfernandes.org> In-Reply-To: <20230518021825.712742-2-joel@joelfernandes.org> From: Linus Torvalds Date: Wed, 17 May 2023 21:12:07 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH RFC 1/4] mm/mremap: Optimize the start addresses in move_page_tables() To: "Joel Fernandes (Google)" Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org, Shuah Khan , Vlastimil Babka , Michal Hocko , Lorenzo Stoakes , Kirill A Shutemov , "Liam R. Howlett" , "Paul E. McKenney" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 6ostuj64agi5qbm7qqmppexuhka7kt85 X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 008E3C0009 X-HE-Tag: 1684383454-807046 X-HE-Meta: U2FsdGVkX19zuaYELxX8EPuehNTqO6N4G7iUfM0LqUbnPthd6GDWIyFiPbaGPMoiiwB2irjlWXsI8qPbb7CcoAhQ5zVGSsO1sJYqOL2nOaQWskkCdSW7awKvJWPq1b/TARAeCkbR1Fi45CMO21RA55++2Bg0dzTo8UyKvNt+SWJJp6kO9vywg6VB4nWDe8IRrsIyi9jdK31+p2QONsUr5pN+pO1F/7nGlzmFcnUYJ+kqOlO7O8BJEIZIYlRPmUlXERR3WSBzxqrC28lmQNSXiwH7kK67SGYPmWcxDFkZ5xvNj4AjMAsqoCoBs4YpGHlzTHkXA34AawfdawWPM6+2iY/vujHR2sZgOdL+vaZoNiFV5mo2WvZVm6Wcv2wGseYcFmqaAppHzznflYuWWSukjc0MNP/BCEDwvSRcmS5SR7A3QT+Xa7dlbpxMWhaEJu0GsgAtUzGgx5c1DmXBI4LUirsC4NU0e54tKrx3o/+AdepNHukN3YwFWoOu6L8+NwuLT6B+UVD9hz2g/3SlmSwpF2rrD78gw53VJjwjoCOp9/RJqVrf5yIdMf6ofbfISp0U2225oeZgQqQTcQTahKLGWHBIkpYCzXxfu/qsYnQBEDrjkUBUopnLEofcPRz/KevHOdcxoshr7ZYlRMwuh7dXzT+64fIBnXy449kUIE1Ba0DVI0oFAqubmnqS9GGDblcCcuC86D+hHUqZa0xLmjRgpFlFaNzUko+MBmvTzEf+7zEgalN3ZktQgnIlaVmBEA/yBAt2rDOZIZo2iFweiZwbPbwdG7zjV+iZcBFWVk9twMURBG7KLe2IWBdKTxKsqwBvJcOfQd1EoQNwKtn5mA4bqNgIqc2H+ESLjTxXmXyAA9ahJeADf+/2jvbpKdl+gSQx1y6E7x/SGdKnLlULLzmf4PbvxaZFV9l1pkelfMaXhrKvXh6/KFrdUcxE6GSSB5B8ZphE5CNRteb2kkhLNXM AFswL11z fuFTRNR5EHT2L6nYsh0boOUIEAaZzFO+rwfWRbC0FoKEcTrYwXSY//0XZlVvPJkA3dDcChXoX7R4GUGKms1956qrZuPR/1FaMI3OXaZQR71bJt0IoZ3mH5NIz4b8waqFRS0h213BBJ3+jVFbISJm/OMxm4O/jl3WbMa7vJLTgLnnMyPAQ1OA/LX4XdpPQfKRBGSUCMvRSHwQCsmwtHT68hKRNd6IUUT/lg1yP+7FWAxile3MNrcd83MS1lQr8SF06B+WTCOLmbU8Q3HnUWx2BBatyQZoEl9rh5RZTKiaTHv3navF1hvupHMgb4u5hBRVGB/LP3ySkJ7JMDXirM1oj4JmpJJpKCx5VF0UsPVjr2bPQgJBqMvq+wCF11YmTBJ2/bw10qEvlLB1w7t5So+25J4KGaS2DBYk2bRuN8WNYDUxjS0VP1YejslpB7C65pSNtuE9TeTipnqJLCpN5JQmONcZCtqsP2Gk1tAJslMg6MjbX3YroO2IY6ebm2xal6SGUdNDqcaOgog5CHSbHF2HAJiUNFBxTCyRS0BfSsOVTFlPaAz9+JkWwQbKBYgZaE6h5KW7c+pJKdEU4Fluvvn53B/HHr/e5NJm806Y2 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 Wed, May 17, 2023 at 7:18=E2=80=AFPM Joel Fernandes (Google) wrote: > > This warning will only trigger when there is mutual alignment in the > move operation. A solution, as suggested by Linus Torvalds [2], is to > initiate the copy process at the PMD level whenever such alignment is > present. So this patch is actually simpler than I thought it would be. But I'm a bit nervous about it. In particular, it ends doing old_end =3D old_addr + len; ... expand old_addr/new_addr down to the pmd boundary .. return len + old_addr - old_end; /* how much done */ doesn't that return value end up being nonsensical now? In particular, I think it can return a *negative* value, because of how old_addr was moved down, and the "now much done" might indeed be "negative" in the sense that it failed the move even "before" the original starting point. And that negative value then ends up being a large positive one as an "unsigned long", of course. So I get the feeling that it wants something like if (old_addr + len < old_end) return 0; there at the end. But maybe there is something in there that guarantees that that case never happens. I didn't think too deeply about it, I just felt this looked odd. Linus