From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D4C0335F167 for ; Fri, 20 Mar 2026 07:53:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773993230; cv=none; b=B0E6FqVyj1aefol+VZCxieVI78MTlT+03/mLTUg7Km5TkHrNwobk5YxX7c8uX9UiT4l/Aw86a7yJe6MsJ/24hGKdHAPLKmSDT6rez1surcnH9C9xQQTh2qKuFvjWyYHaaFcgnd0UMtzQMjRXccs3WkyOJY0pJTrBor9m70cMFCE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773993230; c=relaxed/simple; bh=25ihtzOpEaDc68Q4Etznf2DTLyWMPCHwwZSkRquQfdE=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=hd4ciIsZ+UKNLKLfzRuGdTMnPCznhMtVpu6bAtdrWuoX4JE6swLnjKJfdfGHCLhW1HuiNtkYJ3VK7wFtstsxQsFK8JCfJf0/qlQ/S/8eLwf/Lqmbb1lTYGrcQZnIjmAA9/pXVnzmbpcepkz1f1+3hXopHlNyI1uHtaR6p0GHjyY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YbBjytJR; arc=none smtp.client-ip=209.85.208.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YbBjytJR" Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-660a58841d4so376618a12.0 for ; Fri, 20 Mar 2026 00:53:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773993226; x=1774598026; darn=vger.kernel.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=MFpbaxQig2N1E9CoxGPFMo/Re1RZWfP0uZzqavx7Efc=; b=YbBjytJRc3Cbfpf/xOF3MyCp2RvFlBnEkV0WESOfwdxUS20pLNcTwUosMikvnClOWB y8rxlvwuInkx91BEXL+sBoreC6kO8yvsAwhTUJH7idacWjq/0PMedyu9WOuoTyFyMZ1r WAfOMWqkz/zynNZ3vqHcdfVwBwUJVdgXouWwdTPrOfbysHyNOsBegijbnILHVs+Kr62i q0hluByV5HD66IrL4w9xpYYRMCLccksiPcNad85N9sZ/nCfTnnakdokz3MWBqzuIRwfH pfMnM7svZM6WhJMXsO9aa2CyDyiaOibLcKVLl2nBIA374D0uMCjcZjTELJDNmrZ2iJkM rrUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773993226; x=1774598026; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MFpbaxQig2N1E9CoxGPFMo/Re1RZWfP0uZzqavx7Efc=; b=Ogk5YgsZn8D4/uYEWskbfa+khp9fd8a9x47du9NAUwr5otBuSGFFC9hj78vrQ4JDmy 3Pk/6iQoDlsuXJSR5cJe16LNfS0fEVQR9oawgY73F8f1/7swo3jFJBezjmCAD84OwAOD a/TG5JBb4iRq2uuNsF2Vvpv2JBAw/7c8u8v7Yi8DRmPvvy+dIowpq4XJrxbDwFFwEaZj 8ZzvC8SN7IR+tso+yM0ZORf1UcxE5J7QEWmAkwJmdlNE6ihuSoXdIh6AsMrbshfnLl9z XLCFeRhl0Niv3MJ8aRQ8q2/JZOZpNwMIixV0/aW77rFJTxwQza0O2O7SWOAJ384y5XlO A+Ww== X-Forwarded-Encrypted: i=1; AJvYcCWSzyaeUna4kq/ZrZJVuJmuDngFXng8r1Rb06K+9rAvKERnbs0WtoeDQBeVDYn6mneXE/+F1/3B8Q+soNQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyntkEUJdBAyaPj2UZ4ph4//mUmgFLVmnodwXl6aeaPXUJdUwlC RBN1pZFUgcd9I7FGg2Xq4bg8x6dV5+iYuz9zOU5aE4kKNJBA5Xfgucl8 X-Gm-Gg: ATEYQzxVaSN6bzJitw+CbCGROynh/BaRJUjrrteabj+ZRlqgxE7g+0nlPF9C5rlj7rG 44m1jDnIrkP/WRFEx0RCVhpp6sk+mauFB72qFOhirp/yscKOWrEb8DJoqkta2C5HzByn9zldX8C /QX8wRUH9w4jI7A0bX2DLduc2z7bLGCuV+I6hVRZtYb2mLsVRyFc32n6dsFQT/bVRIGG6XURFxP owNoTAUa769J6OPmfwQ+aYnytSohBnCVI7yToHDFVCCHrccGr9jgPJrfP9ZIzRGuwHS6T/9D6C6 x+FKncsd2pu/kEGdp9Q7EtKcwvnW+5Urkk8xsV4+TYWFoGtCHdaYNgtFs8Kvi3UMRBLJWRARPaU mm7YS0jiDK7K4r3GMponIro/0pHZ7BOLIwDqGsKERSUBKg/IGQtolHUTiL1JwBGO/sZT3xhVTXk AtZv0O6rq1FffJ2u0HzT7ZUq0fUK2rP7zD X-Received: by 2002:a05:6402:510a:b0:668:599e:1038 with SMTP id 4fb4d7f45d1cf-668c90fa1d6mr1647081a12.3.1773993225454; Fri, 20 Mar 2026 00:53:45 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-668cf4f89fesm1056118a12.4.2026.03.20.00.53.43 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 20 Mar 2026 00:53:44 -0700 (PDT) Date: Fri, 20 Mar 2026 07:53:43 +0000 From: Wei Yang To: Nico Pache Cc: Wei Yang , linux-kernel@vger.kernel.org, linux-mm@kvack.org, aarcange@redhat.com, akpm@linux-foundation.org, anshuman.khandual@arm.com, apopple@nvidia.com, baohua@kernel.org, baolin.wang@linux.alibaba.com, byungchul@sk.com, catalin.marinas@arm.com, cl@gentwo.org, corbet@lwn.net, dave.hansen@linux.intel.com, david@kernel.org, dev.jain@arm.com, gourry@gourry.net, hannes@cmpxchg.org, hughd@google.com, jackmanb@google.com, jack@suse.cz, jannh@google.com, jglisse@google.com, joshua.hahnjy@gmail.com, kas@kernel.org, lance.yang@linux.dev, Liam.Howlett@oracle.com, lorenzo.stoakes@oracle.com, mathieu.desnoyers@efficios.com, matthew.brost@intel.com, mhiramat@kernel.org, mhocko@suse.com, peterx@redhat.com, pfalcato@suse.de, rakie.kim@sk.com, raquini@redhat.com, rdunlap@infradead.org, rientjes@google.com, rostedt@goodmis.org, rppt@kernel.org, ryan.roberts@arm.com, shivankg@amd.com, sunnanyong@huawei.com, surenb@google.com, thomas.hellstrom@linux.intel.com, tiwai@suse.de, usamaarif642@gmail.com, vbabka@suse.cz, vishal.moola@gmail.com, wangkefeng.wang@huawei.com, will@kernel.org, willy@infradead.org, yang@os.amperecomputing.com, ying.huang@linux.alibaba.com, ziy@nvidia.com, zokeefe@google.com Subject: Re: [PATCH mm-unstable v3 5/5] mm/khugepaged: unify khugepaged and madv_collapse with collapse_single_pmd() Message-ID: <20260320075343.zjxztyhhdudbbhgk@master> Reply-To: Wei Yang References: <20260311211315.450947-1-npache@redhat.com> <20260311211315.450947-6-npache@redhat.com> <20260312020454.qpwjldisaqcstjer@master> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) On Wed, Mar 18, 2026 at 10:54:17AM -0600, Nico Pache wrote: > > >On 3/11/26 8:04 PM, Wei Yang wrote: >> On Wed, Mar 11, 2026 at 03:13:15PM -0600, Nico Pache wrote: >> [..] >>> @@ -2823,46 +2855,20 @@ int madvise_collapse(struct vm_area_struct *vma, unsigned long start, >>> hend = min(hend, vma->vm_end & HPAGE_PMD_MASK); >>> } >>> mmap_assert_locked(mm); >>> - if (!vma_is_anonymous(vma)) { >>> - struct file *file = get_file(vma->vm_file); >>> - pgoff_t pgoff = linear_page_index(vma, addr); >>> >>> - mmap_read_unlock(mm); >>> - mmap_locked = false; >>> - *lock_dropped = true; >>> - result = collapse_scan_file(mm, addr, file, pgoff, cc); >>> - >>> - if (result == SCAN_PAGE_DIRTY_OR_WRITEBACK && !triggered_wb && >>> - mapping_can_writeback(file->f_mapping)) { >>> - loff_t lstart = (loff_t)pgoff << PAGE_SHIFT; >>> - loff_t lend = lstart + HPAGE_PMD_SIZE - 1; >>> + result = collapse_single_pmd(addr, vma, &mmap_locked, cc); >>> >>> - filemap_write_and_wait_range(file->f_mapping, lstart, lend); >>> - triggered_wb = true; >>> - fput(file); >>> - goto retry; >>> - } >>> - fput(file); >>> - } else { >>> - result = collapse_scan_pmd(mm, vma, addr, &mmap_locked, cc); >>> - } >>> if (!mmap_locked) >>> *lock_dropped = true; >>> >>> -handle_result: >>> switch (result) { >>> case SCAN_SUCCEED: >>> case SCAN_PMD_MAPPED: >>> ++thps; >>> break; >>> - case SCAN_PTE_MAPPED_HUGEPAGE: >>> - BUG_ON(mmap_locked); >>> - mmap_read_lock(mm); >>> - result = try_collapse_pte_mapped_thp(mm, addr, true); >>> - mmap_read_unlock(mm); >>> - goto handle_result; >>> /* Whitelisted set of results where continuing OK */ >>> case SCAN_NO_PTE_TABLE: >>> + case SCAN_PTE_MAPPED_HUGEPAGE: >> >> It looks we won't have this case after refactor? >> >> Current code flow is like this: >> >> result = collapse_single_pmd() >> result = collapse_scan_file() >> result = collapse_file() >> >> if (result == SCAN_PTE_MAPPED_HUGEPAGE) { --- (1) >> result = SCAN_ANY_PROCESS; >> or >> result = try_collapse_pte_mapped_thp(); >> } >> >> Only collapse_scan_file() and collapse_file() may return >> SCAN_PTE_MAPPED_HUGEPAGE, and then handled in (1). After this, result is set >> to another value to indicate whether we collapse it or not. >> >> So I am afraid we don't expect to see SCAN_PTE_MAPPED_HUGEPAGE here. Do I miss >> something? > >No your assessment is correct, should I remove it from the list? I've been quite >confused about requests to list all the available ENUMs, does that mean we want >all the enums that are reachable or all the enums that are available as a >result? Im guessing the former based on your comment. > If it is me, I would remove it :-) Otherwise, I will think collapse_single_pmd() may return SCAN_PTE_MAPPED_HUGEPAGE. But, yeah, this is really trivial. >Cheers, >-- Nico > >> >>> case SCAN_PTE_NON_PRESENT: >>> case SCAN_PTE_UFFD_WP: >>> case SCAN_LACK_REFERENCED_PAGE: >>> -- >>> 2.53.0 >>> >> -- Wei Yang Help you, Help me