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 4ED05C77B75 for ; Fri, 19 May 2023 19:21:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C4DDD900004; Fri, 19 May 2023 15:21:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BFEA7900003; Fri, 19 May 2023 15:21:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AC5A7900004; Fri, 19 May 2023 15:21:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 9E81B900003 for ; Fri, 19 May 2023 15:21:54 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 69F83C0999 for ; Fri, 19 May 2023 19:21:54 +0000 (UTC) X-FDA: 80807974548.06.6EB9CD5 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) by imf25.hostedemail.com (Postfix) with ESMTP id 40AACA000A for ; Fri, 19 May 2023 19:21:51 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b="TufFSf/w"; spf=pass (imf25.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.54 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684524112; a=rsa-sha256; cv=none; b=0Z/Z3Nr4UtvvogVYVZlIB4T4REqnfQKA3RwTMNSdWWgUdSn+omgyJZcEfiO/fEx6s8utx7 fc7AvkH4O/kvgQuFe2jR4T2pBtMXvpti4md9/4IpAvPn9TWiFerrXucFxHn3XXSFgAl+y9 8LU6akCF3IJ5j7/Vb7wnrNv6pOFHNN0= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b="TufFSf/w"; spf=pass (imf25.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.54 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=1684524112; 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=R3UOfbb4Sozljqzvq4nyP3R59tkdsUwJloQlEWrn99E=; b=nAT7+wW32SyxsxYIgbAY1kku/omEtRgNgkrtSz41zYAjn0nQShhv7JSdDX3pp6H8RGMvgk XNkTvgmVYKMIRLgh+U1DX4Bl7HVkf2RFVKdzupQGsdCFjjNJPeVukGU5OoazStnmc2A+OR 002JHp+uM7cIz3yAvkIyhnX5Iorh2uA= Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-965ddb2093bso584536266b.2 for ; Fri, 19 May 2023 12:21:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1684524110; x=1687116110; 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=R3UOfbb4Sozljqzvq4nyP3R59tkdsUwJloQlEWrn99E=; b=TufFSf/w57t3rdGZZ9k6NrvIRRg0IOJU214TyZ65AkRlDZn5JY0ZSEgAy6ko17UGvN hORZlxyJMmAIdywEHHMZYr/bOWwvfL83yYW425at2d5hb1512YCLonwpz23h4NT6OyPZ qloGnG+htrWYlevBiv+vP5NSrMJ5r7DnNDAk0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684524110; x=1687116110; 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=R3UOfbb4Sozljqzvq4nyP3R59tkdsUwJloQlEWrn99E=; b=cMbOUvPMo3TcvVwQsoM8r1erWxq9wnFpGaOdXS0a0SyJq3JzctUu5NAJiIhjzvuEJw wYuoQnK3WG+54tRKhM/eMg/UBLlX3nCfDScbzt4hlXSIcG1o1vSlEdwx5+st3RHCDhSR kwntXdzZ7/W0hfgcc2BeKfCmPSozTUbig9NmxyVw+6BM3gOTzrQypkbcW0JZ8JyNJSxX pk7uGhrNVp08cBJcU2Z/9zPYIsIDcKzafaq97/Ifv71jRUwpfc8n5CEd5T+UuHghDmSI LoOp9J8bVsWg729JvzV8tu12Mp1MT45sa83msyheiW5NbzdEgn4QOpMth1S0Z5HP5XaE izlw== X-Gm-Message-State: AC+VfDzapqbyUoRvJDeXBAf3dQ2aw1gN1pF13goXQCLF8r+lySUCAAsT JWc+2lqu/jxGE/dPCl9WR3/hsFPscFQRXN3jVo3bHzBh X-Google-Smtp-Source: ACHHUZ5+YdT1PLt3x693axLedsXBZCXnRpHIE0tYM9jvcmgtJ20/7M5zSg5MVF5QR6CwPNl6clVgVg== X-Received: by 2002:a17:906:4fd0:b0:966:54ac:17d7 with SMTP id i16-20020a1709064fd000b0096654ac17d7mr2922018ejw.76.1684524110235; Fri, 19 May 2023 12:21:50 -0700 (PDT) Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com. [209.85.208.42]) by smtp.gmail.com with ESMTPSA id rk5-20020a170907214500b0094f3b18044bsm2619962ejb.218.2023.05.19.12.21.49 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 19 May 2023 12:21:49 -0700 (PDT) Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-5112cae8d82so1566834a12.2 for ; Fri, 19 May 2023 12:21:49 -0700 (PDT) X-Received: by 2002:a17:907:26ca:b0:962:46d7:c8fc with SMTP id bp10-20020a17090726ca00b0096246d7c8fcmr2445592ejc.21.1684524109262; Fri, 19 May 2023 12:21:49 -0700 (PDT) MIME-Version: 1.0 References: <20230519190934.339332-1-joel@joelfernandes.org> <20230519190934.339332-2-joel@joelfernandes.org> In-Reply-To: <20230519190934.339332-2-joel@joelfernandes.org> From: Linus Torvalds Date: Fri, 19 May 2023 12:21:32 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 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" , Suren Baghdasaryan Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 40AACA000A X-Stat-Signature: fxsskbkjs7rxjzd449dzonxwn7xm5act X-Rspam-User: X-HE-Tag: 1684524111-314194 X-HE-Meta: U2FsdGVkX1/xf9nLVheynA91aqeN7JVZkeTlecDlmRRRWRkY/em4yCMGGw0ccKPJH4klmMJT3bg3bEuvqFrXiZkXQqJPq51bY8jAN36wksABrquozs9AQMBbyQcXs9aCYi/vww/8JGdSzagHUjADrupvgf7MfnMvH4i3TtDjVpVrK6hc0pOFqJUxGK5pvJvbQl23G9NtUp2AabnK52be9EiaAN4MjoOsCyG5FcDMj6PElXjFzU/UZY6UuluzkpUn3qVlrWhPShzb9V44KrK+94rqspdti9+vfn+vZQoXiLfZFS9SqLvs2TM8GnKJifP/JUtK2T7kf5XoZgsb6rgZUuhGlG6Bf2fYVKa0bO/28pDBqXTt343YfzEp6Uj9mc45BqBOsrV5WNaUwrWUcU1D9ov81WCo36k9UPp4Org459VBvvSVS0jq8cJoaJzMLY0EnFHerOPwRCZE6E2zHmfmsy41ei9VENPUuKAqxGZTuLs6IGPbBaMtzICDFGp2zPLXrMvSID9/UV7LAll/uGvjy/ZHqrFafjtwZ6NbL9ynWcW1dHQ/U1V/pNHiz3m1sispFsVO0K2Hcv4F0xFqhJh2O3Kk1lhwz/zcENyXI7OWXJ0YElrfn0lh1z7RG0pI5oTnOkoJA7i9utWiGc3sU3ySu64klgm7z4vZUIdhcB0paSt7fuFiNKRSb+//ymlR9wBEzObju6kr0IU3z9kWSiSQntoBNHudTwLBSOentroBmH74JFTv558ail/r+YQ8U20zRpOhBktzcuzODOPClZc+lv3EpG8RkT9hEPB9bDZFwVkPBWIm55h4QAMO8iVWWSZ8Ov5WB140vySXOY2q4QslFVrrbk1DkO9X0eDBh0GYjVaIjGRRASEqcucj9ut1xZP8UsyjpPdDbyp4dzSAU3YxuRSuim9+4jj8suM6ywk7oAKzZOunfKAcLMU+yYCdL3+vMNudwq2n9eToP5qZssb u48A7qvh hposdFAmDPBUgurJbhPxBpSOSHJ/YlL+ERRFZeMJHjxMcsaoumgL9l//8Dk/w7A3VYg2x+rTYV8dN6RaRUk8Pdvv3ysdAqaXJSpboQI1EdA2qcsaxNCiXvZD5x7uY4hUR9yrOtIEktOW+sVeEldoMJDuxQwezlSFZODegLaj0uuEGXveMpZ3FH5Uaqb24lq1G7GiUwFd2cuJLfMFbHLzX5MVEDdOSdQuRaHIs2j20VAcqQCwqOunRzcx9ED0A9k36rGdc8JeU27VkkKKMbD6+Dz9n1gLwa9aMoXAW8cZ6E5oCxhENH4AdxLpj1Za5Hku4Ax+xzHkVdyybv6yeQ4pYd19h8trOuvZ3RkgiE6qggCxlgGRzyMqbYO7PfpgvfXn/nC3RxZKNH/Bgg5f1rIMiV+zH4qV6Or+njFkCq5Vr/cs3snOjQmqw0ghY76DqlBg3ehODbobJj+17ttdkIR+VuIy4o4JN6SgLWAkHbnvR9J3VOXUpl8FYJDYS21PL/SP2jENGU1a6lTq8W/IjwGjJKKbYRPZJ38MtfBRRWJ1cQVajSgtg1gX+Pk9tQ8o3zWeDHJ2oCecLwUIuIg0lHN3/s1VkpXiAP1Ll91+Q6b4+Cqmf5us= 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 Fri, May 19, 2023 at 12:09=E2=80=AFPM Joel Fernandes (Google) wrote: > > +static bool check_addr_in_prev(struct vm_area_struct *vma, unsigned long= addr, > + unsigned long mask) > +{ > + int addr_masked =3D addr & mask; > + struct vm_area_struct *prev =3D NULL, *cur =3D NULL; > + > + /* If the masked address is within vma, there is no prev mapping = of concern. */ > + if (vma->vm_start <=3D addr_masked) > + return false; Hmm. I should have caught this last time, but I didn't. That test smells bad to me. Or maybe it's just the comment. I *suspect* that the test is literally just for the stack movement case by execve, where it catches the case where we're doing the movement entirely within the one vma we set up. But in the *general* case I think the above is horribly wrong: if you want to move pages within an existing mapping, the page moving code can't just randomly say "I'll expand the area you wanted to move". Again, in that general mremap() case (as opposed to the special stack moving case for execve), I *think* that the caller has already split the vma's at the point of the move, and this test simply cannot ever trigger. So I think the _code_ works, but I think the comment in particular is questionable, and I'm a bit surprised about the code too,. because I thought execve() only expanded to exactly the moving area. End result: I think the patch on the whole looks nice, and smaller than I expected. I also suspect it works in practice, but I'd like that test clarified. Does it *actually* trigger for the stack moving case? Because I think it must (never* trigger for the mremap case? And maybe I'm the one confused here, and all I really need is an explanation with small words and simple grammar starting with "No, Linus, this is for case xyz" Linus