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 1FE7FC05027 for ; Fri, 10 Feb 2023 07:10:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1129A6B010A; Fri, 10 Feb 2023 02:10:22 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0C3DC6B010B; Fri, 10 Feb 2023 02:10:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ECC886B010C; Fri, 10 Feb 2023 02:10:21 -0500 (EST) 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 DDB506B010A for ; Fri, 10 Feb 2023 02:10:21 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id ABDA2A143F for ; Fri, 10 Feb 2023 07:10:21 +0000 (UTC) X-FDA: 80450508642.10.C34869A Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by imf24.hostedemail.com (Postfix) with ESMTP id 7A228180016 for ; Fri, 10 Feb 2023 07:10:19 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=SEtwKnXg; spf=pass (imf24.hostedemail.com: domain of ying.huang@intel.com designates 192.55.52.120 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676013019; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9Rj3TitFs+wEkjqQGQN3vVHLcWNgzoG4woH/zFtGvvc=; b=m4926s95D0oZMqmuT6A/6dq0IMHII9pnVhp5X1/xR61DLOTPFXnREb3T3N1eKJDdt9OOxI Y7IG+XkFBaX2ma6VKaIu/ekkkdRcbFw744j5Lqt4wH8QMLJULmJ28oX0nWKdIN3+wo4PiF Z80mpl+9K6jNSKAlS3EdwiVipzmSMlw= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=SEtwKnXg; spf=pass (imf24.hostedemail.com: domain of ying.huang@intel.com designates 192.55.52.120 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676013019; a=rsa-sha256; cv=none; b=j6LprUQZW0o4Ifd3+hHre6753OtuVP1wo37PlJTKsNJWqEBcsFGUQHm2n76/u3N7SIbYDl mrKucdiveknQRO9bEH/WbTWKh8taoNffTRQhralvOV2V8gYBEDz3c63LiN7vG5jI96Wo+r F/26ZthuHDzh2cBcMl2aJT1DwjZn/ts= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676013019; x=1707549019; h=from:to:cc:subject:references:date:in-reply-to: message-id:mime-version; bh=+lZLQTS9Us4z3CYUyRjyBFPbXioEEGu3KfyKGS5oIJs=; b=SEtwKnXghEEobZzBUgedUz5bjNh8pLHMB2rN6YDZSiDa8I/16JWLE+dJ f5YrTP+WLXu2i47GZxnCyLzZfj1gw/dLyDPMS7sAA1VsTmOihlUTSCjtU 3E+29+EAYF4XUQdZNLkf4pMo+NmnB8ZYI5ofz556an4eKxM7ZnCMt3IHN IYMM5jMerFTLYbgno+e7kYx5TGW+wmoZODOtxeldbbRMpQdY8cAiozjzj oaGK3y18fT3O3v7kuLlEEeFeTdDG4lv2OLDwUIBxc5bUEM06/NUz6kACq TzezwB4DNxX7yR5Au/PBfHlVpwfWtJCoUizHdezjgoZ5SMAKYhiKBKq7d g==; X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="328984549" X-IronPort-AV: E=Sophos;i="5.97,286,1669104000"; d="scan'208";a="328984549" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 23:10:11 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10616"; a="698331180" X-IronPort-AV: E=Sophos;i="5.97,286,1669104000"; d="scan'208";a="698331180" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 23:10:07 -0800 From: "Huang, Ying" To: Zi Yan Cc: Andrew Morton , , , Yang Shi , Baolin Wang , Oscar Salvador , "Matthew Wilcox" , Bharata B Rao , "Alistair Popple" , haoxin , Minchan Kim , Mike Kravetz , Hyeonggon Yoo <42.hyeyoo@gmail.com> Subject: Re: [PATCH -v4 7/9] migrate_pages: share more code between _unmap and _move References: <20230206063313.635011-1-ying.huang@intel.com> <20230206063313.635011-8-ying.huang@intel.com> <87zg9ofjr9.fsf@yhuang6-desk2.ccr.corp.intel.com> <475B26C7-8BA8-4647-BDB0-25C805FD5ACC@nvidia.com> Date: Fri, 10 Feb 2023 15:09:18 +0800 In-Reply-To: <475B26C7-8BA8-4647-BDB0-25C805FD5ACC@nvidia.com> (Zi Yan's message of "Wed, 08 Feb 2023 14:47:35 -0500") Message-ID: <87pmaif141.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: 1mxyeg4n1knec73gtsesau3ss7sgziek X-Rspamd-Queue-Id: 7A228180016 X-HE-Tag: 1676013019-751189 X-HE-Meta: U2FsdGVkX19yfeZhAHuVSJ0oY35itG777GDbAjSij5GRkzjU27PvgBCzInUcU3Lchrkw/VlPSq2GjDWzAcgluJvJJ4CfN2g54x16iGoF6N30TfoHEep3y8eBTQD4/+YBOgPlMPZtA9+MTY33W/27Iq/Fb/xo9Cp3bWPxbxaU8K+75OWfnO9KDRBJapYAWsKnVSJMF+KbdoXZIhRWczNQxewoIdPpAU3vycMuJeQNQqTZEIvNEmDzsiXVY9gaGmDmoOEBgpj7t3xP1Y4KHEofoGlkOhzEdSx77JO02jFZf0Qu3HuHtEZxwiFfBdOsZNs7STnJgOgZMUz89Pwf1q08ZEyK8SR92jOWY1PY/GgE8gddl/7acrtf7DRj6+ENczzrV3+HZwxsvuU7SXI53epVzppZjwi8NFRLMxRpQD2hHaHzCAjRTiuWFbDji2Vs3sMMfEfkwW+P7a6VWR22lvGlQNYtcfr4pWCWQhaMW6xcCs7gw6JC8hMd7yy0WCXGJP+gNRvNiUAkvSIUi+LLPVsx6wHfyk4e7ZKjTYrqm1gaJpC6m5/8MQcWek5C/80ge6urT/moYdKE6tYSeM/NX3tvRDjQr9nWXqA5TSQJaS85tbFP91D6LZle5z+pOKUIewld+c62CXsphyHkgCs4xjbnJp48i8UfRdpctO5d6o55AgD8bTX+cjMFdBEaCyMGW76sua4Nk4DF6QLK/FvTELxNoxCEVoDRIuyomzS8M2Jrpy/Fhe1fk4DYnl9jsBUPqjFhwzJJEM30QBIWee7LliBawr/S7vcALilRp6w2YFSoftOF3HooalXdNJrzm0bU1HYkLbUr7M3jsxnzGdnlT2TV1i+yb7YzeA12nO2/bCdzrTjRWbkgz/wWv/DcFDNz+kv7vHUKzdpFjHVr5+HkgjMjm3Vwp0iCKGskK8VESObBA+cK9Uaj8zxOl/HZP2o5tXIHKofMC08mkZwHL4XpgcT OXLdAs6K mp+mmAIS9FfL/jsX1HPs+9mNkyw2c3K/mzpryb6uITRnnlTrhydmbcHribnpcNqUZNOHh5QpjR0Udy6+Pm34pwwgllJYpGq+NFfyA7BSXLV1KXxH4ypst1A1WvF73eRWHPoyalEv74sxP8YYzI7dRj98DSX0Ik8PWVIn7/+sRxKCikHH1FP/qEIDFon8MDJvvcykCaTOIXzuyGb9Cs7a3GifHNPkDJAu+5zXlmruCpRJXsmDHNjXoJXdYan+nGhL7K5MVdprYyX+2QP4lf5WLsLv1c1SxyCmQm1pQ1fRLuwEGeUO4MgoKkj3SrBerRMLIa9zvUPok8xIldddRbEuwXN95QiN+TfiRES2wEdOMZFFNFbreFas39v+SV2yCcmSBQ1XbCg0aRVP3KtAnQFjB9T4Aftxj4psWxsmp2kZNcSYGBEEyDfAmMK9zznQO1nNbp3HhOJl2IIM32VjHf/AXMC/ky0j96bkBuo/xDEkcP6MaJQrBLDfxcHlIBF0ICQnTI9ePyDdEpphWRZoAwfQ+PD7waMa5Orgcjvwy 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: Zi Yan writes: > On 8 Feb 2023, at 7:02, Huang, Ying wrote: > >> Zi Yan writes: >> >>> On 6 Feb 2023, at 1:33, Huang Ying wrote: >>> >>>> This is a code cleanup patch to reduce the duplicated code between the >>>> _unmap and _move stages of migrate_pages(). No functionality change >>>> is expected. >>>> >>>> Signed-off-by: "Huang, Ying" >>>> Cc: Zi Yan >>>> Cc: Yang Shi >>>> Cc: Baolin Wang >>>> Cc: Oscar Salvador >>>> Cc: Matthew Wilcox >>>> Cc: Bharata B Rao >>>> Cc: Alistair Popple >>>> Cc: haoxin >>>> Cc: Minchan Kim >>>> Cc: Mike Kravetz >>>> Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com> >>>> --- >>>> mm/migrate.c | 203 ++++++++++++++++++++------------------------------- >>>> 1 file changed, 81 insertions(+), 122 deletions(-) >>>> >>>> diff --git a/mm/migrate.c b/mm/migrate.c >>>> index 23eb01cfae4c..9378fa2ad4a5 100644 >>>> --- a/mm/migrate.c >>>> +++ b/mm/migrate.c >>>> @@ -1037,6 +1037,7 @@ static void __migrate_folio_extract(struct folio *dst, >>>> static void migrate_folio_undo_src(struct folio *src, >>>> int page_was_mapped, >>>> struct anon_vma *anon_vma, >>>> + bool locked, >>>> struct list_head *ret) >>>> { >>>> if (page_was_mapped) >>>> @@ -1044,16 +1045,20 @@ static void migrate_folio_undo_src(struct folio *src, >>>> /* Drop an anon_vma reference if we took one */ >>>> if (anon_vma) >>>> put_anon_vma(anon_vma); >>>> - folio_unlock(src); >>>> - list_move_tail(&src->lru, ret); >>>> + if (locked) >>>> + folio_unlock(src); >>> >>> Having a comment would be better. >>> /* A page that has not been migrated, move it to a list for later restoration */ >> >> Emm... the page state has been restored in the previous operations of >> the function. This is the last step and the page will be moved to >> "return" list, then the caller of migrate_pages() will call >> putback_movable_pages(). > > But if (rc == -EAGAIN || rc == -EDEADLOCK) then ret will be NULL, thus the page > will not be put back, right? Yes. That is a special case. > And for both cases, the src page state is not > changed at all. Their state should be restored to the original state too for being processed again. That is done in the previous operations too. For example, if the folio has been locked, before return with -EAGAIN, we need to unlock the folio, otherwise, we will run into double lock. > So probably only call migrate_folio_undo_src() when > (rc != -EAGAIN && rc != -EDEADLOCK)? And still require ret to be non NULL. > >> >> We have some comments for the function (migrate_folio_undo_src()) as >> follows, >> >> /* Restore the source folio to the original state upon failure */ >> >>>> + if (ret) >>>> + list_move_tail(&src->lru, ret); >>>> } >>>> [snip] Best Regards, Huang, Ying