lkml.org 
[lkml]   [2012]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v2 2/3] x86, x2apic: limit the vector reservation to the user specified mask
    From
    On Thu, Jun 21, 2012 at 3:02 PM, Suresh Siddha
    <suresh.b.siddha@intel.com> wrote:
    > For the x2apic cluster mode, vector for an interrupt is currently reserved on
    > all the cpu's that are part of the x2apic cluster. But the interrupts will
    > be routed only to the cluster (derived from the first cpu in the mask) members
    > specified in the mask. So there is no need to reserve the vector in the unused
    > cluster members.
    >
    > Modify __assign_irq_vector() to reserve the vectors based on the user
    > specified irq destination mask. If the new mask is a proper subset of
    > the currently used mask, cleanup the vector allocation on the unused cpu
    > members.
    >
    > Also, allow the apic driver to tune the vector domain based on the
    > affinity mask (which in most cases is the user-specified mask).
    >
    > Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
    > Acked-by: Yinghai Lu <yinghai@kernel.org>
    > ---
    >  arch/x86/include/asm/apic.h           |    9 ++++++---
    >  arch/x86/kernel/apic/apic_noop.c      |    3 ++-
    >  arch/x86/kernel/apic/io_apic.c        |   31 +++++++++++++++----------------
    >  arch/x86/kernel/apic/x2apic_cluster.c |    6 +++---
    >  4 files changed, 26 insertions(+), 23 deletions(-)
    >
    > diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
    > index b37fa12..c276809 100644
    > --- a/arch/x86/include/asm/apic.h
    > +++ b/arch/x86/include/asm/apic.h
    > @@ -306,7 +306,8 @@ struct apic {
    >        unsigned long (*check_apicid_used)(physid_mask_t *map, int apicid);
    >        unsigned long (*check_apicid_present)(int apicid);
    >
    > -       void (*vector_allocation_domain)(int cpu, struct cpumask *retmask);
    > +       void (*vector_allocation_domain)(int cpu, struct cpumask *retmask,
    > +                                        const struct cpumask *mask);

    there is one left over for vsmp_64 need to be updated.

    arch/x86/kernel/vsmp_64.c: In function ‘vsmp_apic_post_init’:
    arch/x86/kernel/vsmp_64.c:221:33: warning: assignment from
    incompatible pointer type [enabled by default]

    Thanks

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

    \
     
     \ /
      Last update: 2012-06-24 00:41    [W:3.040 / U:0.776 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site