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 534D3C54E90 for ; Thu, 22 May 2025 13:09:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CD3DB6B0089; Thu, 22 May 2025 09:09:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CAB416B008A; Thu, 22 May 2025 09:09:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BC18E6B008C; Thu, 22 May 2025 09:09:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 9CDA06B0089 for ; Thu, 22 May 2025 09:09:10 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id EBD83C14F5 for ; Thu, 22 May 2025 13:09:09 +0000 (UTC) X-FDA: 83470574418.01.69EC395 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by imf10.hostedemail.com (Postfix) with ESMTP id A36C1C001C for ; Thu, 22 May 2025 13:09:06 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=OuMBt2f1; spf=pass (imf10.hostedemail.com: domain of jaewon31.kim@samsung.com designates 203.254.224.33 as permitted sender) smtp.mailfrom=jaewon31.kim@samsung.com; dmarc=pass (policy=none) header.from=samsung.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747919347; h=from:from:sender:sender:reply-to: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=S07EltxtU+1aRTbzluONtogd8MM1CSe/6OGTcmVi3ek=; b=Em3E9irUI9PdZvSKjmf4WMHhBzJTqoX+tyu3ffrGQNyOM7tr0skZ0Ll92imndCsqg2btWK 1iqxrm23q5zRKV0pSkQyelhz0nysFyl07qRpC2pUz32wufKffQXeD+B6hETLVv/GGEcOSk LRQG+UXufV0jLCIkDcE0Id35VSIecmk= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=OuMBt2f1; spf=pass (imf10.hostedemail.com: domain of jaewon31.kim@samsung.com designates 203.254.224.33 as permitted sender) smtp.mailfrom=jaewon31.kim@samsung.com; dmarc=pass (policy=none) header.from=samsung.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747919347; a=rsa-sha256; cv=none; b=iwNk0y5JJTh/dmy0YcBo6eFu+4iknHnqDH1roCNN1BNGw5yXHtE1jHc8fDAqRosSuTVf0R MUkW7HDiFfaa1i5QXRG2BYeCjOFkwm43AF6nflkPO+pI5lUC9RFjDmnz1DfvC1tGFKkmgm mFqAMdBBW+td99WaWmhU/Un/1tQiWpQ= Received: from epcas1p1.samsung.com (unknown [182.195.41.45]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20250522130902epoutp0329f3698335c8278310921b51a5197cba~B22GtiyUm0370703707epoutp03j for ; Thu, 22 May 2025 13:09:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20250522130902epoutp0329f3698335c8278310921b51a5197cba~B22GtiyUm0370703707epoutp03j DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1747919343; bh=S07EltxtU+1aRTbzluONtogd8MM1CSe/6OGTcmVi3ek=; h=Subject:Reply-To:From:To:CC:In-Reply-To:Date:References:From; b=OuMBt2f1NYcFCjVEkw91IINaxPfmApHRjcB52ATSHiDmzhQQZveTh4ZUBzlpr26s1 xgjLYjfRsVJyWEve/cPkF0yUrliveXxEDeOxwSILQWsJvFvLFTvVAFKHKlyYSFz1oP JNnYKxCXIcRkp3oISDKm00PdBSy3EC5ofC6wdjGk= Received: from epsnrtp01.localdomain (unknown [182.195.42.153]) by epcas1p4.samsung.com (KnoxPortal) with ESMTPS id 20250522130902epcas1p4408a6c46ad97f9882e9219d35ad94912~B22F-HSIL0796707967epcas1p4C; Thu, 22 May 2025 13:09:02 +0000 (GMT) Received: from epcas1p3.samsung.com (unknown [182.195.36.226]) by epsnrtp01.localdomain (Postfix) with ESMTP id 4b37sT5smLz6B9m7; Thu, 22 May 2025 13:09:01 +0000 (GMT) Mime-Version: 1.0 Subject: Re: reply: [RFC] pin_user_pages_fast failure count increased Reply-To: jaewon31.kim@samsung.com From: Jaewon Kim To: "zhaoyang.huang@unisoc.com" , Hyesoo Yu , "jhubbard@nvidia.com" , "david@redhat.com" , "surenb@google.com" , "Steve.Kang@unisoc.com" , "huangzhaoyang@gmail.com" CC: Jaewon Kim , "linux-mm@kvack.org" X-Priority: 3 X-Content-Kind-Code: NORMAL In-Reply-To: X-Drm-Type: N,general X-Msg-Generator: Mail X-Msg-Type: PERSONAL X-Reply-Demand: N Message-ID: <20250522130901epcms1p31d757b179fbb3563cad6bef4a1829235@epcms1p3> Date: Thu, 22 May 2025 22:09:01 +0900 X-CMS-MailID: 20250522130901epcms1p31d757b179fbb3563cad6bef4a1829235 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" CMS-TYPE: 101P X-CPGSPASS: Y X-CPGSPASS: Y cpgsPolicy: CPGSC10-711,Y X-CFilter-Loop: Reflected X-CMS-RootMailID: 20250522130101epcas1p435244c12cfc9bb7895008b8ea98af064 References: <99ae448a-5c5e-4491-8cf7-1325f47e225e@redhat.com> X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: A36C1C001C X-Stat-Signature: 4hsmyfgq33q7xe7grukhswikpwfrexnf X-Rspam-User: X-HE-Tag: 1747919346-63434 X-HE-Meta: U2FsdGVkX18vYt7B0LEHmhrHVe2r43cu6GGXSR6XCYK210+GPnQ/iUgSOj/aUUXrzU+N811iPy0kjDFCUFuM1ggb+5hQvBd8/mMzBTBN/JHWZFrW0Sl8pMb0ORbwos1qJ687vjHi4etIyDOSTdobZjWGytWCgb8po9SFkVJ8CbrKcLPM8g9NVzU7+cztH/oBH0/El98DKeGckMu2nVxCpgs53PPLFHd4Niz/3TXkHhWF3Evfs8Yl4u4l1sjIywJvOdIcRJB009Yw18o0E3UvM9UmNUaSxzn+W6gBzq/8bgP9Fwvg65q3nL0LuToEgemOK+/VxiUX/Jp6nJerHT5jmTdy0x3xQ1anSgSi5lZq3T0kDs1grKYJo7snEnNxN21DcofBnSQ3mNNHzQMgvtx+3SKs+m1d1FbYnkyxZQbfVTx7KP05blZFl4hG+eXZwZcy1gWj0TGhcvfi/Sr3UU8spSXLYRyn9eZSYUSVVoSLU1i9vi/cmxTlWzPfq0BNiUXPBPf/3jFYMEkLpllgUekZTOSf1CL1zQTHlXgDXHzG0pMpuWOmxl0oT0vFOoO61QKF8k72T8gn9u12h6ev8ModF6VjnDxdwFoCtPYOGjElgG0xRR6NGPhkwezpL3fle/8Vhf2kbIn4/t6EY1o3lAkVOGoFVKK31lLB5Zfvr7H2Rv7+UutEMUmdeGS1r+7tSqhLcX97oHACXGtejh14+FT6RGJoXOZAXyDq2+0gramZNrRMQYKEWTf5H3VntSsZR3vA4ykZdiHBc39dS31Iqbr/RbWEP1dPrV1K9KjLoMPQbsdImXVGlJKkDP14D2Mo63YBA4xVeQRPdNwpKXJjGJQT7u8fwS5c1FI1+BwOw3qbSN6rmDU+dydwz7GnsyDjLwK3bV6Ss+Qt6ZX5kEvUlRQiqAGmpQWw/J8EyS0/tDT89ZQtXbHqknw5g1LXpVdp7L516bwqSUXcuTYvsme/rDV 87O2PTrP tf5JpEE4mCfnS83dDHB0RjoFuPrS2PGmz+AtD9zs+Aloe16XBzy6q73Y6DWja9zELjkly0nsYMBRoPKm4TGOKu3r/ndBAAsbYqk5yw0pUGvYfs2oayLl02tyg9rtXUCwDzcXYoWjDqHCD7KHZkI7gP5nYFbHRPjM2LbXNX7dpF31vVbRt20IFO4fM2L2wdmYAoKiEecXmZ0Ma3sJUhPEzmlaIpf8C58j3EGLLuKjWAyD/gPUg7+9tGw94KJCQpMdkXXPqrwICyDMD4RqjI36OVsFCZqbbrV4wKRv0IS3DyJYVjazZMh60DeS8GNQAWp1g9Md+q6gx0Jqd6isRsDtSo8B5X6HHjlG6W+qRk7iK6qoHZ+M= 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: >On 22.05.25 12:18, ?=E6=9C=9D?=20(Zhaoyang=20Huang)=20wrote:=0D=0A>>>=20On= =20Mon,=20Apr=2028,=202025=20at=2002:12:57PM=20-0700,=20John=20Hubbard=20wr= ote:=0D=0A>>>>=20On=204/28/25=201:56=20PM,=20David=20Hildenbrand=20wrote:= =0D=0A>>>>>=20On=2028.04.25=2022:14,=20John=20Hubbard=20wrote:=0D=0A>>>>>>= =20On=204/28/25=208:17=20AM,=20Jaewon=20Kim=20wrote:=0D=0A>>>>>>>=20Hi=0D= =0A>>>>>>>=0D=0A>>>>>>>=20If=20pin_user_pages_fast=20does=20not=20pin=20all= =20the=20requested=20number=20of=0D=0A>>>>>>>=20pages,=20then=20drivers=20c= alling=20to=20pin_user_pages_fast=20should=20retry=0D=0A>>>>>>>=20until=20t= he=20gup=20pins=20all?=0D=0A>>>>>>>=0D=0A>>>>>>=0D=0A>>>>>>=20Approaches=20= vary,=20for=20handling=20partial=20success=20of=20pin_user_pages().=0D=0A>>= >>>>=0D=0A>>>>>>=20*=20Many=20drivers=20unpin=20everything=20and=20either= =20bail=20out=20entirely,=20or=0D=0A>>>>>>=20retry=20pinning=20the=20entire= =20original=20range.=0D=0A>>>>>=0D=0A>>>>>=20Hm,=20unpinning=20+=20trying= =20to=20repin=20the=20entire=20range=20can=20easily=20result=0D=0A>>>>>=20i= n=20an=20endless=20loop=20on=20persistent=20errors=20IIRC?=0D=0A>>>>>=0D=0A= >>>>=0D=0A>>>>=20I=20vaguely=20recall=20a=20limited=20number=20of=20retries= ,=20yes.=0D=0A>>>>=0D=0A>>>>=20thanks,=0D=0A>>>>=20--=0D=0A>>>>=20John=20Hu= bbard=0D=0A>>>>=0D=0A>>>>=0D=0A>>>=0D=0A>>>=20Hi,=0D=0A>>>=0D=0A>>>=20I'd= =20like=20to=20report=20a=20potential=20issue=20introduced=20by=20a=20recen= t=20change=20in=0D=0A>>>=201aaf8c122918=20mm:=20gup:=20fix=20infinite=20loo= p=20within=20__get_longterm_locked=0D=0A>>>=0D=0A>>>=20Previously,=20the=20= call=20to=20migrate_longterm_unpinnable_folio()=20was=20guarded=20by=20the= =0D=0A>>>=20collected=20variable.=20This=20meant=20that=20if=20a=20CMA=20pa= ge=20was=20temporarily=20held=20in=20the=0D=0A>>>=20pagevec=20and=20failed= =20LRU=20isolation,=20it=20wouldn't=20be=20added=20to=20the=0D=0A>>>=20mova= ble_page_list,=20but=20the=20collected=20counter=20would=20still=20be=20inc= remented.=0D=0A>=0D=0A>Okay,=20so=20we'd=20also=20express=20that=20way=20= =22any=20longterm_pinnable=20page=20found=22.=0D=0A>=0D=0A>>=20There=20is= =20lru_add_drain_all=20for=20dealing=20with=20this=20scenario,=20so=20this= =20won't=20be=20the=20case,=20right?=0D=0A>=0D=0A>Good=20point.=20Only=20co= ncurrent=20isolation=20might=20be=20problematic=20(concurrent=20reclaim?).= =0D=0A>=0D=0A>>>=0D=0A>>>=20As=20a=20result,=20migrate_longterm_unpinnable_= folio()=20would=20return=20-EAGAIN,=20and=0D=0A>>>=20the=20process=20would= =20be=20retried=20until=20migration=20of=20the=20CMA=20page=20succeeded.=0D= =0A>>>=0D=0A>>>=20However,=20in=20the=20recent=20patch=20merged=20into=20ma= inline,=20the=20logic=20now=20only=20checks=0D=0A>>>=20whether=20movable_pa= ge_list=20is=20empty,=20and=20no=20longer=20relies=20on=20the=20collected= =0D=0A>>>=20count.=0D=0A>>>=20This=20can=20cause=20CMA=20pages=20that=20fai= l=20isolation=20to=20bypass=20retry=20logic=20and=20remain=0D=0A>>>=20pinne= d.=0D=0A>>>=0D=0A>>>=20Effectively,long-term=20pinning=20is=20now=20possibl= e=20for=20CMA=20pages=20?=20something=20that=0D=0A>>>=20previously=20would= =20have=20been=20avoided=20through=20repeated=20attempts.=0D=0A>=0D=0A>Call= ing=20migrate_longterm_unpinnable_folios()=20when=20there=20is=20nothing=20= to=20migrate=20is=20stupid.=0D=0A>=0D=0A>Maybe=20something=20like:=0D=0A>= =0D=0A>diff=20--git=20a/mm/gup.c=20b/mm/gup.c=0D=0A>index=20329c5f7acc7a0..= 58b8e40fc19ed=20100644=0D=0A>---=20a/mm/gup.c=0D=0A>+++=20b/mm/gup.c=0D=0A>= =40=40=20-2301,14=20+2301,15=20=40=40=20static=20void=20pofs_unpin(struct= =20pages_or_folios=20*pofs)=0D=0A>=20=20=7D=0D=0A>=0D=0A>=20=20/*=0D=0A>-= =20*=20Returns=20the=20number=20of=20collected=20folios.=20Return=20value= =20is=20always=20>=3D=200.=0D=0A>+=20*=20Returns=20whether=20any=20longterm= =20unpinnable=20folio=20was=20found=20(if=20isolation=0D=0A>+=20*=20fails,= =20not=20all=20can=20be=20added=20to=20the=20movable_folio_list).=0D=0A>=20= =20=20*/=0D=0A>-static=20void=20collect_longterm_unpinnable_folios(=0D=0A>+= static=20bool=20collect_longterm_unpinnable_folios(=0D=0A>=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20struct=20list_head=20*movable_folio_lis= t,=0D=0A>=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20struct=20pages_= or_folios=20*pofs)=0D=0A>=20=20=7B=0D=0A>+=20=20=20=20=20=20=20bool=20drain= _allow=20=3D=20true,=20any_unpinnable=20=3D=20false;=0D=0A>=20=20=20=20=20= =20=20=20=20struct=20folio=20*prev_folio=20=3D=20NULL;=0D=0A>-=20=20=20=20= =20=20=20bool=20drain_allow=20=3D=20true;=0D=0A>=20=20=20=20=20=20=20=20=20= unsigned=20long=20i;=0D=0A>=0D=0A>=20=20=20=20=20=20=20=20=20for=20(i=20=3D= =200;=20i=20<=20pofs->nr_entries;=20i++)=20=7B=0D=0A>=40=40=20-2320,6=20+23= 21,7=20=40=40=20static=20void=20collect_longterm_unpinnable_folios(=0D=0A>= =0D=0A>=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20if=20(folio_is_lo= ngterm_pinnable(folio))=0D=0A>=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20continue;=0D=0A>+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20any_unpinnable=20=3D=20true;=0D=0A>=0D=0A>=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20if=20(folio_is_device_coherent(folio))= =0D=0A>=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20continue;=0D=0A>=40=40=20-2342,6=20+2344,8=20=40=40=20static=20voi= d=20collect_longterm_unpinnable_folios(=0D=0A>=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20NR_ISOLATED_ANON=20+=20folio_is_file_lru(folio),=0D=0A>=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20folio_nr_pages(folio));=0D=0A>=20=20=20=20=20=20= =20=20=20=7D=0D=0A>+=0D=0A>+=20=20=20=20=20=20=20return=20any_unpinnable;= =0D=0A>=20=20=7D=0D=0A>=0D=0A>=20=20/*=0D=0A>=40=40=20-2417,11=20+2421,12= =20=40=40=20migrate_longterm_unpinnable_folios(struct=20list_head=20*movabl= e_folio_list,=0D=0A>=20=20static=20long=0D=0A>=20=20check_and_migrate_movab= le_pages_or_folios(struct=20pages_or_folios=20*pofs)=0D=0A>=20=20=7B=0D=0A>= +=20=20=20=20=20=20=20bool=20any_unpinnable;=0D=0A>=20=20=20=20=20=20=20=20= =20LIST_HEAD(movable_folio_list);=0D=0A>=0D=0A>-=20=20=20=20=20=20=20collec= t_longterm_unpinnable_folios(&movable_folio_list,=20pofs);=0D=0A>+=20=20=20= =20=20=20=20any_unpinnable=20=3D=20collect_longterm_unpinnable_folios(&mova= ble_folio_list,=20pofs);=0D=0A>=20=20=20=20=20=20=20=20=20if=20(list_empty(= &movable_folio_list))=0D=0A>-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20r= eturn=200;=0D=0A>+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20return=20any= _unpinnable=20?=20-EAGAIN=20:=200;=0D=0A>=0D=0A>=20=20=20=20=20=20=20=20=20= return=20migrate_longterm_unpinnable_folios(&movable_folio_list,=20pofs);= =0D=0A>=20=20=7D=0D=0A>=0D=0A>=0D=0A>--=0D=0A>Cheers,=0D=0A>=0D=0A>David=20= /=20dhildenb=0D=0A=0D=0AHi=0D=0A=0D=0AThank=20you=20for=20your=20comment=20= and=20patch.=0D=0ABy=20the=20way,=20what=20if=20there=20are=20any_unpinnabl= e=20pages=20and=20also=20pages=20in=20the=20movable_folio_list,=0D=0Abut=20= migrate_longterm_unpinnable_folios=20failed=20to=20migrate=20and=20return= =20other=20erros=20instead=20of=20-EAGAIN?=0D=0AIn=20that=20case,=20I=20thi= nk=20the=20CMA=20or=20other=20unpinnable=20pages=20would=20be=20pinned.=0D= =0A=0D=0AI=20think=20we=20need=20to=20return=20-EGAIN=20if=20we=20have=20an= y_unpinnable.=0D=0A=0D=0ABR=0D=0AJaewon=20Kim