Re: question about the limited interrupt vector resource on a single cpu

From: Thomas Gleixner
Date: Wed Jun 06 2018 - 08:08:51 EST


On Wed, 6 Jun 2018, Pingfan Liu wrote:
> On Wed, Jun 6, 2018 at 5:34 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> > On Wed, 6 Jun 2018, Pingfan Liu wrote:
> >
> >> On Wed, Jun 6, 2018 at 5:15 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> >> > On Wed, 6 Jun 2018, Pingfan Liu wrote:
> >> >
> >> >> For x86, there is around 200 vectors left for external device on a
> >> >> single logic cpu.
> >> >>
> >> >> Is there any case that we exhaust them in real world, and is it worth to fix?
> >> >
> >> > Exhaustion is unlikely, but how would you fix it? The vector space per CPU
> >> > is limited by hardware not software.
> >> >
> >> Playing some trick on iommu, we can use it to identify the irq requester.
> >
> > But what's the point? If you have more than 200 device interrupts on a
> > single CPU, then you surely have other problems than that.
> >
> > What kind of problem are you trying to solve?
> >
> In kdump case, normally we set nr_cpus=1 by default, and in some huge
> system, it can exhaust vector space.

Well. For kdump it's really not necessary to initialize all devices. So
this is more a configuration problem.

> By this is easily to resolve by inc nr_cpus. Hence I post this
> question to see whether there are other requirements to resolve such
> case

Not really. We've covered a lot of the issues with multi-queue devices and
suspend, where you can run into the same issue, via the managed interrupt
infrastructure.

Thanks,

tglx