From: Ingo Molnar <mingo@elte.hu>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Andrew Morton <akpm@linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] irq: sparseirq enabling v2
Date: Wed, 26 Nov 2008 08:48:26 +0100 [thread overview]
Message-ID: <20081126074826.GI26036@elte.hu> (raw)
In-Reply-To: <492B77C5.2050502@kernel.org>
* Yinghai Lu <yinghai@kernel.org> wrote:
> impact: new feature sparseirq
> v2: use pointer array instead of hash
ok, this looks pretty good!
A few details:
> +#ifdef CONFIG_SPARSE_IRQ
> +#define set_ioapic_affinity_irq set_ioapic_affinity_irq_desc
> +#else
> +static void set_ioapic_affinity_irq(unsigned int irq, cpumask_t mask)
> +{
> + struct irq_desc *desc;
> +
> + desc = irq_to_desc(irq);
> +
> + set_ioapic_affinity_irq_desc(desc, mask);
> +}
> +#endif
i think this distinction can now go away?.
> #ifdef CONFIG_INTR_REMAP
> +#ifdef CONFIG_SPARSE_IRQ
> +static void ack_x2apic_level_desc(struct irq_desc **descp)
> +{
> + ack_x2APIC_irq();
> +}
> +
> +static void ack_x2apic_edge_desc(struct irq_desc **descp)
> +{
> + ack_x2APIC_irq();
> +}
> +
> +#define ack_x2apic_level ack_x2apic_level_desc
> +#define ack_x2apic_edge ack_x2apic_edge_desc
> +#else
is this needed now?
> +#ifdef CONFIG_SMP
> + move_native_irq_desc(descp);
> +#endif
please hide this #ifdef in a header.
> +# ifdef CONFIG_SMP
> + move_masked_irq_desc(descp);
> +# endif
ditto.
> +#ifdef CONFIG_SPARSE_IRQ
> +#define ack_apic_edge ack_apic_edge_desc
> +#define ack_apic_level ack_apic_level_desc
> +#else
> +static void ack_apic_edge(unsigned int irq)
> +{
> + struct irq_desc *desc = irq_to_desc(irq);
> +
> + ack_apic_edge_desc(&desc);
> +}
> +static void ack_apic_level(unsigned int irq)
> +{
> + struct irq_desc *desc = irq_to_desc(irq);
> +
> + ack_apic_level_desc(&desc);
> +}
> +#endif
distinction needed?
>
> +#ifdef CONFIG_SPARSE_IRQ
> +#define mask_lapic_irq mask_lapic_irq_desc
> +#define unmask_lapic_irq unmask_lapic_irq_desc
> +#define ack_lapic_irq ack_lapic_irq_desc
> +#else
> +static void mask_lapic_irq(unsigned int irq)
> +{
> + struct irq_desc *desc = irq_to_desc(irq);
> +
> + mask_lapic_irq_desc(&desc);
> +}
> +static void unmask_lapic_irq(unsigned int irq)
> +{
> + struct irq_desc *desc = irq_to_desc(irq);
> +
> + unmask_lapic_irq_desc(&desc);
> +}
> +static void ack_lapic_irq(unsigned int irq)
> +{
> + struct irq_desc *desc = irq_to_desc(irq);
> +
> + ack_lapic_irq_desc(&desc);
> +}
> +#endif
same.
> +#ifdef CONFIG_SPARSE_IRQ
> + for (new = irq_want; new < NR_IRQS; new++)
> +#else
> + for (new = irq_want; new > 0; new--)
> +#endif
this assymetry seems unnecessary too now i think.
> +#ifdef CONFIG_SPARSE_IRQ
> + irq_want = nr_irqs;
> +#else
> + irq_want = NR_IRQS - 1;
> +#endif
ditto. I think we dont want 'nr_irqs' anymore - just remain with
NR_IRQS, right?
> +#ifdef CONFIG_SPARSE_IRQ
> +#define set_msi_irq_affinity set_msi_irq_affinity_desc
> +#else
> +static void set_msi_irq_affinity(unsigned int irq, cpumask_t mask)
> +{
> + struct irq_desc *desc = irq_to_desc(irq);
>
> + set_msi_irq_affinity_desc(desc, mask);
> +}
> +#endif
This ifdef seems unnecessary too.
Plus in a few more places.
Please look at _every_ #ifdef or #if in your patch in a .c file and
ask the question: can we somehow in some way eliminate it and convert
it to some nice inline somewhere or eliminate it via some other trick?
Ingo
next prev parent reply other threads:[~2008-11-26 7:48 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-24 2:59 [PATCH 1/2] irq: sparseirq enabling Yinghai Lu
2008-11-24 14:40 ` Ingo Molnar
2008-11-24 19:22 ` Yinghai Lu
2008-11-24 22:26 ` Thomas Gleixner
2008-11-25 3:57 ` [PATCH 1/2] irq: sparseirq enabling v2 Yinghai Lu
2008-11-25 3:58 ` [PATCH 2/2] irq: move irq_desc according to smp_affinity v2 Yinghai Lu
2008-11-26 7:48 ` Ingo Molnar [this message]
2008-11-26 8:02 ` [PATCH 1/2] irq: sparseirq enabling v2 Yinghai Lu
2008-11-26 8:17 ` Ingo Molnar
2008-11-26 18:33 ` Yinghai Lu
2008-11-27 2:26 ` [PATCH 1/2] irq: sparseirq enabling v3 Yinghai Lu
2008-11-27 2:26 ` [PATCH 2/2] irq: move irq_desc according to smp_affinity v3 Yinghai Lu
2008-11-28 16:34 ` [PATCH 1/2] irq: sparseirq enabling v3 Ingo Molnar
2008-11-29 7:13 ` [PATCH] irq: sparseirq enabling v4 Yinghai Lu
2008-11-29 10:02 ` Ingo Molnar
2008-11-29 10:26 ` Ingo Molnar
2008-12-01 4:44 ` [PATCH] irq: sparse irq_desc[] support - fix Yinghai Lu
2008-11-29 10:57 ` [PATCH] irq: sparseirq enabling v4 Sam Ravnborg
2008-11-29 14:33 ` Ingo Molnar
2008-11-29 17:54 ` Sam Ravnborg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081126074826.GI26036@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.