From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754613AbdBHOEY (ORCPT ); Wed, 8 Feb 2017 09:04:24 -0500 Received: from Galois.linutronix.de ([146.0.238.70]:53929 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754292AbdBHOEQ (ORCPT ); Wed, 8 Feb 2017 09:04:16 -0500 Date: Wed, 8 Feb 2017 14:23:19 +0100 (CET) From: Thomas Gleixner To: Mel Gorman cc: Michal Hocko , Christoph Lameter , Vlastimil Babka , Dmitry Vyukov , Tejun Heo , "linux-mm@kvack.org" , LKML , Ingo Molnar , Peter Zijlstra , syzkaller , Andrew Morton Subject: Re: mm: deadlock between get_online_cpus/pcpu_alloc In-Reply-To: <20170208122612.wasq72hbj4nkh7y3@techsingularity.net> Message-ID: References: <20170207123708.GO5065@dhcp22.suse.cz> <20170207135846.usfrn7e4znjhmogn@techsingularity.net> <20170207141911.GR5065@dhcp22.suse.cz> <20170207153459.GV5065@dhcp22.suse.cz> <20170207162224.elnrlgibjegswsgn@techsingularity.net> <20170207164130.GY5065@dhcp22.suse.cz> <20170208073527.GA5686@dhcp22.suse.cz> <20170208122612.wasq72hbj4nkh7y3@techsingularity.net> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 8 Feb 2017, Mel Gorman wrote: > It may be worth noting that patches in Andrew's tree no longer disable > interrupts in the per-cpu allocator and now per-cpu draining will > be from workqueue context. The reasoning was due to the overhead of > the page allocator with figures included. Interrupts will bypass the > per-cpu allocator and use the irq-safe zone->lock to allocate from > the core. It'll collide with the RT patch. Primary patch of interest is > http://www.ozlabs.org/~akpm/mmots/broken-out/mm-page_alloc-only-use-per-cpu-allocator-for-irq-safe-requests.patch Yeah, we'll sort that out once it hits Linus tree and we move RT forward. Though I have once complaint right away: + preempt_enable_no_resched(); This is a nono, even in mainline. You effectively disable a preemption point. > The draining from workqueue context may be a problem for RT but one > option would be to move the drain to only drain for high-order pages > after direct reclaim combined with only draining for order-0 if > __alloc_pages_may_oom is about to be called. Why would the draining from workqueue context be an issue on RT? Thanks, tglx