From: Thomas Gleixner <tglx@linutronix.de>
To: Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Aleksandar Rikalo <arikalo@gmail.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>
Subject: Re: [PATCH v4 04/14] irqchip: mips-gic: Support multi-cluster in for_each_online_cpu_gic()
Date: Fri, 21 Jun 2024 22:21:50 +0200 [thread overview]
Message-ID: <87sex6m4gx.ffs@tglx> (raw)
In-Reply-To: <20240511104341.151550-5-aleksandar.rikalo@syrmia.com>
On Sat, May 11 2024 at 12:43, Aleksandar Rikalo wrote:
> From: Paul Burton <paulburton@kernel.org>
>
> Introduce support for multi-cluster GIC register access in
> __gic_with_next_online_cpu(), and therefore in its user
> for_each_online_cpu_gic(). We access registers in remote clusters
> using the CM's GCR_CL_REDIRECT register, and so here we delegate
> to mips_cm_lock_other() in order to configure this access.
Again: We do nothing. See docs.
> @@ -70,6 +70,20 @@ static int __gic_with_next_online_cpu(int prev)
> {
> unsigned int cpu;
>
> + /*
> + * Unlock access to the previous CPU's GIC local register block.
> + *
> + * Delegate to the CM locking code in the multi-cluster case, since
> + * other clusters can only be accessed using GCR_CL_REDIRECT.
> + *
> + * In the single cluster case we don't need to do anything; the caller
> + * is responsible for maintaining gic_lock & nothing should be
> + * expecting any particular value of GIC_VL_OTHER so we can leave it
> + * as-is.
> + */
> + if ((prev != -1) && mips_cps_multicluster_cpus())
> + mips_cm_unlock_other();
Eew.
static inline void gic_unlock_cluster(void)
{
if (mips_cps_multicluster_cpus())
mips_cm_unlock_other();
}
#define for_each_online_cpu_gic(cpu, gic_lock) \
guard(raw_spinlock_irqsave)(gic_lock); \
for ((cpu) = __gic_with_next_online_cpu(-1); \
(cpu) < nr_cpu_ids; \
gic_unlock_cluster(), \
(cpu) = __gic_with_next_online_cpu(cpu);)
No?
Thanks,
tglx
next prev parent reply other threads:[~2024-06-21 20:21 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-11 10:43 [PATCH v4 00/14] MIPS: Support I6500 multi-cluster configuration Aleksandar Rikalo
2024-05-11 10:43 ` [PATCH v4 01/14] MIPS: CPS: Add a couple of multi-cluster utility functions Aleksandar Rikalo
2024-07-09 8:50 ` Thomas Bogendoerfer
2024-05-11 10:43 ` [PATCH v4 02/14] MIPS: GIC: Generate redirect block accessors Aleksandar Rikalo
2024-07-09 8:51 ` Thomas Bogendoerfer
2024-05-11 10:43 ` [PATCH v4 03/14] irqchip: mips-gic: Introduce for_each_online_cpu_gic() Aleksandar Rikalo
2024-06-21 18:58 ` Thomas Gleixner
2024-05-11 10:43 ` [PATCH v4 04/14] irqchip: mips-gic: Support multi-cluster in for_each_online_cpu_gic() Aleksandar Rikalo
2024-06-21 20:21 ` Thomas Gleixner [this message]
2024-05-11 10:43 ` [PATCH v4 05/14] irqchip: mips-gic: Setup defaults in each cluster Aleksandar Rikalo
2024-06-21 20:23 ` Thomas Gleixner
2024-05-11 10:43 ` [PATCH v4 06/14] irqchip: mips-gic: Multi-cluster support Aleksandar Rikalo
2024-05-11 10:43 ` [PATCH v4 07/14] clocksource: mips-gic-timer: Always use cluster 0 counter as clocksource Aleksandar Rikalo
2024-07-08 16:36 ` Daniel Lezcano
2024-07-09 1:47 ` Jiaxun Yang
2024-07-09 8:53 ` Thomas Bogendoerfer
2024-07-09 14:44 ` Daniel Lezcano
2024-07-09 14:56 ` Thomas Bogendoerfer
2024-05-11 10:43 ` [PATCH v4 08/14] clocksource: mips-gic-timer: Enable counter when CPUs start Aleksandar Rikalo
2024-05-27 12:31 ` Philippe Mathieu-Daudé
2024-05-11 10:43 ` [PATCH v4 09/14] MIPS: pm-cps: Use per-CPU variables as per-CPU, not per-core Aleksandar Rikalo
2024-05-11 10:43 ` [PATCH v4 10/14] MIPS: CPS: Introduce struct cluster_boot_config Aleksandar Rikalo
2024-05-11 10:43 ` [PATCH v4 11/14] MIPS: CPS: Boot CPUs in secondary clusters Aleksandar Rikalo
2024-05-11 10:43 ` [PATCH v4 12/14] mips: Enable FDC on MIPS R6 platforms Aleksandar Rikalo
2024-05-11 10:43 ` [PATCH v4 13/14] mips: Move FDC driver to a separate directory Aleksandar Rikalo
2024-05-11 10:43 ` [PATCH v4 14/14] mips: FDC driver refactor Aleksandar Rikalo
2024-06-20 17:56 ` [PATCH v4 00/14] MIPS: Support I6500 multi-cluster configuration Thomas Bogendoerfer
2024-06-20 23:05 ` Jiaxun Yang
2024-06-21 8:21 ` Thomas Bogendoerfer
2024-06-21 9:13 ` Serge Semin
2024-06-24 1:28 ` Serge Semin
2024-06-21 11:04 ` Jiaxun Yang
2024-06-24 20:12 ` Serge Semin
2024-06-25 8:22 ` 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=87sex6m4gx.ffs@tglx \
--to=tglx@linutronix.de \
--cc=aleksandar.rikalo@syrmia.com \
--cc=arikalo@gmail.com \
--cc=cfu@wavecomp.com \
--cc=daniel.lezcano@linaro.org \
--cc=fancer.lancer@gmail.com \
--cc=geert@linux-m68k.org \
--cc=gerg@kernel.org \
--cc=hauke@hauke-m.de \
--cc=ilya.lipnitskiy@gmail.com \
--cc=jiaxun.yang@flygoat.com \
--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=tsbogend@alpha.franken.de \
--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 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.