[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.20.1709070855010.1827@nanos>
Date: Thu, 7 Sep 2017 08:59:34 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: Dan Williams <dan.j.williams@...el.com>
cc: Christoph Hellwig <hch@....de>, Yu Chen <yu.c.chen@...el.com>,
X86 ML <x86@...nel.org>, Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>, Rui Zhang <rui.zhang@...el.com>,
LKML <linux-kernel@...r.kernel.org>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Len Brown <lenb@...nel.org>,
Peter Zijlstra <peterz@...radead.org>,
Jeff Kirsher <jeffrey.t.kirsher@...el.com>
Subject: Re: [PATCH 4/4][RFC v2] x86/apic: Spread the vectors by choosing
the idlest CPU
On Wed, 6 Sep 2017, Dan Williams wrote:
> On Wed, Sep 6, 2017 at 10:59 PM, Thomas Gleixner <tglx@...utronix.de> wrote:
> >> commit 7c9ae7f053e9e896c24fd23595ba369a5fe322e1
> >
> > -ENOSUCHCOMMIT
>
> Sorry, that's still pending in -next.
Ok.
> >> Author: Carolyn Wyborny <carolyn.wyborny@...el.com>
> >> Date: Tue Jun 20 15:16:53 2017 -0700
> >>
> >> i40e: Fix for trace found with S4 state
> >>
> >> This patch fixes a problem found in systems when entering
> >> S4 state. This patch fixes the problem by ensuring that
> >> the misc vector's IRQ is disabled as well. Without this
> >> patch a stack trace can be seen upon entering S4 state.
Btw. This changelog is pretty useless.....
> >> However this seems like something that should be handled generically
> >> in the irq-core especially since commit c5cb83bb337c
> >> "genirq/cpuhotplug: Handle managed IRQs on CPU hotplug" was headed in
> >> that direction. It's otherwise non-obvious when a driver needs to
> >> release and re-acquire interrupts or be reworked to use managed
> >> interrupts.
> >
> > There are two problems here:
> >
> > 1) The driver allocates 300 interrupts and uses exactly 8 randomly chosen
> > ones.
> >
> > 2) It's not using the managed affinity mechanics, so the interrupts cannot
> > be sanely handled by the kernel, neither affinity wise nor at hotplug
> > time.
>
> Ok, this driver is an obvious candidate, but is there a general
> guideline of when a driver must use affinity management? Should we be
> emitting a message when a driver exceeds a certain threshold of
> unmanaged interrupts to flag this in the future?
I guess everything which uses multi queues and therefor allocates 8+
vectors is something which falls into that category.
Aside of that, drivers should be sane in terms of allocations. Allocating
metric tons of interrupts for nothing is not really a sign of a proper
thought out resource management.
Thanks,
tglx
Powered by blists - more mailing lists