From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 54AA1311C2A for ; Fri, 12 Jun 2026 10:21:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781259674; cv=none; b=QIDNpGQ59eJOFeKiZtzIufUOLrW3M84exYyaGDDkR1DOjOAcKhiXHyaC0qW3NRhGeOq4ZEqQMNoV5HvFhT8BB9oj2uenOEYQZ/19txXjqxGjCuRoOsFU/8HDWgouruMjHkpfw+RtOrk9LbeBDKuIHtpjm59keMPlPE0uXk0hOEg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781259674; c=relaxed/simple; bh=hT8rV0E/5ol7/5ixBfhysF/ptFlVrDQM4pEkoEL+mOg=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=dQYe+XtesK9L0xQ6nv0g2dYd8TN82I5o/AD/0hfPGolBSZNknDGiRr7FCmngvIcz6YDxEV4plfrPxUHz4EW5JSkoLsvtOsDKXGKDdiAQH3BB0KUfgURHsGSsqbiTgZ2lefx3SvejLTeRC1aPQZ2ju0fUQBx0Kk8uE9gcViHem6M= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=M+ca4Es3; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=Vb3msbvm; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="M+ca4Es3"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="Vb3msbvm" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781259671; h=from:from: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; bh=JGyKIDivNLUz5KIM2/WPEeXj86ogPPDaiz1Q78T2QNk=; b=M+ca4Es3PjMHdBDLqxVPaKR1FJkLoGSR0bwgiRUaF3zq+s7QPGc2dSqhEEKySf2KyUjYlB 5AKKMxmlUFuUCgh+4zXsZq2NCCCnijhSJIoT6iwtShbGGzSenpxmKAUT3+RNgvvpbpFAUg I7QPwj1Q5yGZqbDOXh7Mbtv/jGlOP0c= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-588-fQYmP6mlMdOlG6k6a5W4tA-1; Fri, 12 Jun 2026 06:21:08 -0400 X-MC-Unique: fQYmP6mlMdOlG6k6a5W4tA-1 X-Mimecast-MFC-AGG-ID: fQYmP6mlMdOlG6k6a5W4tA_1781259667 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-490bde3d239so4989565e9.1 for ; Fri, 12 Jun 2026 03:21:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1781259667; x=1781864467; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=JGyKIDivNLUz5KIM2/WPEeXj86ogPPDaiz1Q78T2QNk=; b=Vb3msbvmOJ837N4zmFQB/qxTV57/ATlpUqyrkv0pxAw6zEENLHgHm68c/x0LkknphD JdahEZCWIJeJzpOfkn1TKKb0I4nT9PhsXLIIyAhwHbf2K0bjG4jUAKpNgdDvHXNUYe1J TTCUW8qDcaQLnwPr3w7R0GooXAw5ZAo0bywPKm7AvesMQEVdBnFZ2RPlyNuv5lvgrdOX uXe5q/bWdwIOUeemLt1yiMZIGREII34PlMj6HH+/p5Us1hk/h3z7NyMHqnx0VllgcXoE 2EiX+VefxlRs3L20ubm9p9vUmIDrGZdEO/yebIQrfzvlzM6rTKqOBqNQg7ytKB2O5uDw ToJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781259667; x=1781864467; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=JGyKIDivNLUz5KIM2/WPEeXj86ogPPDaiz1Q78T2QNk=; b=Ti1uk3cbBe/5bLQXjPVgAOb8uuDBbcjSdWFq3vLobOkLuejPU7tHNr0tBQC9Ny6Yb1 4ACRnwj69r65+/92l6LriXN0CyfzT4LOEH1xRxBDykH3rfuXyp+kA3pexIcWHDyF2NGD n27cHHDchWMWrXfc2E6A6sAV3PiHvo1OdrsHfJxJxAXljxadCVMMN5QqSnYndrRVo+Fm nJOyZLIXOC9of+qi1478vj/qcrY5ehYOOw0qYBLBS6cGK/xlEoRn3l8doxokwww/4Swe tblkg9v52JB6Vh3xREklml3oE3BjjrrWPLIx9FdTtq6XtOC/YyXieJoBBFDaKexsHrUB /5xg== X-Forwarded-Encrypted: i=1; AFNElJ8l58Kfuol2zNtvYv8wzC2qynal0KqtfYceCOu/vPUgdv3KpPmQl4zucZq4SuZBQsWGjkAss8AP52CCax8=@vger.kernel.org X-Gm-Message-State: AOJu0Yz36c8mZv14RLSEZsjzz2xRS531vkMdG7SkMFLh0dsIMAGpnErT WQ/W574xGNkI2ZoZL5xR30kuY6GulBqqISIc+7BAUkDly/gARR3mdwQId/t5x4fwuh4D7A18fWC /AAxW/tx8loWeGe993asqwc/kadhjalx57FS21IUO6IgE+QoBe9SzEUrk5ngNUA6APg== X-Gm-Gg: Acq92OGA2FN4S6nPlMNE/j9gzrw2xzGipYh2gx0NI2/3MXKKE5yAkb0Msqgk4MIjTg4 4NPpqYA3cDiNwvZMzW/NKVwd1KjKghp4ED6aiR8A6vVcUrAw1muXLeskkNu1l8m16jxFutao4x+ 3my/u4drIs/OfYYI9aFV41qD8QnQhgWgjn3SPhz6GeY4CCiMibdz7SaFN/zCZzzfWKj3PV8qC3Y orCYj3ZGTP0DPYenwaIo4Rq9kRCkCyLGj5dqGJbYTj4mkbuHc8d5j9RLbPAauDXXVNoBD0iIb30 /Azf9kJmPO3/VH6u7m1jkdXoStUveRvyk5HZD/1xA79BPNGoY2RBP3Pd23z/uGoON8zqnRVTwOP Jeu08luM9m5uKyHxVF+Q+ATKdTbITrr431okLx5C8FVwvlVFF3j0MU96GwdziNrWp X-Received: by 2002:a05:600c:314a:b0:490:bcc1:4edb with SMTP id 5b1f17b1804b1-490ec504eb5mr24369515e9.27.1781259666849; Fri, 12 Jun 2026 03:21:06 -0700 (PDT) X-Received: by 2002:a05:600c:314a:b0:490:bcc1:4edb with SMTP id 5b1f17b1804b1-490ec504eb5mr24368835e9.27.1781259666305; Fri, 12 Jun 2026 03:21:06 -0700 (PDT) Received: from [172.31.99.182] (91.red-83-48-118.staticip.rima-tde.net. [83.48.118.91]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490ea7c871dsm61873325e9.5.2026.06.12.03.21.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 12 Jun 2026 03:21:05 -0700 (PDT) Message-ID: <443feb66-94ab-458e-8cd8-0ad440d0d067@redhat.com> Date: Fri, 12 Jun 2026 04:22:20 -0600 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH v2 04/11] mm: khugepaged: add shmem mTHP collapse support To: Lance Yang , baolin.wang@linux.alibaba.com Cc: akpm@linux-foundation.org, david@kernel.org, ljs@kernel.org, hughd@google.com, willy@infradead.org, ziy@nvidia.com, liam@infradead.org, ryan.roberts@arm.com, dev.jain@arm.com, baohua@kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org References: <3895c09794739bbfae99d9e021ffacf8a51fb8e2.1781083630.git.baolin.wang@linux.alibaba.com> <20260610124416.46522-1-lance.yang@linux.dev> From: Nico Pache Content-Language: en-US In-Reply-To: <20260610124416.46522-1-lance.yang@linux.dev> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 6/10/26 6:44 AM, Lance Yang wrote: > > On Wed, Jun 10, 2026 at 06:29:12PM +0800, Baolin Wang wrote: > [...] >> @@ -1512,8 +1517,12 @@ static enum scan_result mthp_collapse(struct mm_struct *mm, >> enum scan_result ret; >> >> collapse_address = address + offset * PAGE_SIZE; >> - ret = collapse_huge_page(mm, collapse_address, referenced, >> - unmapped, cc, order); >> + if (file) >> + ret = collapse_file(mm, collapse_address, file, >> + start + offset, cc, order); >> + else >> + ret = collapse_huge_page(mm, collapse_address, >> + referenced, unmapped, cc, order); >> >> switch (ret) { >> /* Cases where we continue to next collapse candidate */ >> @@ -1521,6 +1530,7 @@ static enum scan_result mthp_collapse(struct mm_struct *mm, >> collapsed += nr_ptes; >> fallthrough; >> case SCAN_PTE_MAPPED_HUGEPAGE: > > Looks like SCAN_PTE_MAPPED_HUGEPAGE from collapse_file() get lost for > the PMD-order case. This is kinda my fault... I reused the enum PTE_MAPPED_HUGEPAGE (which was only really used in file collapse) when reporting that a collapse attempts is smaller or equal to the current order of the folio. if (!is_pmd_order(order) && folio_order(folio) >= order) { I will change that in my follow up to use its own (or a different enum). > > Previously, collapse_file() returned it straight back to > collapse_single_pmd(), so we would run try_collapse_pte_mapped_thp(). > > Now it hits mthp_collapse() fitst, and that case just goes to > next_offset ... > >> + case SCAN_PAGE_COMPOUND: >> goto next_offset; >> /* Cases where lower orders might still succeed */ >> case SCAN_ALLOC_HUGE_PAGE_FAIL: > [...] > > Cheers, Lance >