Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Apr 2012 22:21:27 +0100
From:      Attilio Rao <attilio@freebsd.org>
To:        "Justin T. Gibbs" <gibbs@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r233961 - head/sys/x86/x86
Message-ID:  <CAJ-FndACfNLgcu73u_%2B3d=wJ--ck=Z9f2QDQB4GHORPbBGMXMQ@mail.gmail.com>
In-Reply-To: <201204062119.q36LJTKR026564@svn.freebsd.org>
References:  <201204062119.q36LJTKR026564@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Il 06 aprile 2012 22:19, Justin T. Gibbs <gibbs@freebsd.org> ha scritto:
> Author: gibbs
> Date: Fri Apr =C2=A06 21:19:28 2012
> New Revision: 233961
> URL: http://svn.freebsd.org/changeset/base/233961
>
> Log:
> =C2=A0Fix interrupt load balancing regression, introduced in revision
> =C2=A0222813, that left all un-pinned interrupts assigned to CPU 0.
>
> =C2=A0sys/x86/x86/intr_machdep.c:
> =C2=A0 =C2=A0 =C2=A0 =C2=A0In intr_shuffle_irqs(), remove CPU_SETOF() cal=
l that initialized
> =C2=A0 =C2=A0 =C2=A0 =C2=A0the "intr_cpus" cpuset to only contain CPU0.
>
> =C2=A0 =C2=A0 =C2=A0 =C2=A0This initialization is too late and nullifies =
the results of calls
> =C2=A0 =C2=A0 =C2=A0 =C2=A0the intr_add_cpu() that occur much earlier in =
the boot process.
> =C2=A0 =C2=A0 =C2=A0 =C2=A0Since "intr_cpus" is statically initialized to=
 the empty set, and
> =C2=A0 =C2=A0 =C2=A0 =C2=A0all processors, including the BSP, already add=
 themselves to
> =C2=A0 =C2=A0 =C2=A0 =C2=A0"intr_cpus" no special initialization for the =
BSP is necessary.

For instance, the SETOF is not necessary here because
set_interrupt_apic_ids() already does intr_add_cpu() for BSP too.

Attilio


--=20
Peace can only be achieved by understanding - A. Einstein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-FndACfNLgcu73u_%2B3d=wJ--ck=Z9f2QDQB4GHORPbBGMXMQ>