All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
	Borislav Petkov <bp@alien8.de>,
	linux-kernel@vger.kernel.org,
	Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Subject: Re: [-next] !irqd_can_balance() WARNINGs at irq_move_masked_irq()
Date: Fri, 19 Jun 2015 18:30:08 +0200 (CEST)	[thread overview]
Message-ID: <alpine.DEB.2.11.1506191829260.4107@nanos> (raw)
In-Reply-To: <5584418D.50408@linux.intel.com>

On Sat, 20 Jun 2015, Jiang Liu wrote:
> On 2015/6/20 0:15, Thomas Gleixner wrote:
> > On Sat, 20 Jun 2015, Jiang Liu wrote:
> > 
> >> [...]
> >>>> Something in the kernel (not yet clear what) tries to move the hpet
> >>>> irq 0 by calling irq_set_affinity(). That's an kernel internal
> >>>> interface which does not check whether the NO BALANCE flag is set for
> >>>> the irq. So the call runs and triggers the move from next interrupt
> >>>> machinery which ends up calling irq_move_masked_irq() and that trips
> >>>> over the flag and yells.
> >>>>
> >>>> That's why I changed the WARN to a pr_warn() because we already know
> >>>> the call stack.
> >>>>
> >>>> So the core behaviour is inconsistent. We let the caller of
> >>>> irq_set_affinity() succeed and yell later because we think it's wrong.
> >>>>
> >>>> I'm pretty sure that we must drop the check for NO BALANCE in
> >>>> irq_move_masked_irq() and only check for the per_cpu bit, but at the
> >>>> same time I really want to know where that call to irq_set_affinity(irq0)
> >>>> is coming from.
> >>>>
> >>>> Can you please collect the output of /proc/timer_list for the previous
> >>>> patch and then replace the previous patch with the one below and
> >>>> gather all the data again?
> >>>
> >>> Hi Thomas,
> >>> 	Maybe it's caused by the hpet driver itself?
> >>> irq_set_affinity() may set the IRQD_SETAFFINITY_PENDING flag,
> >>> thus triggering the warning.
> >> And the usage pattern seems reasonable, the IRQF_NOBALANCING flag
> >> means nobody may change the affinity except myself:)
> > 
> > Right, that's why I removed the restriction. I just wonder why we have
> > not seen that before ...
> I suspected it's caused by the hierarchy irqdomain at first glance
> because the multiple irq_datas issue, but seems it's not after checking
> the code. It will only be triggered if HPET works in MSI mode instead of
> legacy IRQ mode, but still need more investigation here.

Right. And what confuses me is that this happens on irq0, which is
ioapic edge.

Thanks,

	tglx

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
Please read the FAQ at  http://www.tux.org/lkml/

  reply	other threads:[~2015-06-19 16:30 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-19  7:11 [-next] !irqd_can_balance() WARNINGs at irq_move_masked_irq() Sergey Senozhatsky
2015-06-19  9:25 ` Thomas Gleixner
2015-06-19 12:21   ` Thomas Gleixner
2015-06-19 13:11     ` Sergey Senozhatsky
2015-06-19 16:09     ` Jiang Liu
2015-06-19 16:12       ` Jiang Liu
2015-06-19 16:15         ` Thomas Gleixner
2015-06-19 16:21           ` Jiang Liu
2015-06-19 16:30             ` Thomas Gleixner [this message]
2015-06-19 16:47               ` Jiang Liu
2015-06-19 17:14                 ` Sergey Senozhatsky
2015-06-20  4:32                 ` Sergey Senozhatsky
2015-06-20 10:07                 ` [tip:x86/apic] x86/hpet: Check for irq== 0 when allocating hpet MSI interrupts tip-bot for Jiang Liu
2015-06-19 16:23           ` [-next] !irqd_can_balance() WARNINGs at irq_move_masked_irq() Sergey Senozhatsky
2015-06-20  4:31     ` Sergey Senozhatsky
2015-06-20  7:52       ` Thomas Gleixner
2015-06-20  7:57         ` Sergey Senozhatsky
2015-06-20  8:13           ` Thomas Gleixner
2015-06-20  8:27             ` Sergey Senozhatsky
2015-06-20  9:12               ` Thomas Gleixner
2015-06-20 17:53                 ` Sergey Senozhatsky
2015-06-21  4:15                 ` Sergey Senozhatsky
2015-06-21 14:37                   ` Thomas Gleixner
2015-06-21 14:43                     ` [tip:x86/apic] x86/hpet: Use proper hpet device number for MSI allocation tip-bot for Thomas Gleixner
2015-06-20 17:20             ` [tip:irq/core] genirq: Remove bogus restriction in irq_move_mask_irq() tip-bot for Thomas Gleixner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.11.1506191829260.4107@nanos \
    --to=tglx@linutronix.de \
    --cc=bp@alien8.de \
    --cc=jiang.liu@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sergey.senozhatsky.work@gmail.com \
    --cc=sergey.senozhatsky@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.