mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>,
	Borislav Petkov <bp@alien8.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Jani Nikula <jani.nikula@linux.intel.com>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Subject: Re: [GIT pull] x86 APIC updates for 4.15
Date: Thu, 30 Nov 2017 13:04:11 +0100	[thread overview]
Message-ID: <373cf597-c068-4c90-354c-496c88692f9f@linux.intel.com> (raw)
In-Reply-To: <alpine.DEB.2.20.1711301005530.1925@nanos>

Op 30-11-17 om 10:18 schreef Thomas Gleixner:
> Maarten,
>
> On Wed, 29 Nov 2017, Maarten Lankhorst wrote:
>> The changes to interrupts bring down our CI during hibernate, see:
>>
>> https://bugs.freedesktop.org/show_bug.cgi?id=103712
>>
>> I created a bug report at https://bugzilla.kernel.org/show_bug.cgi?id=198033
>>
>> Short reproducer:
>>
>> Create a swapfile on a snb 2600, attempt to hibernate to it with echo
>> disk > /sys/power/state, this will fail in the end, but will go through
>> most of the steps.
>>
>> After the almost complete hibernate, i915 will not receive irqs any more,
>> which kills our entire integration testing.
>>
>> Kernel config is available at
>> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3402/kernel.config.bz2
>> Results with pull request reverted at
>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7333/shards.html
>>
>> First bad commit:
>>
>> commit fdba46ffb4c203b6e6794163493fd310f98bb4be (HEAD, refs/bisect/bad)
>> Author: Thomas Gleixner <tglx@linutronix.de>
>> Date:   Wed Sep 13 23:29:27 2017 +0200
>>
>>     x86/apic: Get rid of multi CPU affinity
>>
> < SNIP >
>> Could you have a look at it please?
> I had a look at it. Do I need to do anything else? :)
>
> Seriously. Can you please do the following:
>
> 1) Enable CONFIG_GENERIC_IRQ_DEBUGFS
>
> 2) mount debugfs
>
> 3) Before suspend collect information from there
>
>    cat /sys/kernel/debug/irq/domains/*
>
>    and
>
>    cat /sys/kernel/debug/irq/irqs/$N
>
>    where $N is the interrupt which does not fire anymore
>
> 4) suspend/resume
>
> 5) Collect the same data as in #3

/proc/interrupts:
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
 28:        999          0          0          0         29          0          0          0   PCI-MSI 32768-edge      i915

# grep . /sys/kernel/debug/irq/domains/*
/sys/kernel/debug/irq/domains/default:name:   VECTOR
/sys/kernel/debug/irq/domains/default: size:   0
/sys/kernel/debug/irq/domains/default: mapped: 27
/sys/kernel/debug/irq/domains/default: flags:  0x00000041
/sys/kernel/debug/irq/domains/IO-APIC-0:name:   IO-APIC-0
/sys/kernel/debug/irq/domains/IO-APIC-0: size:   24
/sys/kernel/debug/irq/domains/IO-APIC-0: mapped: 20
/sys/kernel/debug/irq/domains/IO-APIC-0: flags:  0x00000041
/sys/kernel/debug/irq/domains/IO-APIC-0: parent: VECTOR
/sys/kernel/debug/irq/domains/IO-APIC-0:    name:   VECTOR
/sys/kernel/debug/irq/domains/IO-APIC-0:     size:   0
/sys/kernel/debug/irq/domains/IO-APIC-0:     mapped: 27
/sys/kernel/debug/irq/domains/IO-APIC-0:     flags:  0x00000041
/sys/kernel/debug/irq/domains/PCI-HT:name:   PCI-HT
/sys/kernel/debug/irq/domains/PCI-HT: size:   0
/sys/kernel/debug/irq/domains/PCI-HT: mapped: 0
/sys/kernel/debug/irq/domains/PCI-HT: flags:  0x00000041
/sys/kernel/debug/irq/domains/PCI-HT: parent: VECTOR
/sys/kernel/debug/irq/domains/PCI-HT:    name:   VECTOR
/sys/kernel/debug/irq/domains/PCI-HT:     size:   0
/sys/kernel/debug/irq/domains/PCI-HT:     mapped: 27
/sys/kernel/debug/irq/domains/PCI-HT:     flags:  0x00000041
/sys/kernel/debug/irq/domains/PCI-MSI-2:name:   PCI-MSI-2
/sys/kernel/debug/irq/domains/PCI-MSI-2: size:   0
/sys/kernel/debug/irq/domains/PCI-MSI-2: mapped: 7
/sys/kernel/debug/irq/domains/PCI-MSI-2: flags:  0x00000051
/sys/kernel/debug/irq/domains/PCI-MSI-2: parent: VECTOR
/sys/kernel/debug/irq/domains/PCI-MSI-2:    name:   VECTOR
/sys/kernel/debug/irq/domains/PCI-MSI-2:     size:   0
/sys/kernel/debug/irq/domains/PCI-MSI-2:     mapped: 27
/sys/kernel/debug/irq/domains/PCI-MSI-2:     flags:  0x00000041
/sys/kernel/debug/irq/domains/VECTOR:name:   VECTOR
/sys/kernel/debug/irq/domains/VECTOR: size:   0
/sys/kernel/debug/irq/domains/VECTOR: mapped: 27
/sys/kernel/debug/irq/domains/VECTOR: flags:  0x00000041


# cat /sys/kernel/debug/irq/irqs/28 
handler:  handle_edge_irq
device:   0000:00:02.0
status:   0x00000000
istate:   0x00000000
ddepth:   0
wdepth:   0
dstate:   0x01401200
            IRQD_ACTIVATED
            IRQD_IRQ_STARTED
            IRQD_SINGLE_TARGET
            IRQD_AFFINITY_SET
node:     0
affinity: 4
effectiv: 4
pending:  
domain:  PCI-MSI-2
 hwirq:   0x8000
 chip:    PCI-MSI
  flags:   0x10
             IRQCHIP_SKIP_SET_WAKE
 parent:
    domain:  VECTOR
     hwirq:   0x1c
     chip:    APIC
      flags:   0x0

<explosion happens here>

# grep . /sys/kernel/debug/irq/domains/*
/sys/kernel/debug/irq/domains/default:name:   VECTOR
/sys/kernel/debug/irq/domains/default: size:   0
/sys/kernel/debug/irq/domains/default: mapped: 27
/sys/kernel/debug/irq/domains/default: flags:  0x00000041
/sys/kernel/debug/irq/domains/IO-APIC-0:name:   IO-APIC-0
/sys/kernel/debug/irq/domains/IO-APIC-0: size:   24
/sys/kernel/debug/irq/domains/IO-APIC-0: mapped: 20
/sys/kernel/debug/irq/domains/IO-APIC-0: flags:  0x00000041
/sys/kernel/debug/irq/domains/IO-APIC-0: parent: VECTOR
/sys/kernel/debug/irq/domains/IO-APIC-0:    name:   VECTOR
/sys/kernel/debug/irq/domains/IO-APIC-0:     size:   0
/sys/kernel/debug/irq/domains/IO-APIC-0:     mapped: 27
/sys/kernel/debug/irq/domains/IO-APIC-0:     flags:  0x00000041
/sys/kernel/debug/irq/domains/PCI-HT:name:   PCI-HT
/sys/kernel/debug/irq/domains/PCI-HT: size:   0
/sys/kernel/debug/irq/domains/PCI-HT: mapped: 0
/sys/kernel/debug/irq/domains/PCI-HT: flags:  0x00000041
/sys/kernel/debug/irq/domains/PCI-HT: parent: VECTOR
/sys/kernel/debug/irq/domains/PCI-HT:    name:   VECTOR
/sys/kernel/debug/irq/domains/PCI-HT:     size:   0
/sys/kernel/debug/irq/domains/PCI-HT:     mapped: 27
/sys/kernel/debug/irq/domains/PCI-HT:     flags:  0x00000041
/sys/kernel/debug/irq/domains/PCI-MSI-2:name:   PCI-MSI-2
/sys/kernel/debug/irq/domains/PCI-MSI-2: size:   0
/sys/kernel/debug/irq/domains/PCI-MSI-2: mapped: 7
/sys/kernel/debug/irq/domains/PCI-MSI-2: flags:  0x00000051
/sys/kernel/debug/irq/domains/PCI-MSI-2: parent: VECTOR
/sys/kernel/debug/irq/domains/PCI-MSI-2:    name:   VECTOR
/sys/kernel/debug/irq/domains/PCI-MSI-2:     size:   0
/sys/kernel/debug/irq/domains/PCI-MSI-2:     mapped: 27
/sys/kernel/debug/irq/domains/PCI-MSI-2:     flags:  0x00000041
/sys/kernel/debug/irq/domains/VECTOR:name:   VECTOR
/sys/kernel/debug/irq/domains/VECTOR: size:   0
/sys/kernel/debug/irq/domains/VECTOR: mapped: 27
/sys/kernel/debug/irq/domains/VECTOR: flags:  0x00000041

# cat /sys/kernel/debug/irq/irqs/28 
handler:  handle_edge_irq
device:   0000:00:02.0
status:   0x00000400
            _IRQ_NOPROBE
istate:   0x00000000
ddepth:   0
wdepth:   0
dstate:   0x01401300
            IRQD_ACTIVATED
            IRQD_IRQ_STARTED
            IRQD_SINGLE_TARGET
            IRQD_AFFINITY_SET
            IRQD_SETAFFINITY_PENDING
node:     0
affinity: 0,5-7
effectiv: 0
pending:  4
domain:  PCI-MSI-2
 hwirq:   0x8000
 chip:    PCI-MSI
  flags:   0x10
             IRQCHIP_SKIP_SET_WAKE
 parent:
    domain:  VECTOR
     hwirq:   0x1c
     chip:    APIC
      flags:   0x0

Thanks for looking,
~Maarten

  reply	other threads:[~2017-11-30 12:04 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-13 12:05 Thomas Gleixner
2017-11-29 13:27 ` Maarten Lankhorst
2017-11-30  9:18   ` Thomas Gleixner
2017-11-30 12:04     ` Maarten Lankhorst [this message]
2017-11-30 22:47       ` Thomas Gleixner
2017-12-06 11:13         ` Maarten Lankhorst
2017-12-11 10:02           ` [Intel-gfx] " Daniel Vetter
2017-12-11 10:57             ` Thomas Gleixner
2017-12-11 11:06               ` Thomas Gleixner
2017-12-11 17:31                 ` Maarten Lankhorst

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=373cf597-c068-4c90-354c-496c88692f9f@linux.intel.com \
    --to=maarten.lankhorst@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=hpa@zytor.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®