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 84525C8303D for ; Sat, 5 Jul 2025 03:17:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B28756B8074; Fri, 4 Jul 2025 23:17:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AFECA6B8067; Fri, 4 Jul 2025 23:17:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A14D16B8074; Fri, 4 Jul 2025 23:17:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 9078B6B8067 for ; Fri, 4 Jul 2025 23:17:08 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id F305C107EBB for ; Sat, 5 Jul 2025 03:17:07 +0000 (UTC) X-FDA: 83628749694.27.634493A Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf01.hostedemail.com (Postfix) with ESMTP id 7AFB44000A for ; Sat, 5 Jul 2025 03:17:05 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=P2yg5k5+; spf=pass (imf01.hostedemail.com: domain of mpenttil@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=mpenttil@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751685425; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=F5/Bn2BytkOsSlWozTZYRd/bdmH3M8hyQMzYw6cOXkw=; b=CTtD/9pZ9so37YY+jRBtFB5gdTFjGjJccfzXi22fb1PNtmhjKZjjo1xadoqH/CDmBOCISv 9BmISghsqnPQ+CdOO+g3w6n5ege53IQ37YoP4T1NInUlFYhg0BdPhxxfEg8FCO4uWHzoVn dxjCRRlsuFefkEIm/g6sYsGuO9xkJU4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751685425; a=rsa-sha256; cv=none; b=wptT1Ot+bix+63mIGwL9zDgJABux7S8MkgnSn51MFnCQ0L2GElwW5QyfR2PcCo06tKj1/Z rHjDKZ9o1rU+2GJLnqi7jKsUtkKfWesrLWOt+sSt7k2MnnaLy5pjZwFzcJUcX56bKsgHdo 7DE7yv3KODjCruUa2zSD5mqAt17dpX0= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=P2yg5k5+; spf=pass (imf01.hostedemail.com: domain of mpenttil@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=mpenttil@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1751685424; 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=F5/Bn2BytkOsSlWozTZYRd/bdmH3M8hyQMzYw6cOXkw=; b=P2yg5k5+d7tZDsUI4SjkEP4bysWdYYkiR1codJCLAUvAfsfmQGCH0nmiv6+okqBFiuKXmO BbIDMWYD2889vps/k4pMABXPwwTsuZgLSKWD+skvqzJpq+tHez5ZwjHCiSIFf9zBhTQpjn +kBjCueVwkkbryAqHRIYQbbhLtCzsK4= Received: from mail-lf1-f72.google.com (mail-lf1-f72.google.com [209.85.167.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-443-iT42TpVYOTmcT8OmiJCQAg-1; Fri, 04 Jul 2025 23:17:03 -0400 X-MC-Unique: iT42TpVYOTmcT8OmiJCQAg-1 X-Mimecast-MFC-AGG-ID: iT42TpVYOTmcT8OmiJCQAg_1751685422 Received: by mail-lf1-f72.google.com with SMTP id 2adb3069b0e04-554f7b19481so1196602e87.0 for ; Fri, 04 Jul 2025 20:17:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751685422; x=1752290222; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=F5/Bn2BytkOsSlWozTZYRd/bdmH3M8hyQMzYw6cOXkw=; b=Pr+x8UD5TweYd+HaeQ9XAvMsJfxw9IylEF6v5Nx+FY230+kUgUNeTmi6Zi5q0VH33W h5E6ygI7eW13yYa+TsHb8kQrUS2NxteKND+tVHYHHFbwRfQsMv4y4brsYwcL88zxvZgL dRTsf9lzm+sETE2hgZ/2PhPFC4DtbGCPLVisFy1QT0qG/JKC18B3VwaAvb79+MtbSUyn F/sOuglZawwhPkp4x+jTguWlMgQaDzYNgPS75R/yyP6kiRP9G4svklIm8xrOeZCGbr+X Vx1ZxUmEn4UEtI2B1chFOrorldoRoslFTeSdWdULFM4LAi6b9ZNFUP0xxDGkMzbmDSDR YNSg== X-Forwarded-Encrypted: i=1; AJvYcCUzijhzi1oB+24mZ6l5LN5+acDBoBFmRpKVTMtuuTecTWLEZIBWjDd08CqxtOc6U83WzYEoTtIAqA==@kvack.org X-Gm-Message-State: AOJu0YxCrZ8te3kt1iRLE8TT/yds6SR0k0EJkCIJkRlGqFceHdZtZuT9 OBr6jQoogZr0xPHlgDHN4gBAA/4WDG2Kfu1V/hyqYg7wAXVJ10z3CWA98RwV0SnvGhVIPIiIUGW jTAV4mmBq5dhXc8mMqZ93bfyST5vHCWDFWr+5lAwO+u1vVnu1LyU= X-Gm-Gg: ASbGnctyUhJWCqU6lqL8k9pYaBHP91LmEsPZT4lbqWm30v5VmKNB66QWNR9iHtZvVMm 47TcIXgvnA+XQHnugCllkIwj+kKA0VzpYHFURdWWqIUM7iGjK8tL27250BgcHMw3/saZscwfROD SyMARy8Lnw3hCNCKObxjszLBcfwI18oOBtRXolwKoDR4SJw40pxNqNGhAvYcmdczZaGNNWNg6tS Ssgn2zueYOcpP8TLcvpjX1z2XSttleTd0wpE0U/8yVXZAEV2gGtjjFGUjf3YmmVFlA+4PruZm51 aU9eYm7fGMv7jnIBJSKWQ0nj/dTh4gMVN5nu/TN11OfkOOAA X-Received: by 2002:a05:6512:3b86:b0:553:ac4c:2177 with SMTP id 2adb3069b0e04-557e555948emr242529e87.20.1751685422009; Fri, 04 Jul 2025 20:17:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFCzn96YGyNVvvQhJUr6pN5y+cvMh4pEY4+0E++aRJaPYzWFUVtLdVb+2Zv5/f1eXWAlgJt5g== X-Received: by 2002:a05:6512:3b86:b0:553:ac4c:2177 with SMTP id 2adb3069b0e04-557e555948emr242510e87.20.1751685421496; Fri, 04 Jul 2025 20:17:01 -0700 (PDT) Received: from [192.168.1.86] (85-23-48-6.bb.dnainternet.fi. [85.23.48.6]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-32e1adbb390sm3996551fa.0.2025.07.04.20.17.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 04 Jul 2025 20:17:01 -0700 (PDT) Message-ID: <6bb5b0ae-6de3-4df8-a8c1-07d4c6f8c275@redhat.com> Date: Sat, 5 Jul 2025 06:17:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: =?UTF-8?Q?Mika_Penttil=C3=A4?= Subject: Re: [v1 resend 08/12] mm/thp: add split during migration support To: Balbir Singh , linux-mm@kvack.org Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, Karol Herbst , Lyude Paul , Danilo Krummrich , David Airlie , Simona Vetter , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Shuah Khan , David Hildenbrand , Barry Song , Baolin Wang , Ryan Roberts , Matthew Wilcox , Peter Xu , Zi Yan , Kefeng Wang , Jane Chu , Alistair Popple , Donet Tom References: <20250703233511.2028395-1-balbirs@nvidia.com> <20250703233511.2028395-9-balbirs@nvidia.com> <715fc271-1af3-4061-b217-e3d6e32849c6@redhat.com> In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: jzpnSXEO-ZAcCEvioTvmJestD7SoFQNf1wud-We6bmQ_1751685422 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 7AFB44000A X-Stat-Signature: no8gc67ykiq7pwczfn9ae7a15o4r187o X-HE-Tag: 1751685425-825157 X-HE-Meta: U2FsdGVkX1/I7Rczqb+5vWub5V7ETZ5bRWidt2r8++dSUG8HYJzrVIvrOwYH5Io+LWUQfuP/E6/NuUxUHrfRlfGaUqotP4E6MfWTHsLDY7Kdu9elRIb27I06y0BKda0jqPAiU+sSKKV/ZI6/DXRzo5WwLW79xk62C8HM9rx70/xd/LQdP60V3q/ItWRyULMaij0iUsAqI81gtIWOC+WHWZBfRDQrYIyPhjo2EUorPSBh1TTqvAJGKJ8kfcsIgQVIEV4ViMl9ucS5Iv3BBytheuViP/L6qqGH0aJPAYr2xYDau6fdL69iVRWANo0I/2+Q4aqEgV3Eml38QOK4wLV5SsNk+Y8h6Y/gKG3FTFzXW+/loziLpxGeyyfb+tDoWYY+rwy8fNkmF14isNJ4jscL2m66BcYEx5JH/xsXqxw/c2Hp/4Ntq+fnPRY3dp3MQb+z1q7X/klFVfKubsOtO602dyHiN5kHSBjMgeyYdpUhmDy/bXp0uhbEwvPVy77Tkfmsug5Ayo1PUKZmJBSoRJyufkaIWCkB53QE/Rf3gtLyJeSSzSIBdoPh1HQyUT2CsdWznkZFDILPnmsfYzOYYIlj/Eey3+UFL2H4FuUmpb8ZtBnFLQnyceq/2WTJWA0tmTz7wNT2cUVewxrQGAmyWSFwoniuehKEDNBGwdTNDH9kNLbBEM040prJOmQbm2Rj5bP3VREgzTGTNMXxwtApYJtsprBwQFhbQM64pjmiDGKORwamYX18cSq14RjGDgbwPE7RVbkV5pjd92KbtPaQgjpBXlOgMFPaTiYcDve2w4s4v0PU8VxgY9DXgdwz8XlKXnYgr6Affh0jbR4QHtg6g3jQ7XzGyea+2/PL7SvF2cbBAxpp18JwM/76S72k9oSF0Q+TPlwmWllZFbIXqA+1QjwZaMAhVFMFsQl5oyTDHNzQMBQymLXvHn0SNFRSHcNNlIYmdYP+a7SsCHXazAvNzIp l30anvCb dbfd90/wHY5VdNGhL0WNNxD/kLUAh05kvjQuC6mJ2P4hjKU95iJudu8AcmCZf7Y/iFdAZ4Ce3JTheZQTVsC0XonPM5ik7CGmpp+/zzV3rjyzz9z/Fc4hQ6Rwgn5voo3SoMXyYUXkqo1ziwqxh2GQtU/il2Cc4l/RDcXrhVqx5zVhLa4mOzu+MOBFuGoD3CHvB9O+ZA4Wdb/XMVpQTRWmRBEFMyYw3VjA414/DoWsy4ezTyyPA/ZxsEpPpDzHwglqy9R4MhL26A6Kde9VzkAIihY4rdqobn4WMG/QEGE6Pnj1cvPBvJs1lXsojC1VX6BhmmRRXoTHcwk9ciNpPckR1mk/8q1SsVMb8f7PRxWJcuLVklkxWW+XXGUoDFg26W5POogsMuKU6Q1HSzCbcxJhVQVpQxOfjocllnfZWrtr0+y4LmwrXSLZpf5qR4EkXA6D+hLMc 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: >>>> +static void migrate_vma_split_pages(struct migrate_vma *migrate, >>>> + unsigned long idx, unsigned long addr, >>>> + struct folio *folio) >>>> +{ >>>> + unsigned long i; >>>> + unsigned long pfn; >>>> + unsigned long flags; >>>> + >>>> + folio_get(folio); >>>> + split_huge_pmd_address(migrate->vma, addr, true); >>>> + __split_huge_page_to_list_to_order(folio_page(folio, 0), NULL, 0, true); >>> We already have reference to folio, why is folio_get() needed ? >>> >>> Splitting the page splits pmd for anon folios, why is there split_huge_pmd_address() ? >> Oh I see >> + if (!isolated) >> + unmap_folio(folio); >> >> which explains the explicit split_huge_pmd_address(migrate->vma, addr, true); >> >> Still, why the folio_get(folio);? >> >> > That is for split_huge_pmd_address, when called with freeze=true, it drops the > ref count on the page > > if (freeze) > put_page(page); > > Balbir > yeah I guess you could have used the pmd_migration path in __split_huge_pmd_locked, and not use freeze because you have installed the migration pmd entry already. Which brings to a bigger concern, that you do need the freeze semantics, like clear PageAnonExclusive (which may fail). I think you did not get this part right in the 3/12 patch. And in this patch, you can't assume the split succeeds, which would mean you can't migrate the range at all. Doing the split this late is quite problematic all in all. --Mika