From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933318AbdC3GuQ (ORCPT ); Thu, 30 Mar 2017 02:50:16 -0400 Received: from merlin.infradead.org ([205.233.59.134]:50972 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932255AbdC3GuN (ORCPT ); Thu, 30 Mar 2017 02:50:13 -0400 Date: Thu, 30 Mar 2017 08:49:58 +0200 From: Peter Zijlstra To: Jesper Dangaard Brouer Cc: Matthew Wilcox , Pankaj Gupta , Tariq Toukan , Mel Gorman , Tariq Toukan , netdev@vger.kernel.org, akpm@linux-foundation.org, linux-mm , Saeed Mahameed , linux-kernel@vger.kernel.org Subject: Re: in_irq_or_nmi() and RFC patch Message-ID: <20170330064958.uxih6ik5fkwvjqf6@hirez.programming.kicks-ass.net> References: <20170327143947.4c237e54@redhat.com> <20170327141518.GB27285@bombadil.infradead.org> <20170327171500.4beef762@redhat.com> <20170327165817.GA28494@bombadil.infradead.org> <20170329081219.lto7t4fwmponokzh@hirez.programming.kicks-ass.net> <20170329105928.609bc581@redhat.com> <20170329091949.o2kozhhdnszgwvtn@hirez.programming.kicks-ass.net> <20170329181226.GA8256@bombadil.infradead.org> <20170329211144.3e362ac9@redhat.com> <20170329214441.08332799@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170329214441.08332799@redhat.com> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 29, 2017 at 09:44:41PM +0200, Jesper Dangaard Brouer wrote: > @@ -2481,7 +2481,11 @@ void free_hot_cold_page(struct page *page, bool cold) > unsigned long pfn = page_to_pfn(page); > int migratetype; > > - if (in_interrupt()) { > + /* > + * Exclude (hard) IRQ and NMI context from using the pcplists. > + * But allow softirq context, via disabling BH. > + */ > + if (in_irq() || irqs_disabled()) { Why do you need irqs_disabled() ? Also, your comment is stale, it still refers to NMI context. > __free_pages_ok(page, 0); > return; > }