From: Thomas Gleixner <tglx@linutronix.de>
To: Aleksandar Rikalo <arikalo@gmail.com>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>,
Gregory CLEMENT <gregory.clement@bootlin.com>,
Theo Lebrun <theo.lebrun@bootlin.com>,
Arnd Bergmann <arnd@arndb.de>,
devicetree@vger.kernel.org,
Djordje Todorovic <djordje.todorovic@htecgroup.com>,
Chao-ying Fu <cfu@wavecomp.com>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Greg Ungerer <gerg@kernel.org>, Hauke Mehrtens <hauke@hauke-m.de>,
Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org,
Marc Zyngier <maz@kernel.org>,
Paul Burton <paulburton@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Serge Semin <fancer.lancer@gmail.com>,
Tiezhu Yang <yangtiezhu@loongson.cn>,
Aleksandar Rikalo <arikalo@gmail.com>
Subject: Re: [PATCH v8 04/13] irqchip/mips-gic: Multi-cluster support
Date: Mon, 28 Oct 2024 20:45:40 +0100 [thread overview]
Message-ID: <87wmhs1063.ffs@tglx> (raw)
In-Reply-To: <20241028175935.51250-5-arikalo@gmail.com>
On Mon, Oct 28 2024 at 18:59, Aleksandar Rikalo wrote:
> + * In summary, if this function returns true then the caller should access GIC
> + * registers using redirect register block accessors & then call
> + * mips_cm_unlock_other() when done. If this function returns false then the
> + * caller should trivially access GIC registers in the local cluster.
> + *
> + * Returns true if locking performed, else false.
> + */
> +static bool gic_irq_lock_cluster(struct irq_data *d)
> +{
> + unsigned int cpu, cl;
> +
> + cpu = cpumask_first(irq_data_get_effective_affinity_mask(d));
> + BUG_ON(cpu >= NR_CPUS);
> +
> + cl = cpu_cluster(&cpu_data[cpu]);
> + if (cl == cpu_cluster(¤t_cpu_data))
> + return false;
Not that I personally care much about the performance of this. But why
aren't you caching the cluster or at least the target CPU in irq_data
somewhere? cpumask_first() is not cheap on a large system when the cpu
is at the very end of the bitmask. AFAICT nothing here uses chip_data,
so you can do:
unsigned long cl = (unsigned long)irq_data_get_irq_chip_data(d);
which is a single load operation and you can update it in the
set_affinity() callback and during setup. No?
I'll take the irqchip bits as is if nobody complains within the next
days and you can optimize on top if you care.
Thanks,
tglx
next prev parent reply other threads:[~2024-10-28 19:45 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-28 17:59 [PATCH v8 00/13] MIPS: Support I6500 multi-cluster configuration Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 01/13] irqchip/mips-gic: Introduce for_each_online_cpu_gic() Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 02/13] irqchip/mips-gic: Support multi-cluster in for_each_online_cpu_gic() Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 03/13] irqchip/mips-gic: Setup defaults in each cluster Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 04/13] irqchip/mips-gic: Multi-cluster support Aleksandar Rikalo
2024-10-28 19:45 ` Thomas Gleixner [this message]
2024-10-28 17:59 ` [PATCH v8 05/13] clocksource: mips-gic-timer: Always use cluster 0 counter as clocksource Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 06/13] clocksource: mips-gic-timer: Enable counter when CPUs start Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 07/13] MIPS: pm-cps: Use per-CPU variables as per-CPU, not per-core Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 08/13] MIPS: CPS: Introduce struct cluster_boot_config Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 09/13] MIPS: CPS: Boot CPUs in secondary clusters Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 10/13] dt-bindings: mips: cpu: Add property for broken HCI information Aleksandar Rikalo
2024-10-29 7:03 ` Krzysztof Kozlowski
2024-10-29 12:21 ` Aleksandar Rikalo
2024-10-29 16:08 ` Gregory CLEMENT
2024-10-29 16:11 ` Jiaxun Yang
2024-10-30 11:35 ` Jiaxun Yang
2024-10-31 8:13 ` Gregory CLEMENT
2024-10-31 14:42 ` Thomas Bogendoerfer
2024-10-31 15:27 ` Jiaxun Yang
2024-10-28 17:59 ` [PATCH v8 11/13] MIPS: CPS: Support broken HCI for multicluster Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 12/13] MIPS: mobileye: dts: eyeq6h: Enable cluster support Aleksandar Rikalo
2024-10-28 17:59 ` [PATCH v8 13/13] irqchip: mips-gic: Handle case with cluster without CPU cores Aleksandar Rikalo
2024-10-30 11:39 ` [PATCH v8 00/13] MIPS: Support I6500 multi-cluster configuration Jiaxun Yang
2024-11-01 1:47 ` Maciej W. Rozycki
2025-01-22 15:06 ` Gregory CLEMENT
2025-01-23 10:19 ` Aleksandar Rikalo
2025-01-23 15:35 ` Gregory CLEMENT
2025-02-19 10:46 ` Aleksandar Rikalo
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=87wmhs1063.ffs@tglx \
--to=tglx@linutronix.de \
--cc=arikalo@gmail.com \
--cc=arnd@arndb.de \
--cc=cfu@wavecomp.com \
--cc=conor+dt@kernel.org \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=djordje.todorovic@htecgroup.com \
--cc=fancer.lancer@gmail.com \
--cc=geert@linux-m68k.org \
--cc=gerg@kernel.org \
--cc=gregory.clement@bootlin.com \
--cc=hauke@hauke-m.de \
--cc=ilya.lipnitskiy@gmail.com \
--cc=jiaxun.yang@flygoat.com \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=maz@kernel.org \
--cc=paulburton@kernel.org \
--cc=peterz@infradead.org \
--cc=robh@kernel.org \
--cc=theo.lebrun@bootlin.com \
--cc=tsbogend@alpha.franken.de \
--cc=vladimir.kondratiev@mobileye.com \
--cc=yangtiezhu@loongson.cn \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).