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 C3758C25B76 for ; Wed, 5 Jun 2024 03:38:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2E28F6B0085; Tue, 4 Jun 2024 23:38:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 291ED6B008C; Tue, 4 Jun 2024 23:38:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 180AB6B0092; Tue, 4 Jun 2024 23:38:32 -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 0169E6B0085 for ; Tue, 4 Jun 2024 23:38:31 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 732D0140D13 for ; Wed, 5 Jun 2024 03:38:31 +0000 (UTC) X-FDA: 82195427622.04.A42E0BB Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by imf24.hostedemail.com (Postfix) with ESMTP id 9516D180006 for ; Wed, 5 Jun 2024 03:38:29 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dMai1bCH; spf=pass (imf24.hostedemail.com: domain of seakeel@gmail.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=seakeel@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=1717558709; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=TZJWN0smhjRNeWSpuAHgy5nc7GxTC32AmAdm6f2hCDU=; b=rQh9emBSVWS9IfGBUsZ756o7MQCmpGDdDyyyaxg9qnpW6xvkGNh5eKqqjBqJgTbLD+1nrL Inw20G7D6QZ4P2rvF5UJxI3OwiIGq6z0i44TGutsGyvKS07Yb5YMhNlWUaX+kbAVRJsrv2 VSJclW0abYSsa4+ezTiE2e+ToVVezK8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717558709; a=rsa-sha256; cv=none; b=Ez8suUHdUz00iZ4KhVXWHPxZ8kFu/Eiq0UALd0tyPZLn+dzNG09qALRqtAdVy5Clylrdmx 9z2/WBYBz9IpbiziJqRj+Bb2La21x5BuxT3K/OXBBQZfmEh0NNNwan+vie90XFicyHfk/U QlLx+B/l0EAtyIzNkpLw5AKEplL5RSs= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dMai1bCH; spf=pass (imf24.hostedemail.com: domain of seakeel@gmail.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=seakeel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-6f8ec7e054dso4392378b3a.2 for ; Tue, 04 Jun 2024 20:38:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717558708; x=1718163508; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=TZJWN0smhjRNeWSpuAHgy5nc7GxTC32AmAdm6f2hCDU=; b=dMai1bCH6UZUE/gPdHumoM715/Jzu++tFtG42dQK06Kn+Pcp26YelJgQX+LFvPE/uQ 6DlyzAOa8d32Bl+znLNoIKGwzsSr7/yhNxf8dZRehdDhmGeWoABzdwHXN0Vzw5MVjWTv T+j9kn8fMF+8R//7oN9ygflHEs0LjuDTytrb9lNVY1+P7XFJ/YweFAlt1Wb/+lgjfaXC cZe9xaa8fwuRCEeG/rJd4tFBXtcCz1v4SMEZhU3ytmdcDHJRW9Ky144mxjIHzVFGY3CQ 5mGYrnu4LTwqO2Ds642qTtTIgPEsmq6nGm6QuuT6+QtXd5W3gJXLtTnCF+XKRhHb7nyP yvew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717558708; x=1718163508; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=TZJWN0smhjRNeWSpuAHgy5nc7GxTC32AmAdm6f2hCDU=; b=ZBuE45qzUDdRVd/0UIg+NBPwRGKBNRB1sZQjr2dU45TSR246Y5Rc5C5qQxS/CyhE76 7EJd56MIoDy4CUVZ4XXkF2vwx712LA1sz5/ERIzeCk7OFp0DudDGM5RJw20tWfqmBVat p0aodAmxkGSobvQkC+QbH24zCV3ChcN5L2UoHAtLpHv5GNtvbZWc7pdB+jjzJcUIZpxi 7CEo4mxugP3TbPOl72ixZLGj3Z9WhCJTEjfAp7ima0PBxTPCFvBtxQRZFkO7aQpdRhLQ 53GbNz1sCGZtj+5nZw1gpqp6Kds7o5Mk6ywfCGUJddBdNiFoMIdYq1n8GCOby2Hk+PMU ZJvg== X-Forwarded-Encrypted: i=1; AJvYcCVDJI1/h2Wwiuno0kTXNLZD05NajE8mrSIuiL8l+fmR6FMFfgbVzUPlLUbkr83n0U9i4cyG1jSV23hTuwSZPerzj3c= X-Gm-Message-State: AOJu0YwoLjojZIeN3fnotsJVrUqJ7wGqAgq9ob4ey8AB2tlFqYKAdtGV Udj+yZH0DLwji+xaKxRug8X9jWEcFByyTDfUq0ac7syDOKLMWM02 X-Google-Smtp-Source: AGHT+IE/K7PUQN0+2GuH78A9OaL1X52lZ9RDIPiqK9s7h30ASVtxZlhXaTt6pz6Elx5JHJbtfPQYeQ== X-Received: by 2002:a05:6a00:1d11:b0:703:ee63:3be6 with SMTP id d2e1a72fcca58-703ee633e1fmr370122b3a.15.1717558708242; Tue, 04 Jun 2024 20:38:28 -0700 (PDT) Received: from [192.168.255.10] ([43.132.141.20]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-70244486e5bsm7481124b3a.62.2024.06.04.20.38.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 04 Jun 2024 20:38:27 -0700 (PDT) Message-ID: <2b2e209d-863a-4c21-b7a5-2d328866cd0e@gmail.com> Date: Wed, 5 Jun 2024 11:38:23 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 03/10] mm/ksm: use folio in try_to_merge_one_page To: David Hildenbrand , alexs@kernel.org, Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, izik.eidus@ravellosystems.com, willy@infradead.org, aarcange@redhat.com, chrisw@sous-sol.org, hughd@google.com References: <20240604042454.2012091-1-alexs@kernel.org> <20240604042454.2012091-4-alexs@kernel.org> <8a4d048c-0764-442a-aa70-48518068f163@redhat.com> Content-Language: en-US From: Alex Shi In-Reply-To: <8a4d048c-0764-442a-aa70-48518068f163@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: 74abqz1edy4akbr61bx5i3dw1froyngb X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 9516D180006 X-HE-Tag: 1717558709-606671 X-HE-Meta: U2FsdGVkX1/6hjQMA93x4QapUx7RhqVlBg8Bc1HYPhuRApoLWWBuukKBeo5l+rlGmrXNZp+MKGwuLlJCR1fsLrHygW5RKj2SYiavNsKBgaPYXSXXyjU7Sv7osjP6jh6l/7ZgitRvAF81JnPYZOvqdOFoj5cCEMbHs8kRaXSrmnAoHgHubCFWfxlV1Ucv5MlTzhiwJ3e2fdxUL3Svu6ph3rceMmO7k9GCsVFo6gSGSknm/C2z1giQivQ78XxNCnlHvATvgFQJcTDYpJhb8GKpp003v6fbwSL0NOLdfZDrHBWEm1QocbU23BwRFb1qfFMtRrwkHakSufcV2rKOlakHJ2yX27nGp5dpTsFv6DWUbViinldQYMt5wW76OMCy3sSf4+APPwMKbLR37jgamwXM4jvUrbsV9xzpRey8d8Zm1ka8coR/b9nQPLqaywBtd1gnCnxxFZqp4EKc8v0NHsi0QUMmRCD8Ad3iZuQ3MPBI8cxGGJsFzCUp00q5CSGwpVSjGhUE6qYktJwhYF/s/rFDjJNy5CJzmkAPX+x/E8aJpqIB4MpdUihPwfM4yZdu84/I3OfPFuSJOrARBmxNjyhe82cOO1d+mNyh/6k0f8qyPg86OB652N/mpAf8jkpnKIMEQOnlMXuMHA06URbixu3ZmB5olet+GPS2rvJvI36jzLLEX5GrMzDdfWsJkbUBV29Y2cM03WeTs+4LJo7Y+nBCmUo9M5S7Zc0ozARj2g1+AKUMl9ELvUIbUaxSobbG8bxLQP6l9J0IGeR6qi9EjILGFnwRKrVWyqOmufIKTgjXFHfmJye4dmz3e9lNW7UXOQRpVUjPbZ0oX6BEHlwSaFLFaWV6rfQtprls7/GkaUK0qNgoQ+9UiQOiG9iEXGMxzq7rjZ11E19qCZkl0geqSfr9H8kkjhaJEy+khUm9tF4Q3udd8/R3S1tmtffULW7l5NTl+tHPP/3zUK3F4dzh4XH BDnlBUuj mId6h8BwqVG1NCXJpCPLZ3UoBPp7peOuWQLkGiLFNNuAt1f/ZGqnf5fsMTuEu99/ZsZ+mh/ZLNM9yrEShxid+8EDwT/0BcCnGmxWo4LMn/S1Q0wviax1NIF9AE8qMKxLYUTWIfbx/X17Fnx7uh9fB/ErISGLxZmSnD7EvKaLgedgXdH5aWSzKpf5Ta4p8bWZt0/+REA10jxwRmO1qyFZYy3IAZs71xgTnB0Wa4SVE6ciQ6RmyWlILrtezzV6l7Z9LOLIsAU2ggCpBmruXkDmTlxKA9m8RaMb8wWRv3ujh0vthvHMArexl6f43ZluMD+GnTI4ANNgMCm65vK3dl02YKgS3OBI708Y57OZWq3vH8NErUzYwYqrsiAD5PPUbgANPBRfnTxSsT81GamEO6HLC+DTNrgbvbALwQJNIl3OwavrtgqbxQ1zno54oda3NrqSXEHLJM8m63CL3vgrKRmiqMxFhFDizFqD8JNIsgo1/8lf4xwjatE7R72yOO62XhHevmvN581cD5PjEcbpFOO2xKL79XX9nL3aP3+SM X-Bogosity: Ham, tests=bogofilter, spamicity=0.000007, 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 6/4/24 4:19 PM, David Hildenbrand wrote: >> >> @@ -1489,11 +1494,11 @@ static int try_to_merge_one_page(struct vm_area_struct *vma, struct page *page, >>        * prefer to continue scanning and merging different pages, >>        * then come back to this page when it is unlocked. >>        */ >> -    if (!trylock_page(page)) >> +    if (!folio_trylock(folio)) >>           goto out; >>   -    if (PageTransCompound(page)) { >> -        if (split_huge_page(page)) >> +    if (folio_test_large(folio)) { >> +        if (split_folio(folio)) >>               goto out_unlock; >>       } > > Careful: there is a subtle change: > > In the old code, after split_huge_page() succeeded, you would have a ref on *page* that you have to drop. > > Now, you would have a ref on *folio* -- IOW the head page that calling code has to drop. > > Is that handled accordingly? IOW, is there no code that would assume it would drop the reference on the *page* instead of on the *folio* (that, after split succeeds, would be an order-0 folio) > > If so, worth spelling out in the description (you say "So in the calling path to try_to_merge_one_page() parameter pages are actually folios", but I am not sure if that means that all page refcounting code was changed to folio refcounting code). Hi David, Thanks a lot for comments. Yes, the ref on folio was handled. I will mention it again in commit log. The 2nd patch in this series would just pass folios into next step, tail page will be warned, so the ref on 'page' here is also the ref on folio. they are same. Thanks Alex