> On Wed 19-04-17 14:41:30, Tetsuo Handa wrote: > [...] > > Somebody is waiting forever with cpu_hotplug.lock held? > > Why would that matter for drain_all_pages? It doesn't use > get_online_cpus since a459eeb7b852 ("mm, page_alloc: do not depend on > cpu hotplug locks inside the allocator") while ce612879ddc7 ("mm: move > pcp and lru-pcp draining into single wq") was merged later. > Looking at ce612879ddc7 ("mm: move pcp and lru-pcp draining into single wq"), we merged "lru-add-drain" (!WQ_FREEZABLE && WQ_MEM_RECLAIM) workqueue and "vmstat" (WQ_FREEZABLE && WQ_MEM_RECLAIM) workqueue into "mm_percpu_wq" (WQ_FREEZABLE && WQ_MEM_RECLAIM) workqueue. - lru_add_drain_wq = alloc_workqueue("lru-add-drain", WQ_MEM_RECLAIM, 0); - vmstat_wq = alloc_workqueue("vmstat", WQ_FREEZABLE|WQ_MEM_RECLAIM, 0); + mm_percpu_wq = alloc_workqueue("mm_percpu_wq", + WQ_FREEZABLE|WQ_MEM_RECLAIM, 0); That means "lru-add-drain" became freezable, doesn't it? And this problem occurs around resume operation where all freezable threads are frozen? Then, lru_add_drain_per_cpu() cannot be performed due to mm_percpu_wq frozen? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>