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 19 Dec 2024, at 8:05, David Hildenbrand wrote:

> On 23.11.24 00:23, Joanne Koong wrote:
>> For migrations called in MIGRATE_SYNC mode, skip migrating the folio if
>> it is under writeback and has the AS_WRITEBACK_INDETERMINATE flag set on its
>> mapping. If the AS_WRITEBACK_INDETERMINATE flag is set on the mapping, the
>> writeback may take an indeterminate amount of time to complete, and
>> waits may get stuck.
>>
>> Signed-off-by: Joanne Koong <joannelkoong@xxxxxxxxx>
>> Reviewed-by: Shakeel Butt <shakeel.butt@xxxxxxxxx>
>> ---
>>   mm/migrate.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/mm/migrate.c b/mm/migrate.c
>> index df91248755e4..fe73284e5246 100644
>> --- a/mm/migrate.c
>> +++ b/mm/migrate.c
>> @@ -1260,7 +1260,10 @@ static int migrate_folio_unmap(new_folio_t get_new_folio,
>>   		 */
>>   		switch (mode) {
>>   		case MIGRATE_SYNC:
>> -			break;
>> +			if (!src->mapping ||
>> +			    !mapping_writeback_indeterminate(src->mapping))
>> +				break;
>> +			fallthrough;
>>   		default:
>>   			rc = -EBUSY;
>>   			goto out;
>
> Ehm, doesn't this mean that any fuse user can essentially completely block CMA allocations, memory compaction, memory hotunplug, memory poisoning... ?!
>
> That sounds very bad.

Yeah, these writeback folios become unmovable. It makes memory fragmentation
unrecoverable. I do not know why AS_WRITEBACK_INDETERMINATE is allowed, since
it is essentially a forever pin to writeback folios. Why not introduce a
retry and timeout mechanism instead of waiting for the writeback forever?

--
Best Regards,
Yan, Zi





[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