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 120E3C021B8 for ; Tue, 4 Mar 2025 23:16:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F17676B0083; Tue, 4 Mar 2025 18:16:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EC4DD6B0085; Tue, 4 Mar 2025 18:16:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D8C3C6B0088; Tue, 4 Mar 2025 18:16:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id B89B26B0083 for ; Tue, 4 Mar 2025 18:16:00 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 1AFAA1A0566 for ; Tue, 4 Mar 2025 23:16:00 +0000 (UTC) X-FDA: 83185428480.22.EB58DC0 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf10.hostedemail.com (Postfix) with ESMTP id 10E49C0009 for ; Tue, 4 Mar 2025 23:15:57 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=EoRZKUy3; spf=pass (imf10.hostedemail.com: domain of akpm@linux-foundation.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741130158; 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=UsGYMXYpLDr7f5E8gHZWIYiURe25aMjFSwNtNDeUKI0=; b=vqIR0j8373q8zyHvht8qD0wm3CtHJEysr6DFcRseoTUuWGNtvaXzgcn2VAT2x7zp8GD+HN cyMXuEGNqV4ipju7+C8T7HuGEA4bhaPly29TbMeH8ziNUyQj/KEpDTUC0nSkY+yu33m/H6 ocN6FsL+TIx+HZYz+B8t71CUTw+r3fk= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=EoRZKUy3; spf=pass (imf10.hostedemail.com: domain of akpm@linux-foundation.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741130158; a=rsa-sha256; cv=none; b=DUu3w+HgLlZbzAzfoNaUF2KyWswDZ3ND0llHeuhQf2Y61rJM3KhVZEX9RaUhdUwg3Hk26c RcbamxnT4UlQal7dyk5lS2DGLgA8s8zuJvSudDZ+Sq72YP8KowvSLClRcdqPD/5cAWvyIA sbjkGwG6gK6Yvo3fSXoNbrg/m3UA45Y= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 87ECCA45FB3; Tue, 4 Mar 2025 23:10:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BFDE1C4CEE5; Tue, 4 Mar 2025 23:15:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1741130157; bh=2txhcLgzVWb+dW/4Gd1kiuD+BIpXnIJ+gXwCmx8kpbw=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=EoRZKUy3ieMDVjUy7tnt+KDs52VME2kCRbAxOpC4ExjSHbisnmDrTHAuBRzgo82F1 /IyLQoUqyhrFkltu7mwDqNrP/sCP0Nf1l927hQ1+BOlhzrsfcbKhQwajGY+ku3CXFA 7fVCKdZaPpjStmn6PTfoTXv62HqD3uBumWXCXPts= Date: Tue, 4 Mar 2025 15:15:56 -0800 From: Andrew Morton To: Yosry Ahmed Cc: Lorenzo Stoakes , "Liam R . Howlett" , Vlastimil Babka , Jann Horn , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 4/7] mm/mremap: initial refactor of move_vma() Message-Id: <20250304151556.635d9041a7ca36f1960fe664@linux-foundation.org> In-Reply-To: References: X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 10E49C0009 X-Stat-Signature: ous85tx4we7ajk59rea1zgqy65ouwkr4 X-HE-Tag: 1741130157-190506 X-HE-Meta: U2FsdGVkX1/EG8rQmtlo65lFgBBu5TMbkJSdep2ruZ+ySibtgrkWzagsfFJdAo/Oe+dElwAZSDgnjQXJkDYQfsE/rTVl6Gh7CCVaLSeEAIAfH2pniy1YFBmoGyisjPMBy14KSiVD6Ta5DjeIgC5O+hOqvWS/QJ5pYjv0q52STBjStsxy61C4pvhdnkQD8x+ksoRCRUymUlb0HLAa3UN2Cc16N92DDGerjbEB2GV7g8hq7f+OYW89KUj7yPijpkwOfAT7CgpW9gCpmLTupa1XzwdFSQSlMbR+8nUa6QnvFeeW1J1xu8hmM/VzLIbf/e+1F5Nv2VnmCp2i3u6uA7jRNNaCrYmJEyzuL+CHKHLypUCH/w7u4TNhpeD7QThT9g8J2iABpl+jyV89UT9t9YDgudcmbKsB2iLv99MzvYCU2XBnDL+J5je5uCsZWRf5kBxfGpa8t62PRbEfCOz1WwA3fb9BmCCLFOuwTapgri6vTAhrilbkK292h+41+FyHlf3YI+UJW+zzrk6Hn+flQMLd5j//O/VXcsDkMohaXwHPgthDl92ddzXZ9ywrvHnOUWLd85C0eoPdG3O3cwDw9aDmY8LWbHwpk+WxY3dHV1RLEGg5VGaGqIAqJRDHmI1ydDdV2x6dhCW5x9NASZSIm3zQTb+FFr0RMZQw/lhtcLo2TG9v8tHyxTihJ5bccUSyATWA0G/WcgYW+uVFL9tFSxT0ID5QD7GDVsZTJ36mX+dzoT9yEFrUqROupz89jTWf6N/DIPVfLyTPiGn3wRU7qBhVsufI0DO7deSsTlMTNXvvTVJ1w48zXUewOfhe+oXEnSwt8B49P0a8aVKorzrvetH5ggGZimZwDX9cjeaZNWs483ohqmYMn1huWj7i9q4n6zy8IgDsQtVEmnhekCQn+QBBEJ+tNk8mnNZ0mwrAM0VuNQ23XSsbwljC9VowzKlkBlBmqZ1B8rW0VB1mWAjoW3O xGW5cjSa ZWZ1ggDq1k/49VgQ/vql0mHyP5bpWXxAMognxyRcOf745M5JbrwfQv3uyUQw6IQq/fAgX12TLRLZZGwPM7yIUQm7eaL6diiCWAYeHDp3qoKdYkL0UNfD3MSrZ5R5991FssRAu7NuguTXuiMoKALZOKtxNP6K1ovAqHcoBvDxKkcCqEmHjXTHJi12Bo5TewklArNtRy6nSRNWmwEDXOj2Q4H/xMkahKpESZuoZCzLoj7jyLs5wTxnXWZXjWI7nz2nHVLvDswhpgcpiNbYidJutmfo77/4gs71xzzzVtuRrFUZEH5ZgSIhyStdTrDq9h+SMZA0h 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: List-Subscribe: List-Unsubscribe: On Tue, 4 Mar 2025 21:45:27 +0000 Yosry Ahmed wrote: > On Mon, Mar 03, 2025 at 11:08:34AM +0000, Lorenzo Stoakes wrote: > > Update move_vma() to use the threaded VRM object, de-duplicate code and > > separate into smaller functions to aid readability and debug-ability. > > > > This in turn allows further simplification of expand_vma() as we can simply > > thread VRM through the function. > > > > We also take the opportunity to abstract the account charging page count > > into the VRM in order that we can correctly thread this through the > > operation. > > > > We additionally do the same for tracking mm statistics - exec_vm, stack_vm, > > data_vm, and locked_vm. > > > > As part of this change, we slightly modify when locked pages statistics are > > counted for in mm_struct statistics. However this should cause no issues, > > as there is no chance of underflow, nor will any rlimit failures occur as a > > result. > > > > This is an intermediate step before a further refactoring of move_vma() in > > order to aid review. > > > > Signed-off-by: Lorenzo Stoakes > > --- > [..] > > +/* > > + * Perform checks before attempting to write a VMA prior to it being > > + * moved. > > + */ > > +static unsigned long prep_move_vma(struct vma_remap_struct *vrm, > > + unsigned long *vm_flags_ptr) > > +{ > > + unsigned long err; > > I am getting a warning on mm-unstable because 'err' is sometimes used > uninitialized, I think here: > > if (vma->vm_ops && vma->vm_ops->may_split) { > if (vma->vm_start != old_addr) > err = vma->vm_ops->may_split(vma, old_addr); > if (!err && vma->vm_end != old_addr + old_len) > err = vma->vm_ops->may_split(vma, old_addr + old_len); > if (err) > return err; > } yep, thanks. I added this: --- a/mm/mremap.c~mm-mremap-initial-refactor-of-move_vma-fix +++ a/mm/mremap.c @@ -892,7 +892,7 @@ static void vrm_stat_account(struct vma_ static unsigned long prep_move_vma(struct vma_remap_struct *vrm, unsigned long *vm_flags_ptr) { - unsigned long err; + unsigned long err = 0; struct vm_area_struct *vma = vrm->vma; unsigned long old_addr = vrm->addr; unsigned long old_len = vrm->old_len; _