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 E732FC27C4F for ; Fri, 14 Jun 2024 01:54:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 59D3F6B009A; Thu, 13 Jun 2024 21:52:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 54CDF6B009D; Thu, 13 Jun 2024 21:52:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3EE226B00A0; Thu, 13 Jun 2024 21:52:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 238926B009A for ; Thu, 13 Jun 2024 21:52:22 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 91127803F7 for ; Fri, 14 Jun 2024 01:52:21 +0000 (UTC) X-FDA: 82227819282.27.84402C2 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) by imf24.hostedemail.com (Postfix) with ESMTP id CADAD180007 for ; Fri, 14 Jun 2024 01:52:18 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HRM8RW8r; spf=pass (imf24.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.166.43 as permitted sender) smtp.mailfrom=ioworker0@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718329937; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=WFmbQRPvNrnsz2JY0mzqRjOemINJxJOX/iTkOKnCHs0=; b=Wj5DreS1C23gdxHoHMd4y+bjLjxvcb6TkTphLXJFL2T3HoET5u49RSQuqodOeF9HFoICPM KsxJvfKzzGRyFL1eoOjiL1hGdspyjl0U6I8undb0hK7arziGhoS2FxraS/0aUULIHLq+SY NGnsvTcBMRNulz/9dzJqfxsNLaEzCzk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718329937; a=rsa-sha256; cv=none; b=8SIXolGlSJ0/taTznIHPpmPi/8G0SFFNCWBNjrVguIHu/AmmULMMQpOQFn2O/5IBzJjA7H 3SILQPaeBuNILw91PCOcDRfSQo+7ypF/EtsZvD+UfhKNvN6a9gbrkEY8DgGwGGhtNGsDwe +sm0Xtc2ermTM8sC0IHfLZvY9n9WKRI= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HRM8RW8r; spf=pass (imf24.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.166.43 as permitted sender) smtp.mailfrom=ioworker0@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7ebdb5d9915so59196239f.1 for ; Thu, 13 Jun 2024 18:52:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718329938; x=1718934738; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WFmbQRPvNrnsz2JY0mzqRjOemINJxJOX/iTkOKnCHs0=; b=HRM8RW8rCJCwsHUQdaMRdrqOGUWwUemsFDq/CkVuYNaLm7SGh5t6dZcjoOiLz5Ywx/ 2Ireo0oRPHDKfokThMOWDc27B/b0dseJVPgh7cC7jXaBJIa5/zN7bB2v9sEgLdDNVs3l xAJeVIO90qAh+zCaQuEIe0Ac8lE0TtKIRp5ovUCQOdmPMzGtQeXDpKi2Q5CziGf/sZpw XrlOEdMftdDkky/NoRjbDR8jrHIqUfrFY/SqJrVg6DYLOGVwX2ezVQCYHb9VU7CLk/lc ZBo/bGW6gIgStR5YMv0/ReYh+pSc8pMRbekIdgyANbIP3BrNBykvJ4RVsBRwrlE02iBz sreQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718329938; x=1718934738; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WFmbQRPvNrnsz2JY0mzqRjOemINJxJOX/iTkOKnCHs0=; b=VQF+m6+sbg2Hui/tXzBpylShv8doqkhwuvoH4VvcLU3Siu2GE+ZkKltPW7wrwNVbK1 a3BxP3/3a7R9L3xO+75tZEOk3roDJZY1BNneX4ARLXfK4XtWTHZ78Js+9uBM1U/pmU8Z SAXgsrN0XX/zuXbVIpoXhfgCN7i3ZFRYPqVDzwWVEozZSGe+lWdzj95sxxA54Pc+e1bK P1goTgCC5dIgaUowJh+GK/qUFmuutJ/eGsZJipLj4I3gfRjU6I5mvzGnf/jCplM4h5K9 YyRIQttNVaJO7ouh9Ek8SQJJeo1m6kvdJJoGjzvs2x7+PGW1iBOZao/I4VzwD189PVCH En7A== X-Forwarded-Encrypted: i=1; AJvYcCXkehhwu8xkr9Ry0tfSN8WAlg4Wb2GB9pmduqWmYFytgOT9DlLrbWoZSpq88b28K/XiwMi/0VliHW8UUXjpTmldUQI= X-Gm-Message-State: AOJu0YzZRQ+CNm5BiW43xlLEFyfbyDuL97KPsvKGKHu10+OYRv+JJs54 bjJh3yb8gDZ9ufvFZzkGI/PNK0ZdRpqRAv559g/JHg4TE8bKLpgY X-Google-Smtp-Source: AGHT+IFDhw5CyPF+647vuIacpDoCF7sesz2n+pQxSAMpRsRTA2HDFMORH760KNbesaRHRf86R06Y5w== X-Received: by 2002:a05:6602:2d81:b0:7eb:6cbc:8856 with SMTP id ca18e2360f4ac-7ebeb49bc4bmr137386739f.2.1718329937806; Thu, 13 Jun 2024 18:52:17 -0700 (PDT) Received: from LancedeMBP.lan.lan ([2403:2c80:6::304f]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-705cc96d4c3sm2000912b3a.59.2024.06.13.18.52.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 18:52:17 -0700 (PDT) From: Lance Yang To: akpm@linux-foundation.org Cc: willy@infradead.org, sj@kernel.org, baolin.wang@linux.alibaba.com, maskray@google.com, ziy@nvidia.com, ryan.roberts@arm.com, david@redhat.com, 21cnbao@gmail.com, mhocko@suse.com, fengwei.yin@intel.com, zokeefe@google.com, shy828301@gmail.com, xiehuan09@gmail.com, libang.li@antgroup.com, wangkefeng.wang@huawei.com, songmuchun@bytedance.com, peterx@redhat.com, minchan@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Lance Yang , Barry Song Subject: [PATCH v8 1/3] mm/rmap: remove duplicated exit code in pagewalk loop Date: Fri, 14 Jun 2024 09:51:36 +0800 Message-Id: <20240614015138.31461-2-ioworker0@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20240614015138.31461-1-ioworker0@gmail.com> References: <20240614015138.31461-1-ioworker0@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: CADAD180007 X-Stat-Signature: 7pry4ot9f54drpikqzn1g8wpxsj1ed5u X-HE-Tag: 1718329938-943289 X-HE-Meta: U2FsdGVkX18dtre8FZ2T+yZJwicJXaF1947hNt8BI6MjntYg6sOQVSDE3iBs617uIoHDRlbr+lh0ZF1h163HRran9kVWMVchUmCy6L5FDUyKlfuiZMSwC1F1XkWnfRFDNLgF0obJmIzg46wUAuGFvRX23toouIoAkJjtUIfZSRsglDp89Tm217gk0WYakNlLKME+YJnF7HUg0SRZk1lpQZ6659/8rWeXO6Y7aUxVfCABVobZ8U4DbNt22XQnkT5z/gDZ3P22ht2w3jj8uhuZMu60VCOyRNvAd+fo/SvW8lXFoaRLi0jlHVW4lBXscplfLEA6ZxVEXLZjOuoffuvyX7tgVP4tpPVjcIr/bnvVBbKwt0HnJbaUeB6woopkxI/ftNdZG1W/TmWvAlZ+5j+BvaxlXYKnpUEGB4G/2stEKjppwqeP1bkLQK/1tPcACeU5ZppN29tDbe9GsflY4jaomdYkD5mt6f2e5QfY53eKokLp8TLbqomn14gx4uUTSo2Ljp/Mn22yUnFrGag9TEhLLsyXw1JIten9IYTgDnXf+NlXfREc7QaSgY0Vll1NNR2wvrK+wL6czBX8jDoDkxzRFyWl02UIrPcKuTgyOY3Du6SmeifIrbi+Y4z0ZYJJB/ERoUJPLE8dNmTqQod6bfMknHNAwwVzwJusdd7V0AS6AgeiwBd0JPEALaQGMzMoSl1o+vd2v4AKWJ9RxqYH8rRNxV//mRPDPjkenPd02RPimcwJ8+6eUyXUmPMFloq+FVnmj0+RGBOfwpzS0W+/pF4faTP1FxoAasU8mrRAbKn3cQ8O4nTJoSkkdykorYVNZoNexsvn/VRX6O+av5C9drnBcVG/YszgvATxJhZfiuNQCjO9zrBknfF1Q5Z70BCL2BnFODkmhIgJjlIB9mAL5BhC1gbZO008cvNov5rZW8awL8RTwwile0OHNlAYy5HZpbUNKCKNI/I2MT6Ft1JW61c m3aPOWwh rUokh53CjLNGt73ejHJTKhAZF/UHl7KRVTe69uobanixRVrVh8gsixHu5POpI5WBzGrHI8DJc2CmqlpuxaBShsMEe+DQTP/rVWDsRhQvH9/MxhmMIhzZo5azgliHah+3WuYSL9qxs2TGlENRJFYtrG393PYiJAef0OMYVNX/rKaPhwZFhXw7pdWoLzgSZONtvDI3wJErrzdzPfio5EjEU7CqSp1NUN5gSEWsXrmF9VZUuviA/TaZT+DUtW7sn00zCnFflrJ9pA0TQYHaE9/VNND8KD2/37NrVJ5OD2CtEx7HjsdwvNXKuI/L9eVuNWHuz+iOkAZydhqHv2NSoLc0lKveXPmDVBHfD9OKw6d4FHAw0bh5W6y/f6dE8/12NZJFOlA0pvCLR5GZyJNi1WRlU/aEib+cSVo1IWp4hxd+xSSKRw/nwHH2cqrdGfcozEEpcV+HsE9PB/cJuQ3Wkli9eIzf5AEDzwtDtwPjmcVonbGu67rs= 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: Introduce the labels walk_done and walk_abort as exit points to eliminate duplicated exit code in the pagewalk loop. Reviewed-by: Zi Yan Reviewed-by: Baolin Wang Reviewed-by: David Hildenbrand Reviewed-by: Barry Song Signed-off-by: Lance Yang --- mm/rmap.c | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index ae250b2b4d55..2d778725e4f5 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -1681,9 +1681,7 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma, /* Restore the mlock which got missed */ if (!folio_test_large(folio)) mlock_vma_folio(folio, vma); - page_vma_mapped_walk_done(&pvmw); - ret = false; - break; + goto walk_abort; } pfn = pte_pfn(ptep_get(pvmw.pte)); @@ -1721,11 +1719,8 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma, */ if (!anon) { VM_BUG_ON(!(flags & TTU_RMAP_LOCKED)); - if (!hugetlb_vma_trylock_write(vma)) { - page_vma_mapped_walk_done(&pvmw); - ret = false; - break; - } + if (!hugetlb_vma_trylock_write(vma)) + goto walk_abort; if (huge_pmd_unshare(mm, vma, address, pvmw.pte)) { hugetlb_vma_unlock_write(vma); flush_tlb_range(vma, @@ -1740,8 +1735,7 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma, * actual page and drop map count * to zero. */ - page_vma_mapped_walk_done(&pvmw); - break; + goto walk_done; } hugetlb_vma_unlock_write(vma); } @@ -1813,9 +1807,7 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma, if (unlikely(folio_test_swapbacked(folio) != folio_test_swapcache(folio))) { WARN_ON_ONCE(1); - ret = false; - page_vma_mapped_walk_done(&pvmw); - break; + goto walk_abort; } /* MADV_FREE page check */ @@ -1854,23 +1846,17 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma, */ set_pte_at(mm, address, pvmw.pte, pteval); folio_set_swapbacked(folio); - ret = false; - page_vma_mapped_walk_done(&pvmw); - break; + goto walk_abort; } if (swap_duplicate(entry) < 0) { set_pte_at(mm, address, pvmw.pte, pteval); - ret = false; - page_vma_mapped_walk_done(&pvmw); - break; + goto walk_abort; } if (arch_unmap_one(mm, vma, address, pteval) < 0) { swap_free(entry); set_pte_at(mm, address, pvmw.pte, pteval); - ret = false; - page_vma_mapped_walk_done(&pvmw); - break; + goto walk_abort; } /* See folio_try_share_anon_rmap(): clear PTE first. */ @@ -1878,9 +1864,7 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma, folio_try_share_anon_rmap_pte(folio, subpage)) { swap_free(entry); set_pte_at(mm, address, pvmw.pte, pteval); - ret = false; - page_vma_mapped_walk_done(&pvmw); - break; + goto walk_abort; } if (list_empty(&mm->mmlist)) { spin_lock(&mmlist_lock); @@ -1920,6 +1904,12 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma, if (vma->vm_flags & VM_LOCKED) mlock_drain_local(); folio_put(folio); + continue; +walk_abort: + ret = false; +walk_done: + page_vma_mapped_walk_done(&pvmw); + break; } mmu_notifier_invalidate_range_end(&range); -- 2.33.1