Re: [patch] x86, apic: use 0x20 for the IRQ_MOVE_CLEANUP_VECTORinstead of 0x1f

From: Suresh Siddha
Date: Mon Jan 11 2010 - 19:08:16 EST


On Mon, 2010-01-11 at 15:13 -0800, H. Peter Anvin wrote:
> On 01/11/2010 03:10 PM, Eric W. Biederman wrote:
> > "H. Peter Anvin" <hpa@xxxxxxxxx> writes:
> >
> >> On 01/11/2010 02:53 PM, Suresh Siddha wrote:
> >>>
> >>>> However, my most serious concern with this patch is that there is a
> >>>> fairly significant change due to this patch, which is that the legacy
> >>>> IRQ vectors now fall *inside* the FIRST_DEVICE_VECTOR range. This isn't
> >>>> a bad thing -- in fact, it is fundamentally the right thing to do
> >>>> especially once we consider platforms which *don't* have the legacy IRQs
> >>>> -- but it makes me scared of unexpected behavior changes as a result.
> >>>> If you feel confident that that is not the case, could you outline why
> >>>> it shouldn't be a problem?
> >>>
> >>> In irqinit.c, we statically pre-assign the per-cpu vector to irq
> >>> mappings (vector_irq) for all the legacy IRQ vectors. Similarly irq_cfg
> >>> is statically initialized for legacy IRQ's in io_apic.c. So we won't be
> >>> able to use this space for anything else.
> >>>
> >>
> >> What enforces that, though? The used_vector bitmap? In the past it was
> >> enforced simply by being < FIRST_DEVICE_VECTOR.
> >
> > I believe historically it was simply that we did not loop over that set of vectors,
> > in assign_irq_vector.
> >
>
> Yes, that's what I said. My question was to Suresh what enforces that
> in the case of his patch, which moves the legacy range into the middle
> of the device vectors.

It's not the used_vector bitmap. That range will appear as used on all
the cpu's and hence we won't be allocating it for anything else.

Now the question is: for non-legacy (io-apic) case, instead of reserving
this range for all the cpu's, does it make sense to generalize like any
other vector?

thanks,
suresh

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/