Re: [PATCH v6 4/5] mm/migrate: skip migrating folios under writeback with AS_WRITEBACK_INDETERMINATE mappings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Dec 30, 2024 at 08:52:04PM +0100, David Hildenbrand wrote:
> 
[...]
> > I'm looking back at some of the discussions in v2 [1] and I'm still
> > not clear on how memory fragmentation for non-movable pages differs
> > from memory fragmentation from movable pages and whether one is worse
> > than the other. Currently fuse uses movable temp pages (allocated with
> > gfp flags GFP_NOFS | __GFP_HIGHMEM), and these can run into the same
> 
> Why are they movable? Do you also specify __GFP_MOVABLE?
> 
> If not, they are unmovable and are never allocated from
> ZONE_MOVABLE/MIGRATE_CMA -- and usually only from MIGRATE_UNMOVBALE, to
> group these unmovable pages.
> 

Yes, these temp pages are non-movable. (Must be a typo in Joanne's
email).

[...]
> 
> I assume not regarding fragmentation.
> 
> 
> In general, I see two main issues:
> 
> A) We are no longer waiting on writeback, even though we expect in sane
> environments that writeback will happen and we it might be worthwhile to
> just wait for writeback so we can migrate these folios.
> 
> B) We allow turning movable pages to be unmovable, possibly forever/long
> time, and there is no way to make them movable again (e.g., cancel
> writeback).
> 
> 
> I'm wondering if A) is actually a new issue introduced by this change. Can
> folios with busy temp pages (writeback cleared on folio, but temp pages are
> still around) be migrated? I will look into some details once I'm back from
> vacation.
> 

My suggestion is to just drop the patch related to A as it is not
required for deadlock avoidance. For B, I think we need a long term
solution which is usable by other filesystems as well.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux