Re: [PATCH v4 13/35] mm, slub: do initial checks in ___slab_alloc() with irqs enabled

From: Vlastimil Babka
Date: Sun Aug 15 2021 - 06:23:31 EST


On 8/15/21 12:14 PM, Vlastimil Babka wrote:
> On 8/5/21 5:19 PM, Vlastimil Babka wrote:
>> As another step of shortening irq disabled sections in ___slab_alloc(), delay
>> disabling irqs until we pass the initial checks if there is a cached percpu
>> slab and it's suitable for our allocation.
>>
>> Now we have to recheck c->page after actually disabling irqs as an allocation
>> in irq handler might have replaced it.
>
> Please add an extra paragraph that related to the fixup below (which I
> assume will be squashed as usual):
>
> Because we call pfmemalloc_match() as one of the checks, we might hit
> VM_BUG_ON_PAGE(!PageSlab(page)) in PageSlabPfmemalloc in case we get
> interrupted and the page is freed. Thus introduce a
> pfmemalloc_match_unsafe() variant that lacks the PageSlab check.
>
>> Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
>> Acked-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
>
> And the fixup:

Oops, renaming snafu. Again.

----8<----