lkml.org 
[lkml]   [2015]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC v2 PATCH 03/14] irq: add new struct ipi_mask
    On Tue, 13 Oct 2015, Qais Yousef wrote:
    > cpumask is limited to NR_CPUS. introduce ipi_mask which allows us to address
    > cpu range that is higher than NR_CPUS which is required for drivers to send
    > IPIs for coprocessor that are outside Linux CPU range.
    >
    > Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
    > ---
    > include/linux/irq.h | 15 +++++++++++++++
    > 1 file changed, 15 insertions(+)
    >
    > diff --git a/include/linux/irq.h b/include/linux/irq.h
    > index 11bf09288ddb..4b537e4d393b 100644
    > --- a/include/linux/irq.h
    > +++ b/include/linux/irq.h
    > @@ -125,6 +125,21 @@ enum {
    > struct msi_desc;
    > struct irq_domain;
    >
    > + /**
    > + * struct ipi_mask - IPI mask information
    > + * @cpumask: bitmap of cpumasks
    > + * @nbits: number of bits in cpumask
    > + * @global: whether the mask is SMP IPI ie: subset of cpu_possible_mask or not
    > + *
    > + * ipi_mask is similar to cpumask, but it provides nbits that's configurable
    > + * rather than fixed to NR_CPUS.
    > + */
    > +struct ipi_mask {
    > + unsigned long *cpumask;
    > + unsigned int nbits;
    > + bool global;
    > +};

    Can you make that:

    struct ipi_mask {
    unsigned int nbits;
    bool global;
    unsigned long cpu_bitmap[];
    };

    That allows you to allocate the data structure in one go. So the
    ipi_mask in irq_data_common becomes a pointer which is only filled in
    when ipi_mask is actually used.

    Note, I renamed cpumask to cpu_bitmap to avoid confusion with
    cpumasks.

    We also want a helper function

    struct cpumask *irq_data_get_ipi_mask(struct irq_data *data);

    so we can use normal cpumask operations for the majority of cases.

    Thanks,

    tglx



    \
     
     \ /
      Last update: 2015-10-13 16:01    [W:2.626 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site