Messages in this thread | | | From | Pasha Tatashin <> | Date | Tue, 2 Aug 2022 17:36:41 -0400 | Subject | Re: [PATCH v2] mm/gup.c: Simplify and fix check_and_migrate_movable_pages() return codes |
| |
On Mon, Aug 1, 2022 at 8:32 PM Alistair Popple <apopple@nvidia.com> wrote: > > When pinning pages with FOLL_LONGTERM check_and_migrate_movable_pages() > is called to migrate pages out of zones which should not contain any > longterm pinned pages. > > When migration succeeds all pages will have been unpinned so pinning > needs to be retried. This is indicated by returning zero. When all pages > are in the correct zone the number of pinned pages is returned. > > However migration can also fail, in which case pages are unpinned and > -ENOMEM is returned. However if the failure was due to not being unable > to isolate a page zero is returned. This leads to indefinite looping in > __gup_longterm_locked().
Hi Alistair,
During prohibiting pinning movable zone development, there was a discussion where we figured that isolation errors should be transient [1]. What isolation errors are you seeing that lead to infinite loop? Why do they happen?
Pasha
[1] https://lore.kernel.org/linux-mm/20201218104655.GW32193@dhcp22.suse.cz
| |