Message ID | 20250207161939.46139-16-ajones@ventanamicro.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | riscv: Unaligned access speed probing fixes and skipping | expand |
Context | Check | Description |
---|---|---|
bjorn/pre-ci_am | success | Success |
bjorn/build-rv32-defconfig | success | build-rv32-defconfig |
bjorn/build-rv64-clang-allmodconfig | success | build-rv64-clang-allmodconfig |
bjorn/build-rv64-gcc-allmodconfig | success | build-rv64-gcc-allmodconfig |
bjorn/build-rv64-nommu-k210-defconfig | success | build-rv64-nommu-k210-defconfig |
bjorn/build-rv64-nommu-k210-virt | success | build-rv64-nommu-k210-virt |
bjorn/checkpatch | success | checkpatch |
bjorn/dtb-warn-rv64 | success | dtb-warn-rv64 |
bjorn/header-inline | success | header-inline |
bjorn/kdoc | success | kdoc |
bjorn/module-param | success | module-param |
bjorn/verify-fixes | success | verify-fixes |
bjorn/verify-signedoff | success | verify-signedoff |
On 07/02/2025 17:19, Andrew Jones wrote: > CPU hotplug callbacks should be set up even if we detected all > current cpus emulate misaligned accesses, since we want to > ensure our expectations of all cpus emulating is maintained. > > Fixes: 6e5ce7f2eae3 ("riscv: Decouple emulated unaligned accesses from access speed") > Fixes: e7c9d66e313b ("RISC-V: Report vector unaligned access speed hwprobe") > Signed-off-by: Andrew Jones <ajones@ventanamicro.com> > --- > arch/riscv/kernel/unaligned_access_speed.c | 27 +++++++++++----------- > 1 file changed, 13 insertions(+), 14 deletions(-) > > diff --git a/arch/riscv/kernel/unaligned_access_speed.c b/arch/riscv/kernel/unaligned_access_speed.c > index 780f1c5f512a..c9d3237649bb 100644 > --- a/arch/riscv/kernel/unaligned_access_speed.c > +++ b/arch/riscv/kernel/unaligned_access_speed.c > @@ -247,13 +247,6 @@ static void __init check_unaligned_access_speed_all_cpus(void) > /* Check core 0. */ > smp_call_on_cpu(0, check_unaligned_access, bufs[0], true); > > - /* > - * Setup hotplug callbacks for any new CPUs that come online or go > - * offline. > - */ > - cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > - riscv_online_cpu, riscv_offline_cpu); > - > out: > for_each_cpu(cpu, cpu_online_mask) { > if (bufs[cpu]) > @@ -383,13 +376,6 @@ static int __init vec_check_unaligned_access_speed_all_cpus(void *unused __alway > { > schedule_on_each_cpu(check_vector_unaligned_access); > > - /* > - * Setup hotplug callbacks for any new CPUs that come online or go > - * offline. > - */ > - cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > - riscv_online_cpu_vec, NULL); > - > return 0; > } > #else /* CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS */ > @@ -415,6 +401,19 @@ static int __init check_unaligned_access_all_cpus(void) > NULL, "vec_check_unaligned_access_speed_all_cpus"); > } > > + /* > + * Setup hotplug callbacks for any new CPUs that come online or go > + * offline. > + */ > +#ifdef CONFIG_RISCV_PROBE_UNALIGNED_ACCESS > + cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > + riscv_online_cpu, riscv_offline_cpu); > +#endif > +#ifdef CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS > + cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > + riscv_online_cpu_vec, NULL); > +#endif > + > return 0; > } > Hi Andrew, Reviewed-by: Clément Léger <cleger@rivosinc.com> Thanks, Clément
On 07/02/2025 17:19, Andrew Jones wrote: > CPU hotplug callbacks should be set up even if we detected all > current cpus emulate misaligned accesses, since we want to > ensure our expectations of all cpus emulating is maintained. > > Fixes: 6e5ce7f2eae3 ("riscv: Decouple emulated unaligned accesses from access speed") > Fixes: e7c9d66e313b ("RISC-V: Report vector unaligned access speed hwprobe") > Signed-off-by: Andrew Jones <ajones@ventanamicro.com> > --- > arch/riscv/kernel/unaligned_access_speed.c | 27 +++++++++++----------- > 1 file changed, 13 insertions(+), 14 deletions(-) > > diff --git a/arch/riscv/kernel/unaligned_access_speed.c b/arch/riscv/kernel/unaligned_access_speed.c > index 780f1c5f512a..c9d3237649bb 100644 > --- a/arch/riscv/kernel/unaligned_access_speed.c > +++ b/arch/riscv/kernel/unaligned_access_speed.c > @@ -247,13 +247,6 @@ static void __init check_unaligned_access_speed_all_cpus(void) > /* Check core 0. */ > smp_call_on_cpu(0, check_unaligned_access, bufs[0], true); > > - /* > - * Setup hotplug callbacks for any new CPUs that come online or go > - * offline. > - */ > - cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > - riscv_online_cpu, riscv_offline_cpu); > - > out: > for_each_cpu(cpu, cpu_online_mask) { > if (bufs[cpu]) > @@ -383,13 +376,6 @@ static int __init vec_check_unaligned_access_speed_all_cpus(void *unused __alway > { > schedule_on_each_cpu(check_vector_unaligned_access); > > - /* > - * Setup hotplug callbacks for any new CPUs that come online or go > - * offline. > - */ > - cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > - riscv_online_cpu_vec, NULL); > - > return 0; > } > #else /* CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS */ > @@ -415,6 +401,19 @@ static int __init check_unaligned_access_all_cpus(void) > NULL, "vec_check_unaligned_access_speed_all_cpus"); > } > > + /* > + * Setup hotplug callbacks for any new CPUs that come online or go > + * offline. > + */ > +#ifdef CONFIG_RISCV_PROBE_UNALIGNED_ACCESS > + cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > + riscv_online_cpu, riscv_offline_cpu); > +#endif > +#ifdef CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS > + cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > + riscv_online_cpu_vec, NULL); > +#endif > + > return 0; > } > Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com> Thanks, Alex
On 07/02/2025 17:19, Andrew Jones wrote: > CPU hotplug callbacks should be set up even if we detected all > current cpus emulate misaligned accesses, since we want to > ensure our expectations of all cpus emulating is maintained. > > Fixes: 6e5ce7f2eae3 ("riscv: Decouple emulated unaligned accesses from access speed") > Fixes: e7c9d66e313b ("RISC-V: Report vector unaligned access speed hwprobe") > Signed-off-by: Andrew Jones <ajones@ventanamicro.com> > --- > arch/riscv/kernel/unaligned_access_speed.c | 27 +++++++++++----------- > 1 file changed, 13 insertions(+), 14 deletions(-) > > diff --git a/arch/riscv/kernel/unaligned_access_speed.c b/arch/riscv/kernel/unaligned_access_speed.c > index 780f1c5f512a..c9d3237649bb 100644 > --- a/arch/riscv/kernel/unaligned_access_speed.c > +++ b/arch/riscv/kernel/unaligned_access_speed.c > @@ -247,13 +247,6 @@ static void __init check_unaligned_access_speed_all_cpus(void) > /* Check core 0. */ > smp_call_on_cpu(0, check_unaligned_access, bufs[0], true); > > - /* > - * Setup hotplug callbacks for any new CPUs that come online or go > - * offline. > - */ > - cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > - riscv_online_cpu, riscv_offline_cpu); > - > out: > for_each_cpu(cpu, cpu_online_mask) { > if (bufs[cpu]) > @@ -383,13 +376,6 @@ static int __init vec_check_unaligned_access_speed_all_cpus(void *unused __alway > { > schedule_on_each_cpu(check_vector_unaligned_access); > > - /* > - * Setup hotplug callbacks for any new CPUs that come online or go > - * offline. > - */ > - cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > - riscv_online_cpu_vec, NULL); > - > return 0; > } > #else /* CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS */ > @@ -415,6 +401,19 @@ static int __init check_unaligned_access_all_cpus(void) > NULL, "vec_check_unaligned_access_speed_all_cpus"); > } > > + /* > + * Setup hotplug callbacks for any new CPUs that come online or go > + * offline. > + */ > +#ifdef CONFIG_RISCV_PROBE_UNALIGNED_ACCESS > + cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > + riscv_online_cpu, riscv_offline_cpu); > +#endif > +#ifdef CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS > + cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", > + riscv_online_cpu_vec, NULL); > +#endif > + > return 0; > } > This patch 5 does not apply without patch 4 that is not a fix which, in theory, should not be sent into the next -rcX...I'd say it is not a problem as patch 4 is small enough. Just to say that maybe you'll be requested to rearrange the patchset! Thanks, Alex
diff --git a/arch/riscv/kernel/unaligned_access_speed.c b/arch/riscv/kernel/unaligned_access_speed.c index 780f1c5f512a..c9d3237649bb 100644 --- a/arch/riscv/kernel/unaligned_access_speed.c +++ b/arch/riscv/kernel/unaligned_access_speed.c @@ -247,13 +247,6 @@ static void __init check_unaligned_access_speed_all_cpus(void) /* Check core 0. */ smp_call_on_cpu(0, check_unaligned_access, bufs[0], true); - /* - * Setup hotplug callbacks for any new CPUs that come online or go - * offline. - */ - cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", - riscv_online_cpu, riscv_offline_cpu); - out: for_each_cpu(cpu, cpu_online_mask) { if (bufs[cpu]) @@ -383,13 +376,6 @@ static int __init vec_check_unaligned_access_speed_all_cpus(void *unused __alway { schedule_on_each_cpu(check_vector_unaligned_access); - /* - * Setup hotplug callbacks for any new CPUs that come online or go - * offline. - */ - cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", - riscv_online_cpu_vec, NULL); - return 0; } #else /* CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS */ @@ -415,6 +401,19 @@ static int __init check_unaligned_access_all_cpus(void) NULL, "vec_check_unaligned_access_speed_all_cpus"); } + /* + * Setup hotplug callbacks for any new CPUs that come online or go + * offline. + */ +#ifdef CONFIG_RISCV_PROBE_UNALIGNED_ACCESS + cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", + riscv_online_cpu, riscv_offline_cpu); +#endif +#ifdef CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS + cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online", + riscv_online_cpu_vec, NULL); +#endif + return 0; }
CPU hotplug callbacks should be set up even if we detected all current cpus emulate misaligned accesses, since we want to ensure our expectations of all cpus emulating is maintained. Fixes: 6e5ce7f2eae3 ("riscv: Decouple emulated unaligned accesses from access speed") Fixes: e7c9d66e313b ("RISC-V: Report vector unaligned access speed hwprobe") Signed-off-by: Andrew Jones <ajones@ventanamicro.com> --- arch/riscv/kernel/unaligned_access_speed.c | 27 +++++++++++----------- 1 file changed, 13 insertions(+), 14 deletions(-)