On 3/19/21 6:18 PM, Hillf Danton wrote:
> On Fri, 19 Mar 2021 15:42:08 -0700  Mike Kravetz wrote:
>> +
>> +    if (!can_sleep && free_page_may_sleep(h, page)) {
>> +            /*
>> +             * Send page freeing to workqueue
>> +             *
>> +             * Only call schedule_work() if hpage_freelist is previously
>> +             * empty. Otherwise, schedule_work() had been called but the
>> +             * workfn hasn't retrieved the list yet.
>> +             */
>> +            if (llist_add((struct llist_node *)&page->mapping,
>> +                                    &hpage_freelist))
>> +                    schedule_work(&free_hpage_work);
>> +            return;
>> +    }
> 
> Queue work on system_unbound_wq instead of system_wq because of blocking work.
> 

Thanks Hillf,

I am dropping this patch and going with Roman's patches to create an
version of cma_release that will not sleep.  A workqueue handoff like
this may be needed in the vmemmap reduction series, so will keep this in
mind.
-- 
Mike Kravetz

Reply via email to