Re: [PATCH V3 0/4] genirq/affinity: irq vector spread among online CPUs as far as possible

From: Thomas Gleixner
Date: Fri Mar 09 2018 - 05:09:10 EST


On Fri, 9 Mar 2018, Ming Lei wrote:
> On Fri, Mar 09, 2018 at 12:20:09AM +0100, Thomas Gleixner wrote:
> > On Thu, 8 Mar 2018, Ming Lei wrote:
> > > Actually, it isn't a real fix, the real one is in the following two:
> > >
> > > 0c20244d458e scsi: megaraid_sas: fix selection of reply queue
> > > ed6d043be8cd scsi: hpsa: fix selection of reply queue
> >
> > Where are these commits? Neither Linus tree not -next know anything about
> > them....
>
> Both aren't merged yet, but they should land V4.16, IMO.
>
> >
> > > This patchset can't guarantee that all IRQ vectors are assigned by one
> > > online CPU, for example, in a quad-socket system, if only one processor
> > > is present, then some of vectors are still assigned by all offline CPUs,
> > > and it is a valid case, but still may cause io hang if drivers(hpsa,
> > > megaraid_sas) select reply queue in current way.
> >
> > So my understanding is that these irq patches are enhancements and not bug
> > fixes. I'll queue them for 4.17 then.
>
> Wrt. this IO hang issue, these patches shouldn't be bug fix, but they may
> fix performance regression[1] for some systems caused by 84676c1f21 ("genirq/affinity:
> assign vectors to all possible CPUs").
>
> [1] https://marc.info/?l=linux-block&m=152050347831149&w=2

Hmm. The patches are rather large for urgent and evtl. backporting. Is
there a simpler way to address that performance issue?

Thanks,

tglx