[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170330091223.05aa0efe@redhat.com>
Date: Thu, 30 Mar 2017 09:12:23 +0200
From: Jesper Dangaard Brouer <brouer@...hat.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Matthew Wilcox <willy@...radead.org>,
Pankaj Gupta <pagupta@...hat.com>,
Tariq Toukan <ttoukan.linux@...il.com>,
Mel Gorman <mgorman@...hsingularity.net>,
Tariq Toukan <tariqt@...lanox.com>, netdev@...r.kernel.org,
akpm@...ux-foundation.org, linux-mm <linux-mm@...ck.org>,
Saeed Mahameed <saeedm@...lanox.com>,
linux-kernel@...r.kernel.org, brouer@...hat.com
Subject: Re: in_irq_or_nmi() and RFC patch
On Thu, 30 Mar 2017 08:49:58 +0200
Peter Zijlstra <peterz@...radead.org> wrote:
> 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() ?
Because further down I call local_bh_enable(), which calls
__local_bh_enable_ip() which triggers a warning during early boot on:
WARN_ON_ONCE(in_irq() || irqs_disabled());
It looks like it is for supporting CONFIG_TRACE_IRQFLAGS.
> Also, your comment is stale, it still refers to NMI context.
True, as you told me NMI is implicit, as it cannot occur.
> > __free_pages_ok(page, 0);
> > return;
> > }
--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer
Powered by blists - more mailing lists