Hello, On Tue, Mar 22, 2022 at 07:53:49AM +0900, Tetsuo Handa wrote: > On 2022/03/22 1:55, Tejun Heo wrote: > > No, just fix the abusers. There are four abusers in the kernel and they > > aren't difficult to fix. > > So, are you expecting that a change shown below happens, by adding WQ_MEM_RECLAIM > flag to all WQs which may hit "workqueue: WQ_MEM_RECLAIM %s:%ps is flushing > !WQ_MEM_RECLAIM %s:%ps" warning? Otherwise, __WQ_LEGACY flag will continue > serving as a hack for suppressing this warning. If you convert them to all of them in the flush chain to use alloc_workqueue() w/ MEM_RECLAIM, the warning will go away. > #define create_workqueue(name) \ > - alloc_workqueue("%s", __WQ_LEGACY | WQ_MEM_RECLAIM, 1, (name)) > + alloc_workqueue("%s", WQ_MEM_RECLAIM, 1, (name)) > #define create_freezable_workqueue(name) \ > - alloc_workqueue("%s", __WQ_LEGACY | WQ_FREEZABLE | WQ_UNBOUND | \ > + alloc_workqueue("%s", WQ_FREEZABLE | WQ_UNBOUND | \ > WQ_MEM_RECLAIM, 1, (name)) > #define create_singlethread_workqueue(name) \ > - alloc_ordered_workqueue("%s", __WQ_LEGACY | WQ_MEM_RECLAIM, name) > + alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, name) But why are you dropping the flag from their intended users? Thanks. -- tejun